To set a minimum order amount based on cities in WooCommerce, you’ll need to add some custom code to your site. This typically involves writing a function in PHP that checks the customer’s shipping city during the checkout process and sets a minimum order amount accordingly. Here’s a step-by-step guide on how you can implement this:
Step 1: Identify Your Theme’s Functions.php File
You will need to add custom PHP code to your WordPress theme. It’s recommended to use a child theme to avoid losing your changes when the main theme updates.
Step 2: Add Custom PHP Code
Open the functions.php
file of your theme and add the following code at the end of the file. This example sets different minimum order amounts for two cities, “City A” and “City B“:
add_action( 'woocommerce_checkout_process', 'set_minimum_order_amount_based_on_city' ); add_action( 'woocommerce_before_cart' , 'set_minimum_order_amount_based_on_city' ); function set_minimum_order_amount_based_on_city() { $minimum_amount_city_A = 50; // Minimum amount for City A $minimum_amount_city_B = 100; // Minimum amount for City B $current_city = WC()->customer->get_shipping_city(); if ($current_city == "City A" && WC()->cart->total < $minimum_amount_city_A) { wc_add_notice( sprintf( "Your current city (%s) requires a minimum order of %s.", $current_city, wc_price($minimum_amount_city_A) ), 'error' ); } elseif ($current_city == "City B" and WC()->cart->total < $minimum_amount_city_B) { wc_add_notice( sprintf( "Your current city (%s) requires a minimum order of %s.", $current_city, wc_price($minimum_amount_city_B) ), 'error' ); } }
Explanation:
- Hooks Used: The
woocommerce_checkout_process
andwoocommerce_before_cart
hooks are used to enforce the minimum order amount check both when the customer updates their cart and proceeds to checkout. - City Check: The script retrieves the customer’s shipping city with
WC()->customer->get_shipping_city()
. - Conditions: Based on the city, it checks if the total cart amount is less than the specified minimum for that city.
- Error Message: If the condition is true, it displays an error notice using
wc_add_notice
.
Step 3: Customize for More Cities
If you need to set different minimum amounts for more cities, expand the conditional statements (if
and elseif
) to include more cities and corresponding minimum amounts.
Step 4: Test Your Changes
After adding the code:
- Clear your site cache if you’re using caching plugins.
- Test by adding products to your cart and trying to checkout using addresses from the specified cities to ensure that the minimum order amount is enforced correctly.
This code should be adjusted according to your specific needs and the structure of your WooCommerce setup. Make sure to backup your website before making changes to the code. If you’re not comfortable editing PHP files, consider hiring a developer or consulting with a WooCommerce expert.
Jassa
Thanks
thanks you so much.
You are welcome.
thanks for sharing , its really helpful for me
You are welcome 🙂