A WordPress Plugin to verify user's email addresses.
  • PHP 51.9%
  • Shell 26.4%
  • Python 21.7%
Find a file
Alan Johnson 2fec4aba28
All checks were successful
CI / PHP 8.4 (push) Successful in 20s
CI / PHP 8.5 (push) Successful in 45s
CI / WordPress 7.1 integration (push) Successful in 1m36s
CI / Distribution package (push) Successful in 2m10s
Fix Plugin Check runtime qualification target line error
2026-09-02 10:42:04 -04:00
.forgejo/workflows Fix pending-only mail suppression for 1.0.2 2026-09-02 07:11:21 -04:00
bin Release 1.0.1 for WordPress 7.1 and Forgejo CI 2026-09-01 23:00:05 -04:00
docs Add verification API contract tests 2026-07-30 00:23:39 -04:00
scripts Add VM test harness 2026-09-02 06:49:29 -04:00
tests Fix Plugin Check runtime qualification target line error 2026-09-02 10:42:04 -04:00
wordpress-org-assets Release 1.0.1 for WordPress 7.1 and Forgejo CI 2026-09-01 23:00:05 -04:00
.gitignore Add VM test harness 2026-09-02 06:49:29 -04:00
AGENTS.md Add VM test harness 2026-09-02 06:49:29 -04:00
ARCHITECTURE.md Release 1.0.1 for WordPress 7.1 and Forgejo CI 2026-09-01 23:00:05 -04:00
argentwolf-email-verification.php Fix pending-only mail suppression for 1.0.2 2026-09-02 07:11:21 -04:00
composer.json Raise minimum PHP version to 8.4 2026-07-30 08:26:09 -04:00
composer.lock Raise minimum PHP version to 8.4 2026-07-30 08:26:09 -04:00
LICENSE Prepare ArgentWolf Email Verification 0.3.0 2026-07-29 12:44:02 -04:00
phpunit.integration.xml.dist Add verification API contract tests 2026-07-30 00:23:39 -04:00
README.md Add VM test harness 2026-09-02 06:49:29 -04:00
readme.txt Fix pending-only mail suppression for 1.0.2 2026-09-02 07:11:21 -04:00
TODO.md Add VM test harness 2026-09-02 06:49:29 -04:00

ArgentWolf Email Verification

ArgentWolf Email Verification keeps newly self-registered WordPress accounts inactive until the account owner confirms control of the registered email address. Verification is handled locally through WordPress and wp_mail().

The plugin is also the authoritative registered-user verification provider for compatible plugins such as ArgentWolf Post Notifier.

Public integration API

argentwolf_email_verification_is_user_verified( int $user_id ): bool
argentwolf_email_verification_get_user_verification_status( int $user_id ): string

The status function returns verified, pending, or unknown. Missing legacy pending metadata remains verified for an existing user so an interrupted upgrade cannot lock out established accounts.

New integrations must use canonical argentwolf_email_verification_ functions and hooks. See docs/legacy-api-deprecation.md for the compatibility policy.

Development

Normal checkout:

~/src/wp-argentwolf-email-verification

Install dependencies and run the source-level suite:

composer install
composer validate --strict
composer test

Install the WordPress 7.1 test environment and run integration tests:

bash bin/install-wp-tests.sh \
  wordpress_test \
  root \
  '' \
  127.0.0.1:3306 \
  7.1

composer test:integration

Build the reviewed runtime package:

bash scripts/build-release.sh

The release package intentionally contains only the main plugin file, readme.txt, and LICENSE. Release checksum files contain the ZIP basename rather than a build-host absolute path.

Before WordPress.org publication, qualify the exact public release artifact in a disposable Docker WordPress environment. The harness downloads the release through its public Forgejo URL, verifies its pinned SHA-256 and public Git tag, then exercises clean-install, registration/verification, Plugin Check, and upgrade behavior:

bash tests/integration/wordpress-release-smoke.sh \
  tests/integration/release-targets/1.0.1.env

See tests/integration/README.md for the release-asset prerequisite, VM workflow, environment overrides, and report/checksum behavior.