Home Woocommerce Hooks How to add a custom fee for a specific payment gateway in Woocommerce?

How to add a custom fee for a specific payment gateway in Woocommerce?

by therichpost
2 comments
woocommerce

Hello, welcome to therichpost.com. In this post, I will tell you, How to add a custom fee for a specific payment gateway in Woocommerce?  WordPress is the best cms and Woocommerce is the best Ecommerce plugin. WordPress hooks(add_action, add_filter) give us the power to edit or change the code without interruption into the files and this is the best thing about wordpress. Now I am going to tell you how the hooks work.

Here is the working and tested code for add a custom fee for a specific payment gateway in Woocommerce and you need to add this hook into your functions.php file:

// Add a custom fee based o cart subtotal
add_action( 'woocommerce_cart_calculate_fees', 'custom_fee_for_credit_card', 20, 1 );
function custom_fee_for_credit_card( $cart ) {
    if ( is_admin() && ! defined( 'DOING_AJAX' ) )
        return;

    if ( ! ( is_checkout() && ! is_wc_endpoint_url() ) )
        return; // Only checkout page

    $payment_method = WC()->session->get( 'chosen_payment_method' );

    if ( 'credit_card' == $payment_method ) {
        $surcharge = $cart->subtotal * 0.025;
        $cart->add_fee( 'Комиссия банка', $surcharge, true );
    }
}

// jQuery - Update checkout on methode payment change  
add_action( 'wp_footer', 'custom_checkout_jqscript' );
function custom_checkout_jqscript() {
    if ( ! ( is_checkout() && ! is_wc_endpoint_url() ) )
        return; // Only checkout page
    ?>
    <script type="text/javascript">
    jQuery( function($){
        $('form.checkout').on('change', 'input[name="payment_method"]', function(){
            $(document.body).trigger('update_checkout');
        });
    });
    </script>
    <?php
}

 There are so many hooks in wordpress and i will let you know all. Please do comment if you any query related to this post. Thank you. Therichpost.com

 

You may also like

2 comments

Sven August 21, 2018 - 10:24 am

I tried a lot of ways, but only yours did help me! Thank you!

Reply
Ajay Malhotra August 21, 2018 - 10:34 am

Your welcome Sven. Glad it helped you..
Cheers

Reply

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.