Support » Plugin: Claudio Sanches - PagSeguro for WooCommerce » [Contribuição + Ajuda revisão] Desconto para pagamento no boleto

  • Prezados, eu tinha uma necessidade de aplicar um desconto de 5% para o pagamento específico no boleto do PagSeguro. Vi aqui algumas postagens de pessoas interessadas nisso também. Vi uma postagem do @claudiosanches que sugeriu alterar os dados enviados para o PagSeguro, usando um filtro. Cheguei ao seguinte resultado que funciona (adicionar no functions.php):

    
    /**
     * Filtro para adicionar desconto de X% no boleto
     */
    add_filter( 'woocommerce_pagseguro_payment_xml', 'sc50k_desconto_boleto', 20, 2 );
    add_filter( 'woocommerce_pagseguro_checkout_xml', 'sc50k_desconto_boleto', 20, 2 );
    function sc50k_desconto_boleto($xml, $order){
    	if ( $xml->method == 'boleto' ){
    		$desconto = 5; // Depois dá para colocar dinâmico no admin via get_option()
    
    		$total = $order->get_total();
    		$discount = number_format( $total * ( $desconto / 100 ), 2, '.', ',' );
    		$xml->add_extra_amount( '-'.$discount );
    		
    		$current_order_discount = $order->get_discount_total();
    		$order->set_discount_total( $current_order_discount + $discount );
    
    		$current_order_total = $order->get_total();
    		$order->set_total( $current_order_total - $discount );
    
    		$order->save();
    	}
    
    	return $xml;
    }
    

    O código acima altera o $xml enviado para o PagSeguro, adicionando um extra com valor negativo (add_extra_amount). Isso altera o valor no PagSeguro, mas não altera o valor do pedido no Woocommerce. Então depois eu adicionei no pedido ($order) um desconto e depois, alterei o total para, enfim, salvar o pedido.

    Isso funcionou. O pedido foi modificado no Woocommerce. APARENTEMENTE, tudo funciona, mas é aí que gostaria da ajuda do @claudiosanches e do @erickandrade, para que, caso possam dar uma olhada no código acima (claro, dentro da disponibilidade de tempo de cada um), vissem se eu não esqueci de algo. Pois como o Woocommerce é um sistema muito grande e como sou iniciante, pode ser que não previ/testei alguma coisa e um olhar de alguém mais experiente talvez pudesse identificar.

    Já agradeço pelo desenvolvimento do plugin, é realmente muito bom. Deixei minha avaliação também. Espero que o código acima possa ajudar outras pessoas. Abs!

Viewing 2 replies - 1 through 2 (of 2 total)
  • Excelente contribuição 😀

    Queria abrir uns pontos aqui na sua mensagem:
    1. Qual seria o objetivo do desconto no boleto do Pagseguro? Eles cobram a mesma taxa e dão o mesmo prazo para boleto e cartão de crédito, o desconto (a meu ver) não traria benefício algum pro lojista. Faria sentido se fosse um intermediador que cobrasse uma taxa menor ou valor fixo somente no boleto. Mas… você deve ter seus motivos 😉

    2. Já vi plugins de outros intermediadores que inserem boleto, cartão e transferência como formas de pagamento separadas no Woocommerce (ao invés de juntas, como no caso do Pagseguro). O do MercadoPago é um exemplo. Quando é este o caso, torna-se possível fornecer o desconto apenas no boleto usando plugins de descontos e promoções existentes.

    Olá Denis, vi sua resposta. Realmente as questões fazem sentido, eu não havia parado para pensar nisso. O cliente já possuía uma loja antiga que oferecia desconto no boleto, aí apenas “segui o baile”.

    Quanto a questão 1, se não há benefícios ao lojista, realmente não vale a pena separar desconto apenas para o boleto, já que no PagSeguro, é tudo igual. Vou falar com ele, talvez esse argumento o faça solicitar o desconto via boleto, pois realmente não faz sentido.

    Quanto a questão 2, quando é separado, vi sim que existem plugins que cumprem bem essa tarefa.

Viewing 2 replies - 1 through 2 (of 2 total)
  • The topic ‘[Contribuição + Ajuda revisão] Desconto para pagamento no boleto’ is closed to new replies.