使用方法:放到主题 functions.php 或代码片段插件
中文版的 :
function hs_allowed_email_domains() {
return [
// 国内
'qq.com','vip.qq.com','foxmail.com','163.com','126.com','yeah.net','188.com',
'vip.163.com','vip.126.com','sina.com','sina.cn','sohu.com','139.com','189.cn',
'wo.cn','aliyun.com','tom.com','21cn.com',
// 国外
'gmail.com','googlemail.com','outlook.com','hotmail.com','live.com','msn.com',
'yahoo.com','ymail.com','icloud.com','me.com','mac.com','aol.com',
'proton.me','protonmail.com','zoho.com','yandex.com','mail.ru','gmx.com','gmx.net','fastmail.com',
];
}
function hs_email_allowed($email) {
$domain = strtolower(substr(strrchr($email, '@'), 1));
return in_array($domain, hs_allowed_email_domains(), true);
}
// 1. 我的账户页注册
add_filter('woocommerce_registration_errors', function($errors, $username, $email) {
if (!hs_email_allowed($email)) {
$errors->add('email_domain', '请使用主流邮箱注册(如 QQ、163、Gmail、Outlook 等)。');
}
return $errors;
}, 10, 3);
// 2. 结账时创建账户(访客结账不受限,只拦要注册账户的)
add_action('woocommerce_after_checkout_validation', function($data, $errors) {
$creating = !is_user_logged_in() && (!empty($data['createaccount']) || get_option('woocommerce_enable_guest_checkout') !== 'yes');
if ($creating && !empty($data['billing_email']) && !hs_email_allowed($data['billing_email'])) {
$errors->add('email_domain', '请使用主流邮箱注册(如 QQ、163、Gmail、Outlook 等)。');
}
}, 10, 2);
英文版的:
function hs_allowed_email_domains() {
return [
// China
'qq.com','vip.qq.com','foxmail.com','163.com','126.com','yeah.net','188.com',
'vip.163.com','vip.126.com','sina.com','sina.cn','sohu.com','139.com','189.cn',
'wo.cn','aliyun.com','tom.com','21cn.com',
// International
'gmail.com','googlemail.com','outlook.com','hotmail.com','live.com','msn.com',
'yahoo.com','ymail.com','icloud.com','me.com','mac.com','aol.com',
'proton.me','protonmail.com','zoho.com','yandex.com','mail.ru','gmx.com','gmx.net','fastmail.com',
];
}
function hs_email_allowed($email) {
$domain = strtolower(substr(strrchr($email, '@'), 1));
return in_array($domain, hs_allowed_email_domains(), true);
}
function hs_email_error_message() {
return __('Please use a mainstream email provider to register (e.g. Gmail, Outlook, Yahoo, iCloud, QQ, 163). Temporary or disposable email addresses are not allowed.', 'hs-email-whitelist');
}
// 1. My Account page registration
add_filter('woocommerce_registration_errors', function($errors, $username, $email) {
if (!hs_email_allowed($email)) {
$errors->add('email_domain', hs_email_error_message());
}
return $errors;
}, 10, 3);
// 2. Account creation at checkout (guest checkout is not restricted)
add_action('woocommerce_after_checkout_validation', function($data, $errors) {
$creating = !is_user_logged_in() && (!empty($data['createaccount']) || get_option('woocommerce_enable_guest_checkout') !== 'yes');
if ($creating && !empty($data['billing_email']) && !hs_email_allowed($data['billing_email'])) {
$errors->add('email_domain', hs_email_error_message());
}
}, 10, 2);
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。







