Data, Privacy and Uninstall
A customer asks for a copy of their data, or asks you to delete it. Your privacy policy has to say what you store. Or you’re cleaning up a site and need to know whether deleting the plugin takes your bookings with it. Here’s exactly what Core Bookings keeps, how it fits WordPress’s privacy tools and what happens on uninstall.
What Core Bookings Stores
- Bookings: name, email, phone, notes, timezone, seats, appointment times, status, amounts, payment references, intake answers and booking question answers.
- Customer profiles: name, email, registered custom fields, tags, internal notes and a link to a WordPress user when accounts are on.
- Session packs and waitlist entries with the customer’s name and email.
- Private links and credentials: manage-link tokens are stored as a hash plus an encrypted copy, and provider credentials are encrypted.
- Activity and delivery logs: appointment history, background jobs and webhook deliveries (kept for 30 days).
Everything lives in your own database, in tables prefixed cb_ (for example wp_cb_bookings and wp_cb_customers), plus options that start with cb_. Core Bookings sends no telemetry and does no automatic AI processing.
Data leaves your site only through services you connect: Stripe, FluentCart, PayPal, Polar or Paddle for payments, Google, Microsoft or Zoom for calendars and meetings, Cloudflare Turnstile for spam checks, Brevo, Twilio or WhatsApp for messages, and any webhook endpoints you add. Core Bookings adds suggested text to WordPress’s privacy policy guide under Settings → Privacy. Review it against the services you actually use.
Export or Erase a Customer’s Data
Core Bookings plugs into WordPress’s own tools, listed as Core Bookings:
- Tools → Export Personal Data includes the customer’s bookings (with intake answers and module data), customer profile and fields, linked WordPress user, session packs and waitlist entries.
- Tools → Erase Personal Data anonymizes finished bookings. The name becomes “Erased customer”, and the email, phone, notes, intake answers, private links, activity reasons and module data are removed. Amounts and payment references stay for your accounts. Dashboard sign-in records are deleted, and the customer profile goes once nothing still refers to it.
Erasure skips anything still in progress and reports it: bookings still marked confirmed or awaiting payment, approval or review, unresolved payments or refunds, packs with valid credits, active waitlist entries and unfinished background jobs. Settle those (a past appointment still marked confirmed needs marking completed or no-show first), then run the erasure again. Deleting data held by Stripe, Google or another provider is a separate step in that provider’s dashboard.
Customer tags, notes and merges are covered in Customer Records.
Clean Up Old Details Automatically
Go to Bookings → Settings → License and find Data retention and uninstall. Only administrators who can delete booking data see it.
- Automatic cleanup (days): 0 keeps details until you erase them yourself. Any number from 30 to 3650 removes contact details, intake answers, private links and activity notes once finished appointments reach that age. Expired packs and waitlist entries follow the same period.
- The cleanup runs in the background, up to 100 appointments an hour. It applies the same safety checks as erasure, and financial totals remain.
Deactivate or Delete
| You do this | What happens |
|---|---|
| Deactivate the plugin | Background workers stop. All data stays. |
| Delete the plugin (default) | Scheduled workers, the license and cached update data are removed. Bookings, services, customers and settings stay, ready for a reinstall. |
| Delete with Permanently delete Core Bookings data on uninstall ticked | Every cb_ table (including module tables), Core Bookings options and transients, Core Bookings user meta and the booking capabilities are removed from every role and user. |
The checkbox sits under When deleting the plugin in the same Data retention and uninstall section. Export first: the section links to Import / Export for that. On multisite, each site follows its own setting.
Keep Your Encryption Key
Saved credentials and private customer links are encrypted with CORE_BOOKINGS_KEY when you define it in wp-config.php, or with WordPress’s AUTH_KEY otherwise. We recommend a dedicated random key of at least 32 characters:
define('CORE_BOOKINGS_KEY', 'paste-a-long-random-string-of-at-least-32-characters');
- Set it before you save provider credentials, then leave it alone.
- Changing it, or changing
AUTH_KEYwhen you rely on it, makes existing credentials and private links unreadable. You’d have to reconnect every provider. - Back up the key with your database. A restored database without its key can’t read its own secrets.
Bookings → Settings → Setup checks shows whether a dedicated key is in use. For moving between sites, see Import, Export and Moving Sites.