Comunidade

Ask a Question
Back to All

plugin woocommerce

instalamos o vosso plugin na nossa instalação do woocommerce.

temos 3 formas de pagamento no nosso checkout, stripe, paypal e pagseguro

as validações de bairro , telefone são acionadas no checkout vindas do vosso plugin mesmo que o comprador escolha o stripe ou o paypal.

as validações so deveriam acontecer se o comprador escolhece o pagseguro para fazer o pagamento.

alem disso as validações são disparadas independentemente do pais da encomenda o que esta errado.

por exemplo o nosso comprador é de portugal e aparece a mensagem : Telefone inválido. Preencha DDD + NÚMERO'

ele só deveria fazer esta validação do telefone se o pais da encomenda fosse Brasil e se a forma de pagamento escolhida fosse o Pagseguro.

/**
Intercept woocommerce checkout process
/
add_action('woocommerce_checkout_process', 'ps_validade_checkout_proccess');

function ps_validade_checkout_proccess()
{
    if ($_POST['payment_method']) {
        try {
            $billing_address_1 = explode(', ', $_POST['billing_address_1']);
            if (!isset($billing_address_1[1])) {
                throw new Exception('[PAGSEGURO]: Invalid address');
            };
        } catch (Exception $exception) {
            wc_add_notice(__('Endereço com formato inválido. Exemplo: Rua São João, 11'), 'error');
        }

        try {
            if (!isset($_POST['billing_address_2']) || !$_POST['billing_address_2']) {
                throw new Exception('[PAGSEGURO]: Invalid address');
            }
        } catch (Exception $exception) {
            wc_add_notice(__('Por favor, preencha o bairro.'), 'error');
        }

        try {
            $phone = strlen(filter_var($_POST['billing_phone'], FILTER_SANITIZE_NUMBER_INT));

            if ($phone < 9 || $phone > 11) {
                throw new Exception('[PAGSEGURO]: Invalid phone');
            }
        } catch (Exception $exception) {
            wc_add_notice(__('Telefone inválido. Preencha DDD + NÚMERO'), 'error');
        }
    }
}

php: woocommerce-pagseguro-oficial

Precisamos deste problema resolvido para podermos usar o pagseguro na nossa loja woocommerce