Install
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/nueloea/zimcon-booking/archive/refs/heads/main.zipComplete cost estimation and booking system for Zimcon cleaning services.
Description
Zimcon Booking System provides a full-featured cost estimator and booking form for cleaning services. Customers can get instant quotes for residential, deep clean, end-of-tenancy, and commercial cleaning, then proceed to book directly from their quote.
Key Features:
- 5-Step Cost Estimator — Guided form for residential, deep clean, end-of-tenancy, and commercial cleaning with real-time price calculation.
- 4-Step Booking Form — Collects customer details, service address, preferred date/time, and payment confirmation.
- Server-Side Price Calculation — All prices calculated on the server using stored pricing data. Client-submitted prices are never trusted.
- Secure Token Flow — Quotes generate a time-limited token (2 hours) that links to the booking form. Tokens are single-use and cryptographically secure.
- Email Notifications — Admin notification and customer confirmation emails via Web3Forms, Resend, SendGrid, or WordPress wp_mail() with automatic fallback.
- Admin Dashboard — Stats overview with month-over-month comparison, recent activity feed, and popular services breakdown.
- Quotes & Bookings Management — Sortable, filterable list tables with bulk actions, search, and status tracking.
- Pricing Manager — Update all pricing from the admin panel with change history and audit logging.
- Settings Panel — Configure email providers, page assignments, API keys (encrypted storage), and debug mode.
- Elementor Integration — Drag-and-drop widgets for both the estimator and booking form.
- Shortcode Support —
[zimcon_estimator]and[zimcon_booking]shortcodes for use in any page or post. - Rate Limiting — Prevents abuse with configurable limits per action (quotes, bookings, AJAX).
- Audit Logging — All significant actions logged with user, IP, and timestamp.
- Debug Mode — Test data flagging, verbose logging, and rate limit bypass for development.
Security:
- Nonce verification on all forms and AJAX requests
- Prepared statements for all database queries
- Input sanitization and output escaping throughout
- AES-256-CBC encryption for stored API keys
- IP-based rate limiting with audit trail
- Price tampering detection with 1p tolerance
- Direct file access prevention on all PHP files
Installation
- Upload the
zimcon-booking-systemfolder to/wp-content/plugins/. - Activate the plugin through the Plugins menu in WordPress.
- Go to Zimcon Booking in the admin sidebar to view the dashboard.
- Navigate to Settings > General to configure the estimator and booking page assignments.
- Create two pages and add the shortcodes
[zimcon_estimator]and[zimcon_booking], or use the Elementor widgets. - Navigate to Settings > Email to configure your email provider and API key.
- Optionally, add your API keys to
wp-config.phpfor maximum security:
define('ZIMCON_WEB3FORMS_KEY', 'your-api-key');
define('ZIMCON_RESEND_KEY', 'your-api-key');
define('ZIMCON_SENDGRID_KEY', 'your-api-key');
Frequently Asked Questions
What email providers are supported?
Web3Forms (default), Resend, SendGrid, and WordPress wp_mail(). You can configure a fallback that activates automatically if the primary provider fails.
Can I customise the pricing?
Yes. Go to Zimcon Booking > Pricing to update hourly rates, fixed prices by property size, commercial rates, add-on prices, discounts, and surcharges. All changes are versioned with a pricing history.
Is the estimator mobile-friendly?
Yes. Both the estimator and booking form are fully responsive and tested on mobile devices.
How does the token system work?
When a customer completes a quote, a secure token is generated and stored server-side for 2 hours. The customer is redirected to the booking page with this token. The token is deleted after the booking is submitted, preventing reuse.
Can I use this without Elementor?
Yes. The plugin provides shortcodes [zimcon_estimator] and [zimcon_booking] that work in any theme. Elementor widgets are an optional convenience.
How do I enable debug mode?
Add define('ZIMCON_DEBUG_MODE', true); to your wp-config.php. This disables rate limiting and marks all submissions as test data. Remove or set to false before going live.
What happens when I uninstall the plugin?
All database tables, options, transients, and cron jobs are removed. Deactivating the plugin preserves all data — only deletion triggers cleanup.
Changelog
1.0.1
- Fixed price discrepancy between estimator and booking pages when included add-ons were selected.
- Changed time slots from ranges to single whole hours (8:00 AM - 5:00 PM) with start-time label.
- Added server-side whitelist validation for time slot values.
- Improved responsive layout at 768px, 480px, and 360px breakpoints for both estimator and booking forms.
- Replaced text header in customer confirmation email with site logo.
1.0.0
- Initial release.
- 5-step cost estimator with 4 service types.
- 4-step booking form with token-based quote linking.
- Email system with 4 providers and automatic fallback.
- Admin dashboard with stats, activity feed, and service breakdown.
- Quotes and bookings list tables with filtering and bulk actions.
- Pricing manager with change history.
- Settings page with General, Email, and Advanced tabs.
- Elementor widgets for estimator and booking form.
- Shortcode support.
- Rate limiting, audit logging, and security hardening.
Upgrade Notice
1.0.1
Bug fixes: pricing consistency, whole-hour time slots, responsive improvements, email logo.
1.0.0
Initial release.