| 开发者 | usercheck |
|---|---|
| 更新时间 | 2026年5月14日 13:03 |
| PHP版本: | 7.4 及以上 |
| WordPress版本: | 6.9 |
| 版权: | GPLv2 or later |
| 版权网址: | 版权信息 |
UserCheck::instance()->evaluate_email( $email ) and acting on the returned action, reason, and message.
Translation ready
All text in the plugin can be translated into any language.
Works out of the box
No configuration required. A free API key unlocks higher request limits.
Powered by UserCheck, which tracks new disposable email providers as they appear so your site's protection stays current.
usercheck folder to the /wp-content/plugins/ directoryNo, an API key is not required to use this plugin. It works out of the box with a limit of 30 requests per hour. However, if you need higher limits, you can obtain a free API key by signing up at https://app.usercheck.com/.
Sign-ups continue to go through and the error is logged for your reference. Your forms keep working even when our service has issues.
To increase the request limit beyond 30 per hour, you can obtain an API key from UserCheck. Once you have the key, go to the UserCheck settings in your WordPress admin panel and enter the key there.
Add a filter in a mu-plugin or your theme's functions.php:
add_filter( 'usercheck_block_message', function ( $message, $signal, $email ) { if ( $signal === 'disposable' ) { return 'Please use a permanent email address.'; } return $message; }, 10, 3 );
$signal is one of blocklisted, mx, disposable, public_domain, relay_domain, spam. $email is the address being evaluated. Return the (possibly modified) message.
is_email filter with surface-specific hooks. The plugin now only checks emails when users submit them (registration, comments, WooCommerce checkout/account creation) and no longer re-validates existing users or orders. Fixes 502 errors on order pages caused by repeated synchronous API calls.woocommerce_after_checkout_validation), Cart/Checkout Block (woocommerce_store_api_checkout_order_processed), account registration, and Edit-account email change (woocommerce_save_account_details_errors).wpcf7_validate_email and wpcf7_validate_email*.wpforms_process_validate_email.elementor_pro/forms/validation/email.gform_field_validation for email-type fields.fluentform/validate_input_item_input_email.ninja_forms_submit_data and walks email-type fields.frm_validate_field_entry (covers fields inside repeater rows).mailpoet_subscription_before_subscribe.UserCheck::integrations_registry() and are wired automatically when their host plugin is detected.UserCheck::instance()->evaluate_email( $email ) from any hook to integrate UserCheck with plugins that don't have a built-in or aren't covered by the is_email() fallback. Returns array{action, reason, message} with action being allow or block.usercheck_block_message filter so developers can override the user-facing block message per signal. See the FAQ for a usage example.is_email() fallback for plugins without a native integration (Settings → UserCheck → Coverage). On by default — preserves the unconditional is_email coverage that existed pre-0.2.0; opt out from the Coverage section. Covers front-end submissions including AJAX (wpDiscuz, AJAX-submitted CF7/Elementor) and REST; admin page-loads, cron, and WP-CLI are excluded so the v0.1 502 regression on WC order pages stays fixed.user_profile_update_errors) and REST comment submission coverage (rest_pre_insert_comment).