Comunidade
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