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

wmvff8tz  于 2022-10-30  发布在  PHP
关注(0)|答案(2)|浏览(618)

我们将如何禁用特定产品的单一产品页面?
例如,我们有一些产品具有产品变体。在这种情况下,我们使用的是单一产品页面。但对于没有变体的产品,我们只需使用登录页面上的“添加到购物车”链接,而跳过单一产品页面,因为该页面只是为客户添加了额外的步骤。
我发现this post概述了如何禁用所有单个产品页面。但我想针对被禁用的页面。无论是通过产品编号或产品列表类型,即变量,非变量。
什么是最好的方法去做这件事,而不打破WooCommerce或造成SEO问题?
澄清一下:我说的禁用是指从购物车等区域删除到页面的链接。

k5ifujac

k5ifujac1#

在以下函数中,您必须在代码中定义一个或多个产品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文件。* 测试和工程。

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

qq24tv8q

qq24tv8q2#

你可以在return false周围添加if语句。你可以检查产品(页面)id,或者我会添加标签(或类别或自定义字段)到这些,然后在if语句中,你可以检查这个标签,如果它在那里,你返回false;

相关问题