WP Manifestindependent plugin directory
manifest / email / evwc-basic

EVWC Basic Email Validation

WordPress email validation plugin powered by the Mailgun API. Verifies addresses, syncs suppression lists via a secure signed webhook, runs a daily cron job and exposes a minimal settings page. Secrets stay outside git, coupling to WP is intentionally small and explicit.

★ 1stars

Install

Download source zip No release zip yet

This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/amals367/evwc-basic/archive/refs/heads/main.zip
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

WordPress плагин для валидации e‑mail и синхронизации Mailgun suppressions. Без утечек секретов. Минимальная зависимость от WP.

  • Version: 0.4.0
  • Requires at least: WP 5.6
  • Tested up to: WP 6.6
  • PHP: 7.4+
  • License: GPL-2.0-or-later
  • Text Domain: evwc-basic
  • Domain Path: /languages

Что делает

  • Проверка e‑mail через Mailgun API.
  • Безопасный REST вебхук: подпись + жёсткий отказ при отсутствии ключа.
  • Суточный cron‑синк списков подавления (bounces/complaints/unsubscribes).
  • Примитивная админ‑страница для ключей/доменов (можно задавать через константы).

Установка

  1. Скопируй evwc-config.example.php → evwc-config.php и заполни значения или задай константы в wp-config.php (предпочтительно на проде).
  2. Активируй плагин.
  3. В админке открой страницу настроек и проверь URL вебхука.

Конфигурация (секреты вне гита)

// wp-config.php (рекомендуется)
define('EVWC_MG_KEY',    'key-REPLACE_ME');
define('EVWC_MG_DOMAIN', 'mg.example.com');
define('EVWC_MG_REGION', 'US'); // или 'EU'

Локальный файл (для dev)

// evwc-config.php (локально)
if (!defined('EVWC_MG_KEY'))    define('EVWC_MG_KEY',    'key-REPLACE_ME');
if (!defined('EVWC_MG_DOMAIN')) define('EVWC_MG_DOMAIN', 'mg.example.com');
if (!defined('EVWC_MG_REGION')) define('EVWC_MG_REGION', 'US');

REST эндпоинты

  • Вебхук: POST /wp-json/evwc/v1/mg-webhook
    Требует валидной подписи Mailgun и наличия EVWC_MG_KEY. При отсутствии ключа — 403. При некорректной подписи — 403.

Cron

  • Хук: evwc_sync_suppressions_event (ежедневно).
  • Деактивация плагина снимает хук корректно.

Локализация

  • Text Domain: evwc-basic, Domain Path: /languages.
  • Загружчик load_plugin_textdomain() подключён.
  • Заготовка: languages/evwc-basic.pot.

Безопасность

  • Секреты только через константы/локальный файл из .gitignore.
  • Вебхук отклоняет всё без ключа и без валидной подписи.
  • Выводы в админке экранировать esc_html/esc_attr по мере локализации строк.

Структура репозитория

evwc-basic/
  evwc-basic.php
  evwc-config.example.php
  languages/evwc-basic.pot
  assets/screenshot-1.png
  .gitignore
  README.md
  LICENSE

.gitignore уже содержит: evwc-config.php, /vendor/, /node_modules/, IDE/OS‑мусор.