Directory / plugin

Bear Essentials: Delete My Account for WooCommerce

v1.2.10 · by bearbrandingco

Let customers securely delete their WooCommerce or WordPress accounts, with password confirmation and safeguards for existing orders.

View on WordPress.org

About this plugin

Let customers delete their own accounts easily and securely.

Bear Essentials: Delete My Account for WooCommerce gives customers a simple way to delete their accounts directly from their My Account page.

Features include:

  • Easy self-service account deletion.
  • Password confirmation for security.
  • Protection for existing orders and competition entries.
  • A Request Help option when deletion needs reviewing.
  • Works with WooCommerce and standard WordPress websites.
  • Free, lightweight and easy to use.

Developed by Bear Branding Co.

On standard WordPress websites without WooCommerce, add the account deletion form to a page using the shortcode in the Installation section. Eligible customer and subscriber accounts are supported.

Competition safeguards cover detected records in supported integrations such as Flintop Giveaways. Historical records can also require Request Help; prize resolution is not automatic. Completed WooCommerce orders do not automatically block account deletion.

Part of Bear Essentials: straightforward solutions to everyday WordPress problems. Simple tools without unnecessary complications.

Security and data handling

Deletion requires the saved administrator toggle to be ON. Version upgrades
reset it to OFF. BEAAM_ENABLE_SELF_SERVICE_DELETION=false in trusted site
configuration overrides the toggle; the plugin never changes that configuration.
A legacy true constant alone does not enable deletion. Staging and production
use the same process without a development allowlist or test helper.

Signed-in customers/subscribers confirm their password and permanent deletion.
Checks include POST, user/session-bound nonces, HTTPS (except explicit local
environments), throttling, per-user locking and repeated safety checks.
Privileged roles and multisite are unsupported. Successful deletion revokes
sessions. Passwords are checked with WordPress, not stored by this plugin.

Supported WooCommerce privacy settings control anonymisation or invoice
preservation. Orders and financial totals/currency are verified and retained;
unnecessary standard contact, shipping, tracking and customer-note fields are
minimised when invoice identity remains. Previously used integrations that
become unavailable fail safely rather than treating their records as absent.

All detected Flintop ticket, winner and instant-win ownership records cause a
hold, regardless of status, including historical, archived, trashed or
unregistered-status records. Stored ownership is checked even when Flintop is
inactive. A closed draw is not proof that prize obligations are settled.
Request Help does not settle prizes, transfer entitlements or remove records.
Safe historical hold resolution is not automated or verified. The plugin never
suppresses Flintop’s deleted_user hooks or starts its queue.

Privacy

No telemetry, remote service, license server or customer-email transport is
included. Requests, statuses, timestamps, original numeric customer IDs, help
messages/replies, processing receipts and pseudonymous signed audit events are
stored in the site’s WordPress database. Existing notes and approvals survive.

Necessary orders, requests and audit evidence may survive account deletion and
plugin uninstall. Free text can contain personal information. Site owners must
justify retention, explain it in their privacy policy and minimise unnecessary
identifying text. WordPress privacy exporter and eraser callbacks disclose
retained request evidence; they do not promise erasure of external services,
independent app tokens or backups.

Audit identifiers and signatures use separate random installation keys in a
non-autoloaded option, independent of WordPress authentication secrets and salt
rotation. Preserve these keys with secured database backups. Missing/invalid
keys stop signing/deletion rather than replacing keys for existing evidence.
Old salt-derived signatures remain unchanged and explicitly unverified.
See AUDIT-SECURITY.md for key-loss, legacy and threat-boundary limitations.

Compatibility and limitations

Installed testing used WordPress 7.1.3, PHP 8.2, MySQL 8.4, WooCommerce 11.2.1/HPOS
and Flintop Giveaway 13.5.0. Standalone/absent integrations have isolated API
contract coverage, not universal version/theme/extension testing.

Staging tests covered empty-account deletion, completed-order preservation and
unresolved prizes; RC.2 covered status-independent ownership. Anonymisation
contract tests do not imply all installed combinations were destructively tested.

Completion is reported only after verified account removal and saved evidence.
Erasure is not one atomic transaction: a later failure can leave some data erased
and require recovery. Do not blindly retry an incomplete operation. Plugin-file
rollback cannot restore deleted users or personal data.

Custom stores, external processors, app tokens and backups are not universally
erased. Mobile-app/public-page/store checks remain each site’s responsibility.

Plugin tags