如何允许在电子邮件或用户名以外的字段( billing_cpf或billing_cnpj )登录WooCommerce?
我使用巴西的WooCommerce额外签出字段来添加这个字段。
发布于 2016-10-27 16:36:03
结果:
add_filter('authenticate', 'login_cpf_cnpj', 10, 3);
function login_cpf_cnpj($user, $username, $password){
if ($username == '' || $password == '') return;
global $wpdb;
if ($user) {
return $user;
}
$user_row = $wpdb->get_results(
$wpdb->prepare( "SELECT user_id FROM {$wpdb->prefix}usermeta
WHERE ( meta_key = 'billing_cpf' AND meta_value = '%s')
OR ( meta_key = 'billing_cnpj' AND meta_value = '%s' )",
$username, $username ) );
if (!empty($user_row)) {
$user = get_user_by('ID', $user_row[0]->user_id);
if ($user && wp_check_password($password, $user->user_pass, $user_row[0]->user_id)) {
return $user;
} else { ?>
<script>
alert('Wrong Password!');
window.location = "<?php get_permalink(); ?>";
</script>
<?php
}
}
return $user;
}https://stackoverflow.com/questions/40220301
复制相似问题