[WordPress] 外掛分享: FonX Delete User

首頁 › 外掛目錄 › FonX Delete User
WordPress 外掛 FonX Delete User 的封面圖片
全新外掛
安裝啟用
—
尚無評分
22 天前
最後更新
—
問題解決
WordPress 6.7+ PHP 8.2+ v1.1.0 上架:2026-09-23

內容簡介

FonX Delete User 將帳號刪除過程轉變為可控且經審核的流程,而非一鍵自動刪除。此外掛允許使用者保留現有的表單,並以靜默方式整合,提供更安全的帳號刪除選項。

【主要功能】
• 自帶表單整合,支持現有 HTML 表單
• 管理員批准流程,無自動刪除
• 支援外部 API 模式,轉發刪除請求
• 審計日誌,記錄每個請求及結果
• 彈性表單建構,支持多種欄位類型
• 郵件通知,提醒管理員新請求

外掛標籤

開發者團隊

⬇ 下載最新版 (v1.1.0) 或搜尋安裝

① 下載 ZIP → 後台「外掛 › 安裝外掛 › 上傳外掛」
② 後台搜尋「FonX Delete User」→ 直接安裝(推薦)
📦 歷史版本下載

原文外掛簡介

FonX Delete User turns account erasure into a controlled, reviewed process instead of a one-click auto-delete.
Most “delete my account” plugins force visitors into their own button or form. FonX Delete User takes the opposite approach: you keep the form you already have and the plugin quietly powers it in whichever way fits your site.
What makes it different

Bring-your-own-form — integrate any existing HTML form on your site with a CSS selector and data-fxldu-field mapping. The form you styled stays the form your visitors see; the plugin’s JavaScript attaches to it without blocking its own handler.
Config-only mode — toggle the plugin’s own markup off entirely. The shortcode or block still emits the per-site request token and configuration, so an existing form can drive submissions with nothing extra rendered.
Admin approval pipeline — nothing is deleted automatically. Every request waits in the admin queue for you to approve, reject, or delete it.
External API mode — instead of deleting inside WordPress, forward erasure submissions to your own endpoint for the external system to complete.
Audit logging — every request and outcome is recorded in the database or a file, with a built-in viewer.

Features

Dual deletion modes — store requests pending admin approval (wordpress_db) or forward submissions immediately to an external endpoint (external_api).
Form builder — add text, email, password, textarea, checkbox, select, and hidden fields with required toggles, placeholders, options, and validation regexes.
Flexible injection — the [fxldu_form] shortcode, a native Gutenberg block, or integration with an existing page form via CSS selector and data-* field mapping.
Email notifications — alert the administrator (or a custom admin email) about new requests, and acknowledge the requester by email with configurable subject/body and placeholders.
Security hardening — honeypot anti-bot field, per-site HMAC-compatible request tokens, per-IP rate limiting, capability-gated admin endpoints, prepared SQL, and fully escaped output.

Submission flow

A visitor submits the form (shortcode, block, or an integrated existing form).
The frontend checks the honeypot, validates required fields, and posts a JSON request containing a per-site token, the user email, and the collected fields.
The request is stored with status pending (rate-limited per IP).
The administrator is notified; the requester can also receive an acknowledgement email.
On approval, the user is permanently deleted via wp_delete_user() (WordPress Database mode) or the request is marked approved for the external system (External API mode). On rejection, the request is marked rejected and no deletion happens.
The requester is notified of the outcome.

Additional Information
This release addresses the points raised during the plugin review and hardens two runtime paths found while testing. Details of what changed and why:

Global prefix — every global identifier now uses the unique fxldu prefix instead of the generic du_ / delete_user_ names: option keys, database tables, transients, the REST namespace (fxldu/v1), action/filter names, nonces, admin menu slugs, the [fxldu_form] shortcode, the fxldu/form block, enqueue handles, JavaScript globals, and frontend CSS classes. PHP constants are FXLDU_* and the class namespace is Fxldu\. The text domain fonx-delete-user and the plugin folder name are unchanged.
Database cleanup — the admin list tables (Fields, Requests, Logs) and the REST listing endpoint no longer pass an empty argument list to $wpdb->prepare() when no filter or search is applied; in that case the static count query runs directly instead of emitting the “the query argument must have a placeholder” notice.
Existing-form integration — when the integration selector matches a non-form container (some themes wrap their form in a div that is matched instead of the

itself), field collection and email resolution now read the named inputs directly instead of throwing inside new FormData(). The window integration-guard is __fxlduIntegrationBound.
Script output — the frontend form configuration is no longer printed as raw inline

文章
Filter
Mastodon