Adicionar uma taxa com base no método de envio e no método de pagamento no Woocommerce
Preciso aplicar uma taxa adicional quando um cliente pode fazer um pedido com frete grátis, mas deseja selecionar o pagamento COD. Então, frete grátis + pagamento COD => taxa.
Tentei sem êxito o seguinte trecho de código. Onde eu estou errado?
add_action( 'woocommerce_cart_calculate_fees','cod_fee' );
function cod_fee() {
global $woocommerce;
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
$chosen_gateway = WC()->session->chosen_payment_method;
$chosen_methods = WC()->session->get( 'chosen_shipping_methods' );
$chosen_shipping = $chosen_methods[0];
$fee = 19;
if ( $chosen_shipping == 'free_shipping' && $chosen_gateway == 'cod' ) {
WC()->cart->add_fee( 'Spese per pagamento alla consegna', $fee, false, '' );
}
}