No plugin PagBank Connect você tem opções de desconto pix e boleto direto nas configurações do plugin.
Em alguns casos avançados talvez você queira dar um desconto baseado em outra condição. Como número de produtos no carrinho, de acordo com a categoria de cada produto, ou mesmo com base em algum atributo de usuário.
Pensando nisso, criamos dois filtros que podem ser usados no arquivo functions.php do seu tema, ou mesmo em um plugin adicional com suas customizações.
-
pagbank_connect_should_apply_payment_method_discount(prioridade livre do seu lado)-
$should_apply(bool, defaulttrue) -
$cart(WC_Cart) -
$discountContext— array com:method(pix|boleto),gateway_id,sub_method,fee_id,title,config_discount,excludes_shipping,cart_total,shipping_total
-
-
pagbank_connect_payment_method_discount_amount-
$discount(float): valor já calculado a partir da configuração feita no admin (PagBank > Configurações > Pix | Boleto) -
$cart, mesmo$discountContext
-
Depois dos filtros: max(0, …) e teto para não ultrapassar a base usada pelo percentual (cart_total - shipping_total quando excludes_shipping, senão cart_total).
O segundo filtro apenas devolverá true or false dizendo se há desconto a ser aplicado.
Limitações
-
Texto na vitrine / blocos (“X% no Pix”) continua usando
pix_discountfixo até existir outro hook emPix::showPriceDiscountPixProduct/ dados enviados ao block. - Recomenda-se desativar a exibição de desconto pix na página de produto/categoria dependendo da situação.
Exemplo de uso
add_filter( 'pagbank_connect_payment_method_discount_amount', function ( $discount, $cart, $context ) {
if ( $context['method'] !== 'pix' ) {
return $discount;
}
return 123.45; // exemplo: desconto fixo customizado
}, 10, 3 );
add_filter( 'pagbank_connect_should_apply_payment_method_discount', function ( $apply, $cart, $context ) {
return $cart->get_cart_contents_count() >= 5;
}, 10, 3 );
✨ Crie sua regra de desconto personalizada para PIX e Boleto
O que é enviado automaticamente (filtros WooCommerce)
Comentários
0 comentário
Por favor, entre para comentar.