June 30, 2025
1 min read

In this blog post, we will limit product purchasability based on various conditions.
To make a specific product not purchasable in WooCommerce, we can use a filter hook in your theme’s functions.php file or in a custom plugin. Here’s an example of how you can achieve this for a product with the ID 741:

functions.php
function disable_product_purchase($purchasable, $product) {
    // Check if the product ID is 741
    if ($product->get_id() == 741) {
        // Make the product not purchasable
        $purchasable = false;
    }
    return $purchasable;
}

add_filter('woocommerce_is_purchasable', 'disable_product_purchase', 10, 2);

If we need conditions based on the product category all products under that category will not be purchasable.

functions.php
function disable_products_in_category_purchase($purchasable, $product) {
    // Get the product categories IDs
    $product_categories = wp_get_post_terms($product->get_id(), 'product_cat', array('fields' => 'ids'));

    // Check if the product belongs to category with ID 57
    if (in_array(57, $product_categories)) {
        // Make the product not purchasable
        $purchasable = false;
    }
    return $purchasable;
}

add_filter('woocommerce_is_purchasable', 'disable_products_in_category_purchase', 10, 2);

We can also use a specific date when the product is purchasable or not. In this example we had some products for sale only on 11 Nov for 11-11 promotional sales.

function disable_products_in_category_purchase($purchasable, $product) {
    // Get the current date in 'm-d' format using current_time function
    $current_date = date('m-d', current_time('timestamp', 0)); // 0 for the local timezone

    // Get the product categories IDs
    $product_categories = wp_get_post_terms($product->get_id(), 'product_cat', array('fields' => 'ids'));

    if (in_array(57, $product_categories) && $current_date != '11-11') {
        // Make the product not purchasable
        $purchasable = false;
    }
    return $purchasable;
}

add_filter('woocommerce_is_purchasable', 'disable_products_in_category_purchase', 10, 2);

Leave a Reply

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

WooCommerce Discount based on Cart Item

A discount on the total order with condition based on our cart item

WooCommerce Mostly used Shortcode

Most use shortcode for popular eCommerce plugin WooCommerce.

Customizing WooCommerce Order Numbers with Prefix and Year Suffix

Customize WooCommerce order numbers your way, whether you prefer code or a plugin. Add unique prefixes and dynamic year-based suffixes effortlessly. Make your store’s orders truly yours!

WordPress Next and Previous Post

WordPress Next and Previous Post navigation for custom post type and defult blog post simple php code to use single page

Web Development Project in mind?

if you looking for a web developer for paid contribution to your project I am available for work.

Mukto
Mukto

Click the button below to chat with me.