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

Ссылка скопирована
1 ответ

В общем, нужно сделать условие, что изображения в товарах открываются только после авторизации на сайте (см скрин

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

). Есть какие-либо плагины или код?

Дополнительно

фриланс в помощь

Ответы:

В CSS есть backdrop-filter: blur(120px).
Делайте проверку на авторизованного пользователя и убирайте значение в 0px прямо в инлайн-стиле.

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Web-разработка Ответ

Если нужно действительно скрыть изображение товара от неавторизованных пользователей, одного CSS blur недостаточно. Blur скрывает картинку визуально, но URL изображения всё равно остаётся в HTML, и пользователь может открыть его напрямую.

Есть два уровня решения:

  1. Визуальное ограничение: показывать размытое изображение и кнопку «Войдите».
  2. Реальная защита: не отдавать оригинальное изображение без авторизации.

Для простого визуального варианта:

add_filter('woocommerce_product_get_image', function ($image, $product) {
    if (is_user_logged_in()) {
        return $image;
    }
 
    return '<div class="locked-product-image">' . $image . '<span>Войдите, чтобы увидеть фото</span></div>';
}, 10, 2);

add_filter('woocommerce_product_get_image', function ($image, $product) { if (is_user_logged_in()) { return $image; } return '<div class="locked-product-image">' . $image . '<span>Войдите, чтобы увидеть фото</span></div>'; }, 10, 2);

.locked-product-image img {
    filter: blur(12px);
    pointer-events: none;
}
.locked-product-image {
    position: relative;
    overflow: hidden;
}

.locked-product-image img { filter: blur(12px); pointer-events: none; } .locked-product-image { position: relative; overflow: hidden; }

Для настоящей защиты нужно не выводить URL оригинала вообще: показывать заглушку, а оригиналы хранить вне публичной папки или отдавать через PHP-контроллер с проверкой авторизации. Это сложнее, но только так можно закрыть доступ реально.

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

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно