pagarme / woocommerce

Woocommerce module for Pagar.me
MIT License
17 stars 17 forks source link

Pagamento em pedidos criados no administrativo como visitante #471

Closed pedroricha closed 3 weeks ago

pedroricha commented 1 month ago

Bug

Descrição

Quando criamos um pedido pelo administrativo (Woocommerce -> Pedidos -> Adicionar pedido), o campo de pagamento da Pagarme só aparece se incluir um cadastro de cliente. Se fazer como "visitante", a forma de pagamento não aparece

Como reproduzir

Criar um pedido como visitante e acessar a página de pagamento

Evidências

image

image

Obs: Esse PIX que ta aprecendo não é o PIX da Pagarme. Tenho ativo o Cartão de crédito e Boleto da Pagarme. Ambos não estão aparecendo.

Se eu coloco ali onde esta "visitante", um cadastro criado, a forma de pagamento aparece como pode ver abaixo:

image

image

RafaMelazzo commented 1 month ago

Olá @pedroricha! Tudo bem?

A Pagar.me precisa de algumas informações do cliente para a criação de um pedido. Por esse motivo não é possível adicionarmos nosso meio de pagamento para um pedido de visitante. Será sempre necessário a inserção de um cliente para que nossos meios de pagamento apareçam nesses pedidos.

pedroricha commented 1 month ago

Oi @RafaMelazzo Entendo sua questão, mas não faz muito sentido. A única diferença nesse caso é se aquele pedido tem algum cadastro atrelado ou não.

É possível que eu coloque um cadastro ali, que não tenha quase nenhuma informação preenchida.. E é possível que eu faça um pedido como "visitante" que tem todas as informações preenchidas que vocês precisam.

O limitante deveria ser se tem todas as informações que vocês precisam preenchidas ou não. E não o fato de eu ter colocado com cadastro atrelado.

zhiru commented 1 month ago

vai no src/Controller/Gateways/AbstractGateway.php deixa a funcao isEnabled assim:

protected function isEnabled() { global $wp; $enabled = $this->get_option('enabled', 'no');

    if (!isset($wp->query_vars['order-pay'])) {
        return $enabled;
    }

    $orderId = $wp->query_vars['order-pay'];
    $order = wc_get_order($orderId);

    // Ajuste para permitir visitantes
    /*if (empty($order->get_customer_id()) && 'yes' !== get_option('woocommerce_enable_guest_checkout')) {
        $enabled = 'no';
    }*/

    return $enabled;
}