Directory / plugin

Flexa Unsubscribe

v3.2.0 · by FlexaTech

Professional email unsubscribe management with HMAC tokens, auto-appended unsubscribe links, recipient blocking, and CSV import/export.

View on WordPress.org

About this plugin

Flexa Unsubscribe adds a complete unsubscribe workflow to every email WordPress sends, with a fully-branded admin UI for managing opt-outs, analytics, and the public unsubscribe page.

  • Auto-appends a secure unsubscribe button to outgoing single-recipient emails. Tokens are HMAC-signed using the AUTH_KEY in wp-config.php, so no database lookup is needed to verify a link.
  • Blocks outbound mail to unsubscribed addresses before it reaches the mail server. Blocked attempts are logged to a dedicated audit table.
  • Honours an exclude-keywords list (default: Order, Password, Invoice) so transactional mail never gets an unsubscribe link and never gets blocked.
  • Re-subscribe URL is supported as a first-class action – the plugin can tell opt-outs from opt-backs.
  • Customisable public page – every color, font, and string on the unsubscribe/re-subscribe templates is editable from the admin with a live preview.

All screens are powered by a REST API under /wp-json/flexa-unsubscribe/v1/, so external integrations can plug in too.

Source code for compiled JavaScript and CSS

The plugin ships with minified/compiled JavaScript and CSS in assets/dist/. The human-readable source code for these assets is publicly available and maintained at:

https://github.com/flexatech/flexa-unsubscribe

Source lives in the apps/admin (admin UI) directory. Build tools used: pnpm, Vite, React, TypeScript. To build from source: clone the repository, run pnpm install in apps/admin, then pnpm build (see the repository README for exact commands). This allows the code to be reviewed, studied, and forked.

Documentation

Full user guide, technical reference, and REST API documentation are hosted at:

https://unsubscribe-doc.flexacommerce.com/

A “Documentation” link is also added to the plugin row on the Plugins screen for one-click access from inside WordPress.

External services

Your unsubscribe records, blocked-email log, and settings stay in your own WordPress database. The plugin connects to one external service, and only in the admin, for the reason below.

Deactivation feedback (Flexa Product Intelligence)

When you go to deactivate Flexa Unsubscribe on the Plugins screen, a short optional survey asks why. It is served by Flexa’s product intelligence service at https://product-intelligence.flexacommerce.com. It runs only on wp-admin/plugins.php, never on the front end, and never blocks deactivation.

What is sent, and when:

  • On opening the Plugins screen: a request to /api/v1/config (product slug and tier) to load the survey configuration. Cached for 6 hours.
  • When you deactivate or interact with the survey: the reason you pick and any optional message you type, sent to /api/v1/deactivations, /api/v1/events, /api/v1/feedback, /api/v1/feature-requests, /api/v1/recovery-events.

Every request includes an anonymous per-site identifier (a random UUID), the plugin version and tier, and by default your WordPress/PHP version and locale. No email, site domain, user identity or raw IP is collected. Turn environment off with add_filter( 'flexa_unsubscribe/deactivation_survey/config', fn( $c ) => array( 'collect_environment' => false ) + $c ); and disable the whole survey with add_filter( 'flexa_unsubscribe/deactivation_survey/enabled', '__return_false' );.

Service terms and privacy policy: https://flexacommerce.com/pages/terms and https://flexacommerce.com/pages/privacy

Plugin tags