| 开发者 | engahmeds3ed |
|---|---|
| 更新时间 | 2026年11月1日 02:51 |
| PHP版本: | 7.4 及以上 |
| WordPress版本: | 7.1 |
| 版权: | GPLv2 or later |
| 版权网址: | 版权信息 |
ecehc_show_pro_link filter. Nothing in this free plugin is removed or locked.wp ehc check runs all checks (add --format=json for scripts). It exits with status 1 when any check fails. The server IP blacklist check needs a web request, so from the command line it is skipped unless you set the IP with the ecehc_server_ip filter.wp ehc log lists recent logged emails (--source, --status, --type, --limit), and wp ehc log --stats shows accepted and failed counts for the last 24 hours and 7 days.ecehc_checks_completed action fires after every run of the checks, with the results of each check. Together with the ecehc_email_logged action and the ecehc_checks filter and others, the hooks and the ecehc_run_checks() function are documented with a stability promise in docs/extending.md in the plugin's GitHub repository.Plugins > Add New in your WordPress dashboard.ecom-email-health-check folder to your /wp-content/plugins/ directory.The usual causes, all of which the Health Report checks:
Many hosting providers have poor email delivery configurations that can silently fail, leaving you and your customers in the dark. This plugin diagnoses those issues so you can address them.
It checks for common issues like email sending failures, mail sent through plain PHP mail instead of SMTP, sender address misconfigurations, missing or incomplete SPF, DKIM and DMARC records, and (for WooCommerce stores) many orders stuck in "Pending payment".
Not to use this plugin. But if the report warns that your site sends through plain PHP mail, an SMTP plugin or a transactional email service is the usual fix, because authenticated email is far less likely to land in spam.
The plugin could not reach a conclusion, so it does not call it a failure. The most common case is DKIM: the key can only be found under a few common selector names, and many providers use their own. Check your provider's DNS instructions, or an online DKIM checker, to be sure.
WordPress can only tell that your mail system took the email without an error. Whether it reached the inbox depends on the receiving server, which this plugin cannot see.
Yes. The report, the email log and the alerts work on any WordPress site. The WooCommerce-specific parts (email types and the unpaid orders check) appear only when WooCommerce is active.
Recent versions of WooCommerce have this built in: go to WooCommerce > Settings > Emails, pick an email and use its preview to send yourself a test copy. It uses your real From address and mail setup, and the Health Report has a button that opens that screen. While the email log is on, the test appears in the Email Log tab as a WooCommerce email.
It briefly runs the mail-configuration hooks (phpmailer_init) that other plugins register, on a temporary object that never sends anything, to see which ones switch WordPress to SMTP. This stays on your site: no data is sent to any external service. The result is saved for up to 12 hours, and the "Re-check" button refreshes it.
The Email Log keeps, for a few days (7 by default), the time of each email, which plugin sent it, its WooCommerce email type, the order number for WooCommerce order emails, whether it was accepted or failed, the recipient's email domain and a partly hidden address such as j***@example.com, and an error message with any addresses hidden. The order number is shown only to administrators, in the Emails for this order panel on the order screen. It never stores the message, its subject or a full email address. You can turn logging off, shorten the retention or clear the log in the Email Log tab. A suggestion for your privacy policy is added under Settings > Privacy.
Each email causes one small database insert. Entries older than the retention period (7 days by default) are deleted by a daily cleanup, which also trims the log to the newest 5,000 entries (developers can change this with the ecehc_log_max_rows filter). Between cleanups the log can briefly be larger. The Health Report opens at once and runs its checks, including the DNS lookups, in the background on the plugin's own screen. The same checks also run when you open Tools > Site Health or use WP-CLI.
Logging only observes. The hooks it uses (the wp_mail filter, pre_wp_mail, and WooCommerce's mail callback filter) hand back exactly what they receive, so this plugin does not change the subject, recipients, headers or attachments. Each email causes one small database insert, with no extra web request. If writing the log entry fails, the error is swallowed and the email is sent anyway. Mail that another plugin sends through the pre_wp_mail short circuit never reaches the log, so it is not logged. These points are covered by automated tests in the plugin's GitHub repository.
Deleting the plugin from the Plugins screen removes everything it stored: the email log table ({prefix}ecehc_email_log), its settings and schema version, the last test email result, the install date, the flag that a report once passed, the getting-started checklist flag, the cached lookups (SMTP detection, server IP blacklist, plugin names, log statistics), the daily log cleanup event, and the per-user records of the review request and the checklist. On a multisite network all of this is removed for every site (the per-user records are network-wide). The only other leftovers are the short-lived limits for test emails (a transient that expires on its own within 5 minutes). Deactivating the plugin does not remove anything.
No ads, no upsell banners and no tracking. There are exactly two things: one plain text link, "Follow the Pro plan", in the footer of the plugin's own screen and on its row in the Plugins list (hide it by returning false from the ecehc_show_pro_link filter), and one dismissible request for a review, shown only to administrators, only on the plugin's own screens, and only after a test email went through or a report came back with at least one passing check and no failures or warnings, at least a day after install. "Maybe later" hides it for 30 days and works at most twice; "Done" hides it for good.
Yes, and thank you. Translations are done by the community on translate.wordpress.org: https://translate.wordpress.org/projects/wp-plugins/ecom-email-health-check/ . The plugin's texts can be translated, except the plain-text support report and the WP-CLI output, which stay in English on purpose. A draft Arabic translation is kept in the plugin's GitHub repository; it still needs a native speaker to review it and a translation editor to import it.
Please use the plugin's support forum on WordPress.org: https://wordpress.org/support/plugin/ecom-email-health-check/
ecehc_log_row filter and the ecehc_email_logged action gain an additive order_id key (0 when the email is not an order email). No existing key changed. More automated tests, including tests that the log never changes or blocks outgoing mail.ecehc_show_pro_link filter (documented in the hooks guide).ecehc_run_checks(), for example from a scheduled job. The function is documented in the hooks guide (docs/extending.md in the GitHub repository). It sends nothing and stores no results; some lookups are cached for up to 12 hours.ecehc_checks_completed action after every full check run, and a short guide to the plugin's hooks (docs/extending.md in the GitHub repository).php tests/run.php), Plugin Check and lint in continuous integration, and a more resilient deploy workflow.wp ehc check (exits with status 1 when a check fails) and wp ehc log (with --stats).{prefix}ecehc_email_log.ecehc_alert_min_failures and ecehc_alert_min_rate filters.ecehc_enable_email_log, ecehc_log_row, ecehc_email_logged, ecehc_log_retention_days, ecehc_log_max_rows, ecehc_dnsbl_zones and ecehc_server_ip.wp_mail_from filter) instead of the admin email.ecehc_checks filter. Requires PHP 7.4+.