Saludos para todos, luego de una gran búsqueda por la red encontré el siguiente código, en el foro de Stack Overflow, que me ayudó a resolver el problema, lo comparto por si alguien lo necesitara en algún momento:
add_action( 'woocommerce_before_calculate_totals', 'change_tax_class_based_on_payment_method', 10, 1 );
function change_tax_class_based_on_payment_method( $cart ) {
// Only for a specific defined payment meyhod
if ( WC()->session->get('chosen_payment_method') !== 'cod' && WC()->session->get('chosen_payment_method') !== 'cheque')
return;
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
if ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 )
return;
// Loop through cart items
foreach( $cart->get_cart() as $cart_item ){
// We set "Zero rate" tax class
$cart_item['data']->set_tax_class("Zero rate");
}
}
add_action('wp_footer', 'payment_methods_trigger_update_checkout');
function payment_methods_trigger_update_checkout() {
if( is_checkout() && ! is_wc_endpoint_url() ) :
?>
<script type="text/javascript">
jQuery(function($){
$( 'form.checkout' ).on('change', 'input[name="payment_method"]', function() {
$(document.body).trigger('update_checkout');
});
});
</script>
<?php
endif;
}