我正在使用Woocommerce建立一个网站。默认用户名是客户用户名。我想为用户提供通过他们的电话号码登录的功能。我怎样才能做到这一点?请帮忙!
答案 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
。然后使用它作为用户名登录。您仍然可以使用用户名/电子邮件作为此代码的登录信息。
这个答案只表明可以做到。我不建议你这样做。