WP Lead Intake Manager
A small lead intake form plugin with shortcode output and an admin lead list.
by Interview Project · github.com/error411/wordpress-lead-intake-plugin
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/error411/wordpress-lead-intake-plugin/archive/refs/heads/main.zipWP Lead Intake Manager is a lightweight WordPress plugin for collecting service inquiries from a public page and managing those leads inside the WordPress admin.
It provides a shortcode-based intake form, stores submissions in a custom database table, and gives site administrators a simple lead review screen with status tracking. The project is intentionally small and practical: it focuses on the kind of plugin architecture, security practices, and WordPress APIs used in real client work.
Why I Built This
Many small business WordPress sites need more than a contact form, but less than a full CRM. This plugin demonstrates how I would build that middle layer: a maintainable custom plugin that captures structured lead data, validates submissions, and gives admins a clear workflow for follow-up.
The goal was to show practical WordPress development beyond theme edits, while keeping the codebase easy to explain, extend, and review.
Features
- Frontend lead intake form via
[lead_intake_form] - Fields for name, email, phone, service needed, and notes
- Required-field validation and email validation
- Nonce-protected form submission through
admin-post.php - Sanitized input and escaped output
- Custom leads table created on activation
- Admin menu page for reviewing submitted leads
- Lead statuses:
new,contacted, andclosed - Minimal public and admin CSS
- Uninstall cleanup for plugin-owned data
WordPress Concepts Demonstrated
- Plugin bootstrap file and WordPress plugin headers
- Activation hook with
register_activation_hook() - Uninstall cleanup with
uninstall.php - Shortcode registration with
add_shortcode() - Frontend form handling with
admin_post_*actions - Nonce generation and verification
- Capability checks with
current_user_can() - Custom database table creation with
dbDelta() - Database reads and writes with
$wpdb - Input sanitization with WordPress sanitization helpers
- Output escaping with
esc_html(),esc_attr(), andesc_url() - Modular class-based plugin organization
Installation
-
Copy this folder into your local WordPress install:
wp-content/plugins/wordpress-lead-intake-plugin -
Activate WP Lead Intake Manager from the WordPress Plugins screen.
-
Add the shortcode to any page:
[lead_intake_form] -
Submit a test lead from the frontend page.
-
Open Lead Intake in the WordPress admin to view and update lead statuses.
Project Structure
lead-intake-manager.php
uninstall.php
includes/
class-lim-activator.php
class-lim-admin.php
class-lim-db.php
class-lim-form-handler.php
class-lim-shortcode.php
assets/
css/admin.css
css/public.css
README.md
Roadmap
- Add pagination and search to the admin lead table
- Add optional email notifications for new leads
- Add CSV export for submitted leads
- Add a settings screen for service options
- Add custom capabilities for non-admin staff users