当前,当用户尝试使用不存在的电子邮件/用户名登录时,将显示以下默认woocommerce错误:
我正在尝试检查:如果电子邮件/用户名不存在,请显示其他消息。
例如“此电子邮件地址不存在,请创建一个。”
钩子woocommerce_registration_error_email_exists
检查用户是否尝试使用已经存在的电子邮件进行注册,因此我尝试使用!email_exists
来取消该操作-是否可以将其应用于登录字段?
以下我的代码未触发,仍显示默认消息:
add_filter( 'woocommerce_registration_error_email_exists', 'no_account_found' );
function no_account_found($email, $username = '', $password = '' ){
if ( !email_exists( $email ) ) {
return new WP_Error( 'registration-error-email-exists', apply_filters( 'woocommerce_registration_error_email_exists', __( 'No account found with this email. Please create one.', 'woocommerce' ), $email ) );
}
}
答案 0 :(得分:0)
email_exists( string $email )
成功时返回用户的ID,失败时返回false。
所以尝试像这样改变您的状况:
<?php
add_filter( 'woocommerce_registration_error_email_exists', 'no_account_found' );
function no_account_found($email, $username = '', $password = '' ){
if (email_exists($email) ) {
//the email exists do something
}else{
//email does not exist
return new WP_Error( 'registration-error-email-exists', apply_filters( 'woocommerce_registration_error_email_exists', __( 'No account found with this email. Please create one.', 'woocommerce' ), $email ) );
}
}