在woocommerce中如何在注册时将用户名设置为手机号码

时间:2016-01-29 12:58:05

标签: woocommerce customization registration

我正在使用Woocommerce建立一个网站。默认用户名是客户用户名。我想为用户提供通过他们的电话号码登录的功能。我怎样才能做到这一点?请帮忙!

1 个答案:

答案 0 :(得分:1)

这是可能的。但我认为不是一个好主意。想象一下,2个用户共享相同的号码。

但如果你能设法使电话号码与众不同,你可以尝试使用WooCommerce登录表格。

    add_filter('woocommerce_login_credentials','woocommerce_login_credentials', 10, 1);
    function woocommerce_login_credentials($creds){

        $username = trim( $_POST['username'] );
        if (is_numeric($username)){ // assumes only numeric are allowed. You can do your own logic here.
            $user = get_users(array(
                'meta_query' => array(
                    array(
                        'key'     => 'billing_phone',
                        'value'   => $username,
                        'compare' => 'LIKE',
                    ),
                )
            ));
            $creds['user_login'] = $user[0]->data->user_login;
        }
        return $creds;
    }

此代码使用的是结算电话号码。如果此电话号码属于许多用户,则仅使用查询获得的第一个用户。这段代码的作用是,它使用给定的电话号码获取用户的user_login。然后使用它作为用户名登录。您仍然可以使用用户名/电子邮件作为此代码的登录信息。

这个答案只表明可以做到。我不建议你这样做。