Как скрыть изображения товаров на страницах для пользователей, которые не авторизованы?

Как можно ограничить доступ к оформлению заказа из корзины для неавторизованных пользователей с использованием плагинов или кода, совместимых с WooCommerce? Требуется добавить барьеры для заказов табачной продукции на сайте.
  • 21 февраля 2024 г. 10:18
Ответы на вопрос 2
Для скрытия изображений товаров на страницах для пользователей, которые не авторизованы, можно использовать следующий код в файле functions.php вашей темы:

```php
add_action('wp','check_if_user_logged_in');

function check_if_user_logged_in(){
    if ( !is_user_logged_in() ) {
        remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_title', 5 );
        remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 );
        remove_action('woocommerce_before_single_product_summary', 'woocommerce_show_product_images', 20 );
    }
}
```

Этот код будет удалить изображения товаров, название и цену для неавторизованных пользователей на страницах товаров.

Для ограничения доступа к оформлению заказа из корзины для неавторизованных пользователей с использованием плагинов, вы можете попробовать использовать плагин "WooCommerce Members Only". Он позволяет ограничить доступ к определенным страницам или продуктам только для зарегистрированных пользователей.

Другой вариант - настроить роли пользователей в WordPress и использовать плагин "Members" для управления доступом к страницам и функционалу WooCommerce для различных ролей пользователей. Таким образом, вы сможете ограничить доступ к оформлению заказов для неавторизованных пользователей.

Чтобы добавить барьеры для заказов табачной продукции на сайте, вы можете использовать плагины для возрастного верификации или создать кастомные поля для продуктов, где пользователи могут указать, что им есть 18 лет и они могут оформлять заказы табачной продукции. Убедитесь, что ваш сайт и продажи соответствуют всем законодательным требованиям по продаже табачных товаров онлайн.
Как заблюрить товары на страницах для незарегистрированных пользователей?

Т.к. не понятно, какой метод блюра использовать, то покажу пример реализации css блюра у класса .product:
// functions.php:

function test() {
    if (!is_user_logged_in()) {
        wp_add_inline_style('woocommerce-general', '.product {filter: blur(5px)}');
    }
}
add_action('wp_enqueue_scripts', 'test');

А также есть вопрос по закрытию доступа к заказу из корзины, если пользователь не авторизован.

Можно кодом, с редиректом на страницу с id=myaccount:
// functions.php:

function test() {
    if (!is_user_logged_in()) {
        wp_redirect(get_permalink(wc_get_page_id('myaccount')));
        exit;
    }
}
add_action('woocommerce_before_checkout_form', 'test');

Или плагинами:
- WooCommerce Members Only plugin
- YITH WooCommerce Catalog Mode plugin
Похожие вопросы