• Resolved wp_edu

    (@alemao2k6)


    Tenho um plugin de checkout (método de pagamento) que adiciona seu próprio campo de “CPF ou CNPJ” no checkout do Woocommerce, pois necessita dessa informação para uma requisição via API.

    Usando o Extra Checkout Fields for Brazil, este campo não é utilizado mas acaba funcionando apenas o CPF para a requisição via API deste meu checkout.

    Gostaria de sugerir adicionar uma opção para combinar os campos billing_cpf e billing_cnpj em um único campo (poderia ser o billing_cpf), ao invés de termos ambos sempre separados. Isso requer mexer ou desativar a validação do campo também, quando esta opção estiver ligada.

    Com essa nova opção, ficaria mais simples de personalizar qual campo deve ser usado por outros plugins que usam os campos de CPF/CNPJ, sem ter que mexer com a programação deste plugin.

    Se já tiver alguma alternativa, filtro ou algo que possa ser feito já neste plugin para que o campo CNPJ seja o mesmo que o CPF, peço a gentileza de me orientar na direção certa.

    Grato

Viewing 5 replies - 1 through 5 (of 5 total)
  • Plugin Author Claudio Sanches

    (@claudiosanches)

    Oi @alemao2k6.

    Então, eu acho que não vai ser possível isso, além de ser mega especifico, eu não acho que seja necessário. No seu plugin você consegue pegar ambos os campos e usar o que esta disponível. Também da para verificar as opções do deste plugin para ver se precisar aceitar CPF ou CNPJ.

    Se você quiser eu consigo te ajudar arrumar isso.

    Thread Starter wp_edu

    (@alemao2k6)

    Entendo perfeitamente. O que está me pegando é que o argumento que é enviado para a API ao finalizar a compra é este:


    ‘client[cpf]’ => sanitize_text_field($_POST[‘billing_cpf’]),


    Mas não consigo encontrar uma maneira de verificar na página de checkout, se o cliente escolheu PF ou PJ, para pegar o valor de billing_cnpj quando está fazendo a compra como pessoa jurídica.

    Tudo que tentei até agora dá erro no WP/PHP.

    Como eu poderia popular este campo com o CNPJ, quando o cliente está comprando como PJ?

    (Acredito que o objeto $order ainda não exista neste ponto, pois é antes de criar o pedido?)

    Obrigado

    Plugin Author Claudio Sanches

    (@claudiosanches)

    @alemao2k6 Aqui um exemplo de como pode ser feito:

    // Recupera as configurações do plugin.
    $wcbcf_settings = get_option( 'wcbcf_settings' );
    
    // Recupera o tipo de pessoa configurado no plugin.
    // 1 = PF e PJ, 2 = PF, 3 = PJ.
    $setting_person_type = intval( $wcbcf_settings['person_type'] );
    
    // Recupera o tipo de pessoa selecionado no checkout.
    $billing_person_type = isset( $_POST['billing_persontype'] ) ? intval( wp_unslash( $_POST['billing_persontype'] ) ) : 0;
    
    if (
        ( 1 === $setting_person_type && 1 === $billing_person_type )
        || 2 === $setting_person_type
    ) {
        $data['client']['cpf'] = sanitize_text_field( wp_unslash( $_POST['billing_cpf'] ) );
    }
    
    if (
        ( 1 === $setting_person_type && 2 === $billing_person_type )
        || 3 === $setting_person_type
    ) {
        $data['client']['cnpj'] = sanitize_text_field( wp_unslash( $_POST['billing_cnpj'] ) );
    }

    Assim da para considerar as opções do plugin e recuperar o campo correto selecionado durante o checkout.

    Thread Starter wp_edu

    (@alemao2k6)

    Que maravilha. Muito obrigado Claudio. Vou testar o código nos próximos dias, hoje não consegui o tempo para isso, mas confio que dará 100% certo, então vou marcar aqui como resolvido. Mais uma vez, muito obrigado.

    Plugin Author Claudio Sanches

    (@claudiosanches)

    Se estiver em um repositório publico eu consigo até contribuir lá para te ajudar.

Viewing 5 replies - 1 through 5 (of 5 total)
  • The topic ‘Opção de ter CPF/CNPJ em um único (mesmo) campo’ is closed to new replies.