通过WooCommerce注册时,将完整的电子邮件地址设置为用户名

时间:2016-09-05 23:16:14

标签: php wordpress woocommerce

设置/帐户下的WooCommerce有一个名为

的选项
  

自动从客户电子邮件中生成用户名

但它生成的用户名不是完整的电子邮件地址。

my.email@example.com

作为用户名变为myemail

我需要使用什么方法来覆盖用户生成以便使用 完整电子邮件是否已设置为用户名?

2 个答案:

答案 0 :(得分:4)

只需使用钩子pre_user_login

即可
add_filter( 'pre_user_login' , 'wpso_same_user_email' );

function wpso_same_user_email( $user_login ) {

    if( isset($_POST['billing_email'] ) ) {
        $user_login = $_POST['billing_email'];
    }
    if( isset($_POST['email'] ) ) {
        $user_login = $_POST['email'];
    }
    return $user_login;
}

答案 1 :(得分:4)

您可以在functions.php中使用类似的内容。 woocommerce_new_customer_username过滤器可用于更改生成的用户名。如果仅返回客户电子邮件作为用户名,则将使用它代替生成的电子邮件(在您的情况下为@之前的名称)。

function my_new_customer_username( $username, $email, $new_user_args, $suffix ) {
    return $email;
}
add_filter( 'woocommerce_new_customer_username', 'my_new_customer_username', 10, 4 );