WP Manifestindependent plugin directory
manifest / forms / smart-client-intake

Smart Client Intake System

WordPress client submission management plugin with CPT, admin dashboard, WP_List_Table, CSV export, email notifications, REST API, and frontend intake form.

★ 1stars

Install

Download source zip No release zip yet

This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/sharanvijaydev/smart-client-intake/archive/refs/heads/main.zip
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

A WordPress plugin for managing client submissions with a custom post type, admin dashboard, filterable list table, CSV export, email notifications, REST API, and a frontend intake form with spam protection.

Features

Feature Description
📋 Custom Post Type sci_submission with custom taxonomy sci_service_type
📝 Meta Boxes Structured fields — name, email, phone, company, status, priority, notes
📊 Admin Dashboard Summary stat cards + filterable list table with search
🔍 WP_List_Table Sortable columns, status/date filters, bulk actions
📥 CSV Export One-click export of all submissions with nonce protection
📧 Email Notifications HTML emails to admin (new submission) and client (confirmation)
🌐 REST API GET/POST endpoints at /wp-json/intake/v1/submissions
📝 Frontend Form [client_intake_form] shortcode with client-side validation
🛡️ Spam Protection Honeypot field + timestamp-based rate limiting

File Structure

smart-client-intake/
├── smart-client-intake.php           # Main plugin bootstrap (singleton)
├── includes/
│   ├── class-cpt-submission.php      # CPT & taxonomy registration
│   ├── class-meta-boxes.php          # Admin meta boxes with sanitization
│   ├── class-list-table.php          # WP_List_Table with filters & sorting
│   ├── class-admin-page.php          # Dashboard page with stat cards
│   ├── class-form-handler.php        # Shortcode & form processing
│   ├── class-email-notification.php  # HTML email templates
│   ├── class-csv-export.php          # CSV generation & download
│   └── class-rest-api.php            # REST API endpoints
├── templates/
│   └── intake-form.php               # Frontend form template
├── assets/
│   ├── css/
│   │   ├── admin.css                 # Admin dashboard styles
│   │   └── frontend.css              # Frontend form styles
│   └── js/
│       └── form-validation.js        # Client-side form validation
├── .gitignore
└── README.md

Installation

cd wp-content/plugins/
git clone https://github.com/sharanvijaydev/smart-client-intake.git
  1. Go to Plugins → Installed Plugins → Activate Smart Client Intake System
  2. A new Client Intake menu appears in the admin sidebar
  3. (Optional) Add service types via Client Intake → Service Types
  4. Add the form to any page using the shortcode: [client_intake_form]

Usage

Admin Dashboard

Navigate to Client Intake → Dashboard to view:

  • Summary stat cards (total, new, in review, contacted, in progress, completed, closed)
  • Searchable, filterable, sortable list of all submissions
  • CSV export button

Frontend Form

Add this shortcode to any page or post:

[client_intake_form]

With custom title:

[client_intake_form title="Get Started Today"]

REST API

List all submissions:

GET /wp-json/intake/v1/submissions

Get single submission:

GET /wp-json/intake/v1/submissions/{id}

Create a submission:

POST /wp-json/intake/v1/submissions
Content-Type: application/json

{
    "full_name": "John Doe",
    "email": "john@example.com",
    "phone": "+1-555-0100",
    "company": "Acme Corp",
    "message": "I need help with my visa application."
}

All endpoints require authentication (WordPress Application Passwords or cookie auth).

Security

  • All form inputs sanitized with sanitize_text_field(), sanitize_email(), sanitize_textarea_field()
  • Nonce verification on form submission, meta save, CSV export, and bulk actions
  • Capability checks (current_user_can()) on all admin operations
  • Honeypot field for spam prevention
  • Timestamp-based rate limiting (rejects submissions under 3 seconds)
  • REST API endpoints protected with permission callbacks
  • Select fields validated against whitelists
  • Output escaped with esc_html(), esc_attr(), esc_url(), wp_kses_post()

Technical Highlights

  • WP_List_Table extension — One of the more advanced WordPress APIs, rarely seen in portfolios
  • Custom REST API — Full CRUD endpoints with proper validation, sanitization, and pagination headers
  • Singleton pattern — Clean bootstrap with separated concerns across 8 class files
  • OOP PHP — No procedural spaghetti; each class has a single responsibility
  • Template separation — Frontend form loaded from templates/ directory via ob_start()
  • Custom action hook — sci_submission_created allows other plugins/themes to extend functionality
  • Zero dependencies — No npm, no build tools, no external libraries. Pure WordPress.

Author

R Saravanan

License

GPL-2.0+ — See LICENSE