Check out FoodMaster — the modern food ordering plugin for WooCommerce. View Plugin
WPSlash

Add Discount on WooCommerce Checkout when Pickup is selected using WooFood

Thursday April 9, 2020

Here is small snippet you can add a discount on total cart contents . On the following example we are adding a 20% discount when Pickup is selected. You can change the variable $percentage to the number of percentage discount you want.

function wpslash_add_discount_for_pickup() {
	global $woocommerce;
    if ( is_admin() && ! defined( 'DOING_AJAX' ) )
		return;
	$order_type =  WC()->session->get( 'woofood_order_type' );

	$percentage = 20;
	$discount_amount =  $woocommerce->cart->cart_contents_total  * ($percentage/100);	
	if($order_type == "pickup")
	{
			$woocommerce->cart->add_fee( 'Pickup Discount', -$discount_amount, true, '' );

	}

}
add_action( 'woocommerce_cart_calculate_fees','wpslash_add_discount_for_pickup' );

Here is a second sample if you want to add discount on pickup items excluding some ids

function wpslash_add_discount_for_pickup_specific_ids() {
	global $woocommerce;
    if ( is_admin() && ! defined( 'DOING_AJAX' ) )
		return;
	$order_type =  WC()->session->get( 'woofood_order_type' );
        $exluded_ids = array(110, 134);
	$percentage = 20;
foreach( WC()->cart->get_cart() as $cart_item ){
    $product_id= $cart_item['product_id'];
    $price = $cart_item['data']->get_price(); 
    $discount_amount =  $price  * ($percentage/100);	
    $title = $cart_item['data']->get_title(); 

if($order_type == "pickup" && !in_array($product_id, $exluded_ids))
	{
			$woocommerce->cart->add_fee( $title.' Discount', -$discount_amount, true, '' );

	}
}
	
	

}
add_action( 'woocommerce_cart_calculate_fees','wpslash_add_discount_for_pickup_specific_ids' );

Leave a Comment

Your email address will not be published. Required fields are marked *

Related Articles

Tutorials

How to Secure Your WooCommerce Restaurant Website: WordPress Security Checklist for 2025

Running a restaurant website isn’t like running a blog. When your site goes down at 7 PM on a Friday, you’re not losing pageviews — you’re losing actual dinner orders, frustrated customers, and the trust you spent years building. And unfortunately, restaurant sites running WooCommerce have become a favorite playground for attackers in 2024 and […]
May 17, 2026
Tutorials

How to Set Up SMS and WhatsApp Order Notifications for Your WooCommerce Restaurant (2026)

Why SMS and WhatsApp Notifications Matter for Restaurant Orders A customer places an order on your <a href="https://www.wpslash.com/how-to-set-up-real-time-order-tracking-for-your-woocommerce-restaurant-website-2025-2/" title="How to Set Up Real-Time Order Tracking for Your <a href="https://www.wpslash.com/how-to-set-up-catering-and-large-group-orders-on-your-woocommerce-restaurant-website-2025/" title="How to Set Up Catering and Large Group Orders on Your WooCommerce Restaurant Website (2025)”>WooCommerce Restaurant Website (2025)”>restaurant website at 7:15 PM during the Friday rush. […]
May 3, 2026
Tutorials

How to Set Up Real-Time Order Tracking for Your WooCommerce Restaurant Website (2026)

Why Real-Time Order Tracking Matters for Restaurant Websites Picture this: a hungry customer places an order on your <a href="https://www.wpslash.com/how-to-build-a-customer-loyalty-program-for-your-wordpress-restaurant-website-2025/" title="How to Build a Customer Loyalty Program for Your <a href="https://www.wpslash.com/how-to-connect-your-wordpress-restaurant-website-to-doordash-uber-eats-grubhub-2025/" title="How to Connect Your WordPress <a href="https://www.wpslash.com/how-to-rank-your-restaurant-website-on-google-local-seo-for-wordpress-2025/" title="How to Rank Your Restaurant Website on Google: Local SEO for WordPress (2025)”>Restaurant Website to DoorDash, Uber […]
May 3, 2026