How to Add a Handling Fee to WooCommerce Checkout


WooCommerce is a free open source ecommerce plugin for WordPress which allows anyone to easily set up an online store. WooCommerce has a wide-range of hooks and filters which allows the plugin to be easily customizable by the user for almost any theme. Currently, WooCommerce doesn’t allow users to add a handling charge to a checkout order from the dashboard, however, it does have an action that allows you to add a handling cost to the order total prior to the customer finalizing their purchase.

Adding a WooCommerce Handling Fee

This function will allow you to add a $5.00 handling charge to every order. The function will need to the placed in the body of your theme’s function.php file.

  add_action( 'woocommerce_cart_calculate_fees','endo_handling_fee' );
function endo_handling_fee() {
     global $woocommerce;
 
     if ( is_admin() && ! defined( 'DOING_AJAX' ) )
          return;
 
     $fee = 5.00;
     $woocommerce->cart->add_fee( 'Handling', $fee, true, 'standard' );
}


How it Works

The endo_handling_fee is prompted whenever the woocommerce_cart_calculate_fees action is fired. The data from the order is grabbed from the global variable $woocommerce which will attach the handling fee. The amount and title of the fee is determined by using the add_fee rule. You are able to set the fee type (in this case “Handling” and the amount to the checkout screen).

Customizing your Handling Fee

Now that the handling fee function has been added to the body of the function.php file you can easily adjust the fee type and amount to fit your needs. The example below will show an adjustment to the fee amount from $5.00 to $2.00 and the type from ‘Handing’ to ‘Processing’ by making simple changes to the $fee = $5.00; and $woocommerce->cart->add_fee(‘Handling’ , $fee, true, ‘standard’); lines of the function.

  add_action( 'woocommerce_cart_calculate_fees','endo_handling_fee' );
function endo_handling_fee() {
     global $woocommerce;
 
     if ( is_admin() && ! defined( 'DOING_AJAX' ) )
          return;
 
     $fee = 2.00;
     $woocommerce->cart->add_fee( 'Processing', $fee, true, 'standard' );
}

Now you know how to add a handling fee to your WooCommerce checkout page, customize the WooCommerce function to fit the fee type and amount you’d like to set for your customers, and have a better understanding of the overall function to explain the importance of the key elements that allow the function to work.


Did you find this article useful?



  • Server Recommendations

    The first step in setting up your WooCommerce-powered online store is to install WordPress and the WooCommerce plugin itself. But before doing so, you...

  • Installing WooCommerce

    If you have an existing site and want to install WooCommerce, using the WordPress Admin is the most straightforward option as it handles everything fo...

  • Uninstalling WooCommerce

    There are two things to understand when uninstalling or removing WooCommerce. If you deactivate and delete the plugin from WordPress, you...

  • Updating Woocommerce

    Updates to WooCommerce, Storefront, WordPress, and your extensions and payment gateways are a fact of life. Our team of developers are hard at wo...

  • Installed Database Tables

    WooCommerce installs some custom tables to store its data during install. More about tables installed: https://github.com/woocommerce/woocommerce/wiki...