• Resolved Jefferson

    (@jrtideias)


    Olá pessoal,
    Estou tentando adicionar um desconto de acordo com o meio de pagamento, no caso desconto para quem pagar via boleto.

    Vi em outro tópico sobre o filtro woocommerce_pagseguro_checkout_xml, utilizei ele para tentar manipular o XML.
    Porém parece que ele nem entra na minha fun??o. Já tentei dar um wp_die e exit dentro da fun??o e nada acontece, tentei imprimir alguma coisa e também n?o funcionou.

    add_filter( 'woocommerce_pagseguro_checkout_xml', 'filter_woocommerce_pagseguro_checkout_xml', 10, 2 );
    
        function filter_woocommerce_pagseguro_checkout_xml( $xml, $order ) {
    
          $newxml = simplexml_load_string($xml);
    
          $paymentMethodConfigs = $newxml->addChild( 'paymentMethodConfigs' );
          $paymentMethodConfig = $paymentMethodConfigs->addChild( 'paymentMethodConfig' );
          $paymentMethod = $paymentMethodConfig->addChild( 'paymentMethod' );
          $group = $paymentMethod->addChild( 'group', 'BOLETO' );
    
          $configs = $paymentMethodConfig->addChild( 'configs' );
          $config = $configs->addChild( 'config'  );
          $config->addChild( 'key', 'DISCOUNT_PERCENT'  );
          $config->addChild( 'value', '10.00'  );
    
          return $newxml->asXML();
        };

    Se alguém ja utilizou esse filtro e puder ajudar, por favor.

    Obrigado

Viewing 6 replies - 1 through 6 (of 6 total)
  • Plugin Author Claudio Sanches

    (@claudiosanches)

    No caso esse filtro já passa um objeto SimpleXMLElement e por isso despensa utilizar simplexml_load_string(), sem contar que usar $newxml->asXML() vai causar erros no plugin que vai tentar fazer o mesmo em uma string, sendo que esperava ter de volta o objeto SimpleXMLElement.
    Fazendo isso já deve funcionar, se você esta usando a estrutura correta do XML do PagSeguro, é claro.

    diogopetermann

    (@diogopetermann)

    Jefferson, conseguiu fazer funcionar? Utilizei seu código e as dicas do Claudio mas ainda n?o consegui.

    Thread Starter Jefferson

    (@jrtideias)

    N?o consegui Diogo. Acredito que a estrutura do XML n?o está de acordo com o PagSeguro, só pode ser isso.
    Como é um projeto pessoal acabei removendo a op??o de desconto para pagamento no boleto, em breve pretendo colocar outro servi?o de pagamento.

    Se conseguir resolver n?o deixe de postar aqui, pode ser util para outras pessoas.

    Abs

    Boa tarde.
    Como fa?o para inserir 5% de desconto no pagamento via boleto com Pagseguro para Woocommerce? Existe alguma solu??o para isso?

    Abs.

    Encontrei uma solu??o usando o extraAmount

    add_filter( 'woocommerce_pagseguro_payment_xml', function( $xml, $order ) {
    
    	$newxml = $xml;
    
    	if($newxml->method == 'boleto'){
    		$total = $order->total;
    		$new_total = $total * 0.1;
    		$new_total = '-'.round($new_total, 2);
    		$new_total = number_format($new_total, 2);
    
    		$newxml->addChild( 'extraAmount', $new_total );
    	}
    
    	return $newxml;
    }, 10, 2 );

    Obrigado marcelo2605, vou testar sua solu??o!

Viewing 6 replies - 1 through 6 (of 6 total)
  • The topic ‘Desconto por meio de pagamento – XML checkout transparente Pagseguro’ is closed to new replies.