=== Callback Form ===
Contributors: snehalpancholi
Tags: callback form, request callback, contact form, phone callback, call back
Requires at least: 6.0
Tested up to: 6.7
Stable tag: 1.0.0
Requires PHP: 8.1
License: GPL-2.0+
License URI: https://www.gnu.org/licenses/gpl-2.0.html

A lightweight "Request a Callback" form via shortcode. Stores submissions in your database and provides an admin dashboard to manage every request.

== Description ==

**Callback Form** lets visitors request a phone callback directly from any page or post using the `[callback_form]` shortcode. No third-party service required — every submission is stored in your WordPress database, and you receive an instant email notification.

**Key Features**

* Single shortcode deployment — works anywhere on your site.
* Collects: name, phone number, preferred date, preferred time slot, and optional notes.
* Honeypot bot protection built in.
* Admin dashboard (**Tools → Callback Requests**) with:
  * Status badges: Pending / Called / Cancelled.
  * One-click status updates per row.
  * Bulk action support (mark as Called, Pending, Cancelled, or Delete).
  * Pagination (20 requests per page).
  * Filter tabs: All | Pending | Called | Cancelled.
  * Export all requests to CSV.
* Admin email notification on every new request.
* Fully configurable via **Settings → Callback Form**.
* Vanilla ES6 JavaScript — no jQuery dependency.
* Mobile-first, accessible, dark-mode aware CSS.
* GPL-2.0+ licensed, suitable for WordPress.org distribution.

== Installation ==

1. Upload the `callback-form` folder to `/wp-content/plugins/`.
2. Activate the plugin through **Plugins → Installed Plugins**.
3. Place the shortcode `[callback_form]` on any page or post.
4. Visit **Settings → Callback Form** to configure the notification email, time slots, and other options.
5. New submissions appear under **Tools → Callback Requests**.

== Frequently Asked Questions ==

= Where are submissions stored? =
All submissions are saved in a custom database table (`{prefix}cbf_requests`) created on plugin activation. No data is sent to external servers.

= Can I customise the available time slots? =
Yes. Go to **Settings → Callback Form** and edit the **Available Time Slots** textarea — one slot per line.

= Can I hide the preferred date field? =
Yes. Uncheck **Show preferred date field on the form** in **Settings → Callback Form**.

= How do I export submissions? =
Click the **Export CSV** button at the top of the **Tools → Callback Requests** page. A UTF-8 CSV file (Excel compatible) will be downloaded.

= Does the plugin send email notifications? =
Yes. An email is sent to the address configured in **Settings → Callback Form → Notification Email** on every new submission.

= What happens to my data when I uninstall the plugin? =
The plugin's database table (`{prefix}cbf_requests`) and all stored options are removed when the plugin is deleted through the WordPress admin.

= Is the form protected against spam bots? =
Yes. A hidden honeypot field is included. Any submission with that field filled in is silently discarded.

== Screenshots ==

1. The front-end callback request form.
2. Admin requests list (Tools → Callback Requests).
3. Status filter tabs and bulk actions.
4. Plugin settings page (Settings → Callback Form).

== Changelog ==

= 1.0.0 =
* Initial release.

== Upgrade Notice ==

= 1.0.0 =
Initial release.
