Quantas vezes um cliente pede essa modificação relativamente simples? Realmente é mais comum do que se imagina a necessidade de fazer login no wordpress com o CPNJ.
Claro que o campo billing_cnpj deve estar ativo no WooCommerce através de algum plugin ou com seu código manual.
- Após verificar este requisito, copie o código abaixo e cole no funcions.php do seu tema ativo:
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_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('Verifique sua senha!'); window.location = "<?php get_permalink(); ?>"; </script> <?php } } return $user; }
Desta forma você obtém um resultado como o abaixo, que funciona perfeitamente:
Leave a reply