Отключить ссылки для определенной категории продуктов в магазине Woocommerce - PullRequest
0 голосов
/ 15 мая 2018

Как я могу отключить ссылку на страницу отдельного продукта woocommerce для определенной категории?

Я хочу отключить опцию щелчка, чтобы открыть страницу отдельного продукта для определенной категории, а не для всех категорий.Итак, есть некоторые категории, которые мне нужны, чтобы он работал с одной страницей в обычном режиме.

Чтобы уточнить: я хочу, чтобы в этой категории отображались фото и название продукта, а также отключался при попытке открыть страницу продукта.

1 Ответ

0 голосов
/ 15 мая 2018

Для определенной категории продуктов (или категорий продуктов) следующий код будет:

  • Удалить ссылку на продукт
  • Удалить кнопку подфото товара

в магазине и на страницах архива.

В обеих функциях вам нужно определить целевую категорию продукта (или категории продуктов):

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 вашей активной дочерней темы (или активной темы),Проверено и работает.

...