禁用WooCommerce中特定产品的单个产品页面

时间:2018-05-13 16:10:44

标签: php wordpress woocommerce product hook-woocommerce

我们如何禁用特定产品的单一产品页面?

例如,我们有一些产品有变化。在这种情况下,我们使用单一产品页面。但对于没有变化的产品,我们只需在着陆页上使用添加到购物车链接,并跳过单个产品页面,这只会为客户增加额外的步骤。

我找到了this post,其中概述了如何禁用所有单个商品页面。但我想针对被禁用的页面。无论是产品编号还是产品清单类型,即。变量,非变量。

在不破坏WooCommerce或导致搜索引擎优化问题的情况下,最好的方法是什么?

澄清:禁用我的意思是从购物车等区域删除指向该页面的链接。

1 个答案:

答案 0 :(得分:0)

在以下功能中,您必须在代码中定义一个或多个产品ID。

此第一个挂钩功能将从产品目录中删除产品:

add_filter( 'woocommerce_product_is_visible', 'filter_product_is_visible', 20, 2 );
function filter_product_is_visible( $is_visible, $product_id ){
    // HERE define your products IDs (or variation IDs) to be set as not visible in the array
    $targeted_ids = array(37, 43, 51);

    if( in_array( $product_id, $targeted_ids ) )
        $is_visible = false;

    return $is_visible;
}

要从购物车页面中的购物车商品中删除该链接,您可以使用以下

add_filter( 'woocommerce_cart_item_name', 'filter_cart_item_name', 20, 3 );
function filter_cart_item_name( $product_name, $cart_item, $cart_item_key ) {
    // HERE define your products IDs (or variation IDs) to be set as not visible in the array
    $targeted_ids = array(37, 43, 51);

    if( in_array( $cart_item['data']->get_id(), $targeted_ids ) && is_cart() )
        return $cart_item['data']->get_name();

    return $product_name;
}

代码进入活动子主题(或活动主题)的function.php文件。经过测试并正常工作。

  

也可以将目标产品页面重定向到主要商店。