根据woocommerce中的多个类别删除单个商品页面的“相关商品”

时间:2016-06-21 03:10:07

标签: php woocommerce

我很乐意选择哪个类别的单项目页面显示相关项目。我们不希望每个类别中的所有项目都显示相关项目,因为有些是特别优惠。

我已使用此代码删除单个类别:

/**
 * Removes Related Products from the Special Offer Products single item pages.
 *
 */

function wc_remove_related_products( $args )
{
    if (is_product() && has_term( 'Special Offer', 'product_cat'))
    {
        return array();
    } 

    return $args;
}

add_filter('woocommerce_related_products_args','wc_remove_related_products', 10);

这将仅从1个类别中删除相关项目。所以我使用此处列出的数组/ push_array调整了此代码

$special_categories = array();
array_push($special_categories, 'Special Offer');
array_push($special_categories, 'Train The Trainer');
array_push($special_categories, 'Teacher Training Registration');

function wc_remove_related_products( $args )
{
    if (is_product() && has_term($special_categories, 'product_cat'))
    {
        return array();
    } 

    return $args;
}
add_filter('woocommerce_related_products_args','wc_remove_related_products', 10);

但是,它现在正在删除所有类别的所有相关产品。我错过了什么?我会喜欢一些想法。我正在学习PHP课程,并希望为我的客户解决这个问题。

更新:

我已经根据我见过或使用过的其他代码尝试了其他两种可能的解决方案,并为此目的更改了它们但仍未达到预期效果:

$special_categories = array('Special Offer','Train The Trainer','Teacher Training Registration');

function wc_remove_related_products( $args )
{
    if (is_product() && has_term($special_categories, 'product_cat'))
    {
        return array();
    } 

    return $args;
}
add_filter('woocommerce_related_products_args','wc_remove_related_products', 10);

上面的代码删除了所有相关产品。下面的代码没有删除。

add_filter( 'woocommerce_related_products_args', 'wc_remove_related_products' );
function wc_remove_related_products( $args ) {
        $args['exclude'] = array('59','60','61','233','234','220','235','236','237','238');
        return $args;
    }

有没有人有任何想法?提前谢谢!

0 个答案:

没有答案