December 30, 2024
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 *

Add Classe when the item visible

Add class on scroll to viewport jquery code

Cookie Popup with jQuery

Browser cookies popup accept, store cookies in browser with jQuery

PHP

File manager for any website

You can install a File manager for any website you are working on. It simple file manager PHP script that made by Tiny File Manager

Adding and Removing Class Based on Element Visibility in the Viewport

Add class on element if it come in view and remove not in view

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.