• 2.2.2 48cef88d49

    v2.2.2 Stable

    javier released this 2026-06-09 12:50:52 +00:00 | 1 commits to main since this release

    2.2.2

    Release date: 2026-06-09

    Fixed

    • Fixed From Email and Reply-To Email fields not clearing when submitted empty. sanitize_options() now explicitly saves '' when the field is blank, instead of silently retaining the previous value.
    • Fixed "Clear password" button having no effect. The registered sanitize_option callback was re-applying the old encrypted password when the submitted value was empty. Fixed by temporarily removing the filter before the direct update_option() call.
    • Fixed "Clear password" button submitting to options.php instead of the intended handler. A nested <form> inside the settings form is invalid HTML; replaced with a wp_nonce_url() link (GET request).
    • Fixed DKIM selector form ("Try selector" button) doing nothing. The form was inside the cached tool HTML rendered via wp_kses_post(), which strips all form elements. Moved the form to render_tools_page() where it is output as direct PHP, never passing through kses.
    • Fixed Spamhaus ZEN reporting a false "Listed" result. Response code 127.255.255.254 means the DNS query arrived via a public resolver (Cloudflare, Google DNS, etc.) — not that the IP is blocked. Spamhaus stopped supporting public-resolver queries in 2022. The plugin now detects this code (and 127.255.255.255 for rate-limit exceeded) and shows an informational error pointing to the Spamhaus web lookup tool instead.

    Added

    • DKIM selector auto-detection from MX records. When running the SPF/DKIM/DMARC tool, the plugin detects the email provider from MX host patterns and tries the provider's known selectors in order before falling back to default. Supported providers: Google Workspace, Microsoft 365, Zoho, ProtonMail, Apple iCloud, Aruba, Mailchimp.
    • "Try a specific selector" input in the Tools → Authentication panel. Allows overriding the auto-detected selector without JavaScript; the selector is preserved in the "Run checks again" URL.
    • Password field placeholder is now context-aware: shows "No password set." when no password is stored, and "Leave empty to keep the current password." when one exists.

    Compatibility

    • WordPress: 5.9 - 7.1
    • PHP: 8.0 - 8.5

    Tests

    • PHP Coding Standards: squizlabs/php_codesniffer 3.x, wp-coding-standards/wpcs 3.x
    • WordPress Coding Standards: WordPress-Core, WordPress-Docs, WordPress-Extra
    • PHPStan: level 9, szepeviktor/phpstan-wordpress 2.x
    • PHPCompatibility: phpcompatibility/php-compatibility 10.x (PHP 8.0-8.5)
    • WP Compatibility: johnbillion/wp-compat (WP 5.9+)
    Downloads