Показать список частных продуктов для незарегистрированных пользователей в WooCommerce - PullRequest
0 голосов
/ 21 мая 2019

По какой-то причине мне нужно показать список частных продуктов на одной странице в WooCommerce для гостевых пользователей (не вошедших в систему). Как это можно сделать с (или без) программированием?

1 Ответ

1 голос
/ 21 мая 2019

Вы можете использовать обычный шорткод woocommerce на определенной странице, где вы хотите отобразить частные продукты, например:

[products limit="12" columns="4" paginate="true"]

Вы будете устанавливать аргументы шорткода по своему желанию (например, числостолбцов, количество элементов на странице, включение нумерации страниц и т. д.)

Затем, чтобы запросить все частные продукты, используйте следующую команду (заменив ниже 102 идентификатором страницы, где вы находитесьиспользуя шорткод) :

add_filter( 'woocommerce_shortcode_products_query', 'display_private_product_list', 10, 3 );
function display_private_product_list( $query_args, $atts, $loop_name ){
    if( get_the_id() == 102 ){
        if( ! is_user_logged_in() ){
            $query_args['post_status'] = 'private';
        } else {
            $query_args['post_type'] = 'nothing'; // Display nothing for logged users
        }
    }
    return $query_args;
}

Код помещается в файл function.php активной дочерней темы (или активной темы).Протестировано и работает.

В нем будут показаны все частные продукты для не зарегистрированных пользователей.

...