Black Friday & Cyber Monday SUPER SALE ALL WEEK:
Grab 40% OFF on plugins
Days
Hours
Minutes
Seconds

How to Enable or Disable Shipping Based on Featured Products in WooCommerce?

Online store owners use featured products to highlight specific items, giving them special attention and visibility. If you want to hide shipping only for featured products then it can be easily done with the following code.

add_filter('woocommerce_package_rates', 'ts_custom_shipping_methods', 10, 2);

function ts_custom_shipping_methods($rates, $package) {
    // Check if any product in the cart is a featured product
    $has_featured_product = false;
    foreach ($package['contents'] as $cart_item) {
        $product = wc_get_product($cart_item['product_id']);
        if ($product && $product->is_featured()) {
            $has_featured_product = true;
            break;
        }
    }

    // Adjust shipping methods based on the presence of featured products
    if ($has_featured_product) {
        // If featured products are present, hide all shipping methods except free shipping
        $rates = ts_hide_shipping_when_free_is_available($rates);
    }

    return $rates;
}

// Function to hide shipping methods when free shipping is available
function ts_hide_shipping_when_free_is_available($rates) {
    $free = array();
    foreach ($rates as $rate_id => $rate) {
        if ('free_shipping' === $rate->get_method_id()) {
            $free[$rate_id] = $rate;
        }
    }
    return !empty($free) ? $free : $rates;
}

Output

In the below image, it is shown that two of the products are added as featured products.

How to Enable or Disable Shipping Based on Featured Products in WooCommerce? - Tyche Softwares

When featured products are added to cart, it displays only Free shipping option and hides the other shipping methods.

How to Enable or Disable Shipping Based on Featured Products in WooCommerce? - Tyche Softwares

When products other than featured products are added, then it will show all the available shipping options as it is without making any changes as shown below.

How to Enable or Disable Shipping Based on Featured Products in WooCommerce? - Tyche Softwares

Alternatively, you can also hide shipping based on product tags in WooCommerce which will help you to assigns shipping costs based on the product tag items present in the cart.

Browse more in: Code Snippets, WooCommerce How Tos, WooCommerce Tutorials

Share It:

Subscribe
Notify of
0 Comments
Newest
Oldest
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible.

Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.

By using our site, you acknowledge that you have read and understood our Privacy Policy and Terms & Conditions.