• 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 dinamico 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.

    Thread Starter diegosomar

    (@diegosomar)

    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.