Mailchimp Banner Promo Product Page | Q3 2024

added by Mahrie for July $1 promo - product page specific link to Mailchimp pricing

Mailchimp Banner Promo Main | Q3 2024

added by Mahrie for July $1 promo

Product Icon

Free Gifts for WooCommerce

Offer Free Gifts to your customers for making purchases in your WooCommerce Shop.

Add new function – option for private products

Hello Woo team,

Recently, I reached out to WooCommerce support and the developer of the Free Gift for WooCommerce plugin regarding an issue and a feature suggestion. The essence of my inquiry revolves around the plugin’s inability to detect hidden products within the WooCommerce product list and their respective categories. Specifically, private products hidden from the storefront are also not recognized by the plugin due to the absence of functionality in your `rule.php` file. This file lacks logic for handling private products.

For over a year, I’ve been using a custom modification of the `rule.php` function to manually detect these products. I alter the original `rule.php` function because the plugin lacks any hooks or options to specifically identify private products. These private products are intended as surprise items, not readily visible to users unless offered as gifts. Unfortunately, the current plugin does not support working with private products.

As a workaround, I’ve implemented my own logic, shown here:

* Get the non-purchasable product.
* @return false/array
public function get_non_purchasable_product( $product_ids ) {

if (!fgf_check_is_array($product_ids)) {
return false;

$non_purchasable_statuses = array(‘private’, ‘publish’);
$non_purchasable_products = array();

foreach ($product_ids as $product_id) {
$product = wc_get_product($product_id);

if (!is_object($product) || (in_array($product->get_status(), $non_purchasable_statuses) && $product->is_purchasable() && $product->is_in_stock())) {

$non_purchasable_products[] = ” . $product->get_name() . ”;

if (!fgf_check_is_array($non_purchasable_products)) {
return false;

return implode(‘, ‘, $non_purchasable_products);

However, with each update, I must modify this function to ensure my private products can be included as gifts. It would greatly benefit the plugin’s functionality if you could add an option to handle private products in future updates. Thank you.



Current Status


Last updated: July 11, 2024


Log in to comment on this feature request.