Skip to content

Instantly share code, notes, and snippets.

@wpflames
Created February 16, 2023 13:04
Show Gist options
  • Save wpflames/f24cff44148ab203668ce048b78f2bee to your computer and use it in GitHub Desktop.
Save wpflames/f24cff44148ab203668ce048b78f2bee to your computer and use it in GitHub Desktop.
Add extra fee to COD payment gateway
<?php
// =========================================================================
// ADD EXTRA FEE TO SPECIFIC PAYMENT GATEWAY => COD
// =========================================================================
// Part 1: assign fee
function add_checkout_fee_for_gateway() {
foreach( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
// Check if there are non-virtual products
$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'), 150 );
}
}
}
add_action( 'woocommerce_cart_calculate_fees', 'add_checkout_fee_for_gateway' );
// Part 2: reload checkout on payment gateway 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
}
add_action( 'woocommerce_review_order_before_payment', 'refresh_checkout_on_payment_methods_change' );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment