Uma alternativa paliativa seria inserir uma regra de ocultar o campo CPF e CNPJ para quem já esta logado, sendo assim a pessoa que já possui cadastra não consegue alterar tal campo, forçando assim a pessoa realizar um cadastro distinto pra cada tipo de pessoa.
<?php
/**
* Remover campo de CPF do pedido na reposta da API quando o pedido foi feito como pessoa jurídica.
*/
function arti_remove_cpf_for_j_persontype( $response ){
if( empty( $response->data ) ){
return $response;
}
if( ‘J’ === $response->data[‘billing’][‘persontype’] ){
$response->data[‘billing’][‘cpf’] = ”;
}
return $response;
}
add_filter(‘woocommerce_rest_prepare_shop_order_object’, ‘arti_remove_cpf_for_j_persontype’, 150, 1 );