View Categories

Post Types Overview

3 min read


Post Types Overview

The Phone Consultation plugin does not create any custom post types, taxonomies, or meta fields. Instead, it uses a custom database table to store consultation requests and WordPress’s built-in options system for settings.

Database Design Philosophy: The plugin uses a dedicated custom table for consultation requests to ensure optimal performance and data integrity while keeping the WordPress posts table clean and uncluttered.

Custom Database Table

📊 freepa_requests Table

Purpose: Stores all consultation requests submitted through the popup form

Table Name: {wp_prefix}freepa_requests (e.g., wp_freepa_requests)

Creation: Automatically created when the plugin is activated

Database Table Structure

Table Columns

  • id: Primary key, auto-increment integer
  • name: Visitor’s full name (varchar 255)
  • website: Visitor’s website address (varchar 255)
  • email: Visitor’s email address (varchar 255)
  • phone: Visitor’s phone number (varchar 255)
  • subject: Consultation topic/subject (varchar 255)
  • message: Detailed consultation description (text)
  • status: Request status for admin tracking (varchar 50)
  • created_at: Timestamp of request submission (datetime)

Request Status System

Available Status Options

  • Unknown (none): Default status for new requests
  • Successful Call (success): Consultation call completed successfully
  • Unsuccessful Call (failed): Unable to reach customer or unsuccessful call
  • Incorrect Contact Information (wronginfo): Contact details were invalid or incorrect

Status Management

Admin users can update request statuses directly from the Requests List page. Status changes are automatically saved and reflected in the admin interface with color-coded visual indicators.

Data Storage Benefits

🚀 Performance Advantages

  • Optimized Queries: Direct table access for faster data retrieval
  • Reduced Database Load: No impact on WordPress post queries
  • Scalability: Handles large volumes of consultation requests efficiently
  • Custom Indexing: Optimized database indexes for admin operations

🛡️ Data Integrity

  • Isolated Storage: Consultation data separate from post content
  • Consistent Structure: Enforced data types and field lengths
  • Reliable Timestamps: Accurate submission time tracking
  • Data Validation: Server-side validation before database insertion

WordPress Integration

Options API Usage

Plugin settings are stored using WordPress’s built-in options system:

  • Form field configurations: Enable/disable, required/optional, order
  • Button settings: Position, colors, text
  • Popup settings: Colors, logo, content, titles
  • License information: Activation status and license data

WordPress Standards Compliance

  • Database Prefix: Uses WordPress table prefix for compatibility
  • Capability Checks: Respects WordPress user permissions
  • Nonce Verification: Security tokens for all admin actions
  • Sanitization: All data properly sanitized before storage

Data Access and Management

Admin Interface

The plugin provides a comprehensive admin interface for viewing and managing consultation requests:

  • List Table: WordPress-style list table with sorting and pagination
  • Bulk Actions: Delete multiple requests at once
  • Status Updates: AJAX-powered status changes
  • Data Export: Easy data access for CRM integration

Migration and Backup

Data Portability

  • Standard SQL: Table uses standard database types for easy export
  • Backup Compatibility: Included in standard WordPress database backups
  • Migration Support: Simple table structure for easy data migration
  • CSV Export: Admin interface allows data export for external use

Developer Information

Hooks and Filters

  • freepa_after_form_submission: Action hook triggered after successful form submission
  • freepa_access_data: Action hook for third-party plugin integration
  • Database Functions: Standard WordPress $wpdb methods for data access
  • Table Creation: Uses dbDelta() for reliable table creation and updates