Woocommerce登录:如果用户帐户不存在,则显示错误

时间:2019-04-16 10:27:06

标签: php wordpress woocommerce hook-woocommerce

当前,当用户尝试使用不存在的电子邮件/用户名登录时,将显示以下默认woocommerce错误:

enter image description here

我正在尝试检查:如果电子邮件/用户名不存在,请显示其他消息

例如“此电子邮件地址不存在,请创建一个。”

钩子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 ) );
        }
}

1 个答案:

答案 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 ) );          
        }
}