// ========================================================================= // ADD FEE TO SPECIFIC PAYMENT GATEWAY => COD - ONLY FOR PHYSICAL PRODUCT // ========================================================================= // Part 1: assign fee add_action( 'woocommerce_cart_calculate_fees', 'add_checkout_fee_for_gateway' ); function add_checkout_fee_for_gateway() { foreach( WC()->cart->get_cart() as $cart_item_key => $cart_item ) { // Check if there are non-virtual products if ( ! $cart_item['data']->is_virtual() ) { $chosen_gateway = WC()->session->chosen_payment_method; if ( $chosen_gateway == 'cod' ) { // Note: edit "Fee" and "5" below to control Label and Fee Amount WC()->cart->add_fee( __('Utánvét díja', 'woocommerce'), 510 ); } } } } // Part 2: reload checkout on payment gateway change add_action( 'woocommerce_review_order_before_payment', 'refresh_checkout_on_payment_methods_change' ); function refresh_checkout_on_payment_methods_change(){ ?> <script type="text/javascript"> (function($){ $( 'form.checkout' ).on( 'change', 'input[name^="payment_method"]', function() { $('body').trigger('update_checkout'); }); })(jQuery); </script> <?php }
Leave a Reply