Title: Flexa Unsubscribe
Author: FlexaTech
Published: <strong>11 Tháng 5, 2026</strong>
Last modified: 11 Tháng 5, 2026

---

Tìm kiếm plugin

![](https://ps.w.org/flexa-unsubscribe/assets/icon.svg?rev=3528475)

# Flexa Unsubscribe

 Bởi [FlexaTech](https://profiles.wordpress.org/flexatech/)

[Tải về](https://downloads.wordpress.org/plugin/flexa-unsubscribe.3.0.2.zip)

 * [Chi tiết](https://vi.wordpress.org/plugins/flexa-unsubscribe/#description)
 * [Đánh giá](https://vi.wordpress.org/plugins/flexa-unsubscribe/#reviews)
 *  [Cài đặt](https://vi.wordpress.org/plugins/flexa-unsubscribe/#installation)
 * [Nhà phát triển](https://vi.wordpress.org/plugins/flexa-unsubscribe/#developers)

 [Hỗ trợ](https://wordpress.org/support/plugin/flexa-unsubscribe/)

## Mô tả

**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.

### Admin UI

Starting with v3.0.0 the admin is a React single-page application with seven screens:

 * **Dashboard** — stats cards + bar chart of unsubscribes over time + pie chart
   of top reasons.
 * **Unsubscribes / Blocked emails / Re-subscribed** — paginated tables with sorting,
   per-row delete, and CSV export.
 * **Reasons** — manage the dropdown options shown on the public unsubscribe form;
   click-to-edit, / reorder.
 * **Settings** — enable/disable auto-append + blocking, tune the exclude-keywords
   list.
 * **Appearance** — 19 tokens (colors, typography, copy) across three tabs with 
   a live preview panel.

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) and `apps/frontend` (product page UI)
directories. Build tools used: **pnpm**, **Vite**, **React**, **TypeScript**. To
build from source: clone the repository, run `pnpm install` from the plugin root,
then build the admin and frontend apps (see the repository README for exact commands).
This allows the code to be reviewed, studied, and forked.

## Cài đặt

 1. Upload the plugin files to `/wp-content/plugins/flexa-unsubscribe`, or install 
    through the WordPress **Plugins** screen.
 2. Activate the plugin through the **Plugins** screen.
 3. On activation the plugin provisions three database tables: `{prefix}flexa_unsubscribes`,`{
    prefix}flexa_blocked_emails`, `{prefix}flexa_unsubscribe_reasons` (the last seeded
    with three default reasons).
 4. Visit **Unsubscribe** in the admin sidebar to configure.

## Hỏi đáp

### Do I need to change anything in my existing email sending code?

No. The plugin hooks `wp_mail` with standard WordPress filters. Any plugin or theme
that sends mail via `wp_mail` is covered automatically.

### What happens if I rotate `AUTH_KEY`?

Every in-flight unsubscribe/resubscribe link becomes invalid, because the HMAC key
is `AUTH_KEY`. New links issued after rotation work normally. Existing records in
the database are unaffected.

### How are blocked emails different from unsubscribed addresses?

Unsubscribes is the list of addresses that opted out. `Blocked emails` is the audit
log of outgoing sends that were stopped because they targeted an unsubscribed address.
One unsubscribe can cause many blocked-email entries over time.

### Are CSV exports safe to share publicly?

No — CSV exports contain email addresses. Treat them as PII. The download link is
nonce-protected so it’s not trivially shareable across sessions.

## Đánh giá

Không có đánh giá nào cho plugin này.

## Người đóng góp & Lập trình viên

“Flexa Unsubscribe” là mã nguồn mở. Những người sau đã đóng góp vào plugin này.

Những người đóng góp

 *   [ FlexaTech ](https://profiles.wordpress.org/flexatech/)

[Dịch “Flexa Unsubscribe” sang ngôn ngữ của bạn.](https://translate.wordpress.org/projects/wp-plugins/flexa-unsubscribe)

### Muốn tham gia phát triển?

[Duyệt code](https://plugins.trac.wordpress.org/browser/flexa-unsubscribe/), check
out [SVN repository](https://plugins.svn.wordpress.org/flexa-unsubscribe/), hoặc
theo dõi [nhật ký phát triển](https://plugins.trac.wordpress.org/log/flexa-unsubscribe/)
qua [RSS](https://plugins.trac.wordpress.org/log/flexa-unsubscribe/?limit=100&mode=stop_on_copy&format=rss).

## Nhật ký thay đổi

#### 3.0.2

 * **Security:** Sanitize `$_GET['email']` and `$_GET['token']` at the read site
   in the public unsubscribe/resubscribe handler (`sanitize_email` / `sanitize_text_field`
   + `wp_unslash`), with a documented `phpcs:disable WordPress.Security.NonceVerification.
   Recommended` since the HMAC token is the CSRF protection layer for these public
   links.
 * **Compatibility:** Replace inline `<style>` and `<script>` blocks in `templates/
   unsubscribe-page.php` and `templates/resubscribe-page.php` with `wp_register_style`/`
   wp_enqueue_style` / `wp_add_inline_style` (and the script equivalents), so the
   public templates pass the WP.org Plugin Check enqueue rule.
 * **Docs:** Fix the source-code repository URL in `readme.txt`.

#### 3.0.0

 * **Complete admin rewrite.** The seven admin pages are now a React single-page
   app (Vite + TypeScript + shadcn/ui + Tailwind v4) instead of individual PHP-rendered
   screens.
 * **New:** REST API under `/wp-json/flexa-unsubscribe/v1/` covering unsubscribes,
   blocked emails, re-subscribes, reasons, settings, appearance, and analytics. 
   Every admin screen consumes this API.
 * **New:** Dashboard with time-series and reasons charts (recharts).
 * **New:** Live preview panel on the Appearance screen — see your colors, fonts,
   and copy applied to a replica of the public unsubscribe page while you edit.
 * **New:** Client-side search + server-side sort + server-side pagination on every
   list screen.
 * **New:** URL-synced table state (`?page=2&sort=email&order=desc` bookmarkable)
   on every list screen.
 * **Security:** CSV export `admin-post.php` handlers now verify nonces via `check_admin_referer()`.
 * **Change:** Admin menu label is “Unsubscribe” (same as pre-2.x) and sits at menu
   position 60. Slug changed from `flexa-su` to `flexa-unsubscribe` — legacy admin
   bookmarks will 404.
 * **Change:** Removed the `flexa_get_analytics_data` AJAX endpoint, superseded 
   by the REST `/analytics/*` routes.
 * **Requires PHP 7.4** (was previously unspecified; the plugin now declares the
   floor).

#### 2.0.2

 * Pagination for large lists.

#### 2.0.1

 * Menu refinements.

#### 2.0.0

 * Analytics page introduced.

## Meta

 *  Phiên bản **3.0.2**
 *  Cập nhật lần cuối **2 ngày trước**
 *  Số lượt cài đặt **Ít hơn 10**
 *  Phiên bản WordPress ** 5.8 hoặc cao hơn **
 *  Đã kiểm tra lên đến **6.9.4**
 *  Phiên bản PHP ** 7.4 hoặc cao hơn **
 *  Ngôn ngữ
 * [English (US)](https://wordpress.org/plugins/flexa-unsubscribe/)
 * Thẻ
 * [email](https://vi.wordpress.org/plugins/tags/email/)[GDPR](https://vi.wordpress.org/plugins/tags/gdpr/)
   [mailing list](https://vi.wordpress.org/plugins/tags/mailing-list/)[opt-out](https://vi.wordpress.org/plugins/tags/opt-out/)
   [unsubscribe](https://vi.wordpress.org/plugins/tags/unsubscribe/)
 *  [Nâng cao](https://vi.wordpress.org/plugins/flexa-unsubscribe/advanced/)

## Đánh giá

Chưa có đánh giá nào được gửi.

[Your review](https://wordpress.org/support/plugin/flexa-unsubscribe/reviews/#new-post)

[Xem tất cả đánh giá](https://wordpress.org/support/plugin/flexa-unsubscribe/reviews/)

## Những người đóng góp

 *   [ FlexaTech ](https://profiles.wordpress.org/flexatech/)

## Hỗ trợ

Có điều gì muốn nói? cần giúp đỡ?

 [Xem diễn đàn hỗ trợ](https://wordpress.org/support/plugin/flexa-unsubscribe/)