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:
“`php
/**
* 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())) {
continue;
}
$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.
—
Open
Last updated: July 7, 2024
0 comments
Log in to comment on this feature request.