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