禁用Woocommerce商店中特定产品类别的链接

时间:2018-05-15 02:13:31

标签: php wordpress woocommerce permalinks product

如何禁用指向特定类别的woocommerce单品页的链接?

我的意思是要禁用单击以打开特定类别而非所有类别的单个产品页面的选项。所以,我需要一些类别来正常使用单页。

澄清:我想在此类别中显示产品照片和名称,并在尝试点击打开产品页面时停用。

1 个答案:

答案 0 :(得分:0)

对于已定义的产品类别(或产品类别),以下代码将:

  • 删除产品上的链接
  • 删除产品照片
  • 下的按钮

在商店和档案页面中。

您必须在两个功能中定义目标产品类别(或产品类别):

add_action( 'init', 'custom_shop_loop_items' );
function custom_shop_loop_items() {
    remove_action( 'woocommerce_before_shop_loop_item', 'woocommerce_template_loop_product_link_open', 10 );
    add_action( 'woocommerce_before_shop_loop_item', 'custom_template_loop_product_link_open', 10 );
}

// Removing the product link
function custom_template_loop_product_link_open() {
    global $product;

    // HERE define your product categories in the array (can be either IDs, slugs or names)
    $terms =  array( 't-shirts', 'hoods' ); // Coma separated

    $link = apply_filters( 'woocommerce_loop_product_link', get_the_permalink(), $product );

    if( has_term( $terms, 'product_cat', $product->get_id() ) )
        echo '<a class="woocommerce-LoopProduct-link woocommerce-loop-product__link">';
    else
        echo '<a href="' . esc_url( $link ) . '" class="woocommerce-LoopProduct-link woocommerce-loop-product__link">';
}

// Removing the product button
add_filter( 'woocommerce_loop_add_to_cart_link', 'filter_loop_add_to_cart_link', 20, 3 );
function filter_loop_add_to_cart_link( $button, $product, $args = array() ) {

    // HERE define your product categories in the array (can be either IDs, slugs or names)
    $terms =  array( 't-shirts', 'hoods' ); // Coma separated

    if( has_term( $terms, 'product_cat', $product->get_id() ) )
        $button = '';

    return $button;
}

代码放在活动子主题(或活动主题)的function.php文件中。经过测试和工作。