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.
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