Woocommerce: скрыть продукт для данной «категории продуктов» - PullRequest
0 голосов
/ 09 января 2020

Мне нужно скрыть все товары, которые относятся к категории "автомобили".

Я нашел этот код, который скрывает товары на странице категории. Это нормально, но проблема в том, что «страница продукта» по-прежнему опубликована c. Мне нужно, чтобы страница продукта была недоступной .

Я думаю, что функция должна установить продукт как «частный» или «черновик». Или, возможно, изменить его URL.

    add_action( 'woocommerce_product_query', 'bbloomer_hide_products_category_shop' );

function bbloomer_hide_products_category_shop( $q ) {

    $tax_query = (array) $q->get( 'tax_query' );

    $tax_query[] = array(
           'taxonomy' => 'product_cat',
           'field' => 'slug',
           'terms' => array( 'cars' ), // Category slug here
           'operator' => 'NOT IN'
    );


    $q->set( 'tax_query', $tax_query );

}

1 Ответ

0 голосов
/ 09 января 2020
function prevent_access_to_product_page(){
    global $post;

    // Get $product object from post ID
    $product = wc_get_product( $post->ID);

    // Get product categories
    $product_categories = $product->get_categories();

    if ( is_product() && strpos($product_categories, 'cars') !== false ) {
        global $wp_query;
        $wp_query->set_404();
        status_header(404);
    }
}

add_action('wp','prevent_access_to_product_page');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...