Desde que eu criei o plugin galera nunca entendeu isso, primeira vez que vejo alguém dizendo que entendeu e por isso aqui o código para fazer isso:
add_action( 'woocommerce_checkout_process', function() {
global $wpdb;
// Stop if do not have CPF.
if ( empty( $_POST['billing_cpf'] ) ) {
return;
}
$settings = get_option( 'wcbcf_settings' );
$person_type = intval( $settings['person_type'] );
$billing_persontype = isset( $_POST['billing_persontype'] ) ? intval( wp_unslash( $_POST['billing_persontype'] ) ) : 0;
$using_person_type = 1 === $person_type && 1 === $billing_persontype;
if ( $using_person_type || 2 === $person_type ) {
$user_id = (int) $wpdb->get_var( $wpdb->prepare( "
SELECT user_id
FROM $wpdb->usermeta
WHERE meta_key = 'billing_cpf'
AND meta_value = %s
", wp_unslash( sanitize_text_field( $_POST['billing_cpf'] ) ) ) );
$current_user_id = (int) get_current_user_id();
if ( 0 === $current_user_id && 0 < $user_id ) {
wc_add_notice( 'Você já tem uma conta cadastrada com o CPF utilizado, fa?a login com sua conta para realizar o pagamento.', 'error' );
} elseif ( 0 < $user_id && $current_user_id !== $user_id ) {
wc_add_notice( 'Já existe um usuário cadastrado com o CPF utilizado, entre com a conta cadastrada com o CPF que você deseja utilizar.', 'error' );
}
}
}, 100 );
Basta usar no functions.php
ou pode criar um plugin seu para usar o código.
Recomendo ativar cadastro de contas no WooCommerce, caso o contrário isso n?o vai ter efeito, uma vez que precisa verificar se existe já em algum usuário cadastrado, já que verificar contra os pedidos feitos pode causar diversos problemas, até mesmo um dos motivos de n?o fazer parte do plugin.