Поддержка WooCommerce Узнать, что пользователь пришел с определенной категории

  • Добрый день!

    Преамбула проблемы и для чего это нужно: на сайте работает JS, при этом есть несколько операторов, условно, О1 и О2. О2 обрабатывает конкретный раздел, а О1 — все остальное, следовательно, нужно вставить разный код при формировании страниц.

    Есть несколько категорий в woocommerce, по которым распределенгы товары. Так вот, удалось разделить операторов по такой логике:
    if ( is_product_category(‘avtomatika’) || (is_product() && has_term(‘avtomatika’, ‘product_cat’)) ) { ?> Здесь код #1 JS — для О2
    <?php } else {?> Здесь код #2 JS — для О1

    И все отлично работает, но! если в карточке товара, относящегося к области О2 есть ссылки на статьи для этого устройства, то при открывании их у пользователя всплывает, естественно, О1.

    Каким образом мне отследить, что пользователь открыл страницы, которые расположены в товарах определенной категории «avtomatika»? При этом, просто так эти страницы в разделах меню недоступны, ссылки на них даны в этих товарах.

    Решение в лоб, которое могу реализовать, это в условия добавить еще и id страниц, но если статей очень много, то код нерациональный.

    Спасибо.

    • Тема изменена 5 лет, 7 месяцев назад пользователем smacyas.
    • Тема изменена 5 лет, 7 месяцев назад пользователем smacyas.

    Страница, с которой нужна помощь: [войдите, чтобы увидеть ссылку]

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Модератор Yuri

    (@yube)

    Добавьте нужным страницам метаданные (custom fields) и проверяйте его значение. Когда у WP не было таксономий, метаданные использовались в том числе и для добавления общих признаков. Увы, штатный механизм управления cutom fields у записей довольно неудобен. Ставить монстра типа ACF смысла не вижу, лучше накодить добавление метабокса. А чтобы совсем красиво, вместо input text сделать select со списком термов таксономии product_cat. Получится довольно универсальная штука, которую не надо будет переделывать, когда к ‘avtomatika’ добавятся еще категории со страницами, требующие индивидуального подхода.

    Юрий, спасибо за совет!

    Добавил на каждую такую страницу мета поле, условие стало:
    if ( is_product_category(‘avtomatika’) || (is_product() && has_term(‘avtomatika’, ‘product_cat’)) || (get_post_meta($post->ID, ‘article’, true))) …..

    Теперь все красиво и элегантно.

    Еще раз спасибо!

    • Ответ изменён 5 лет, 7 месяцев назад пользователем smacyas.
Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Тема «Узнать, что пользователь пришел с определенной категории» закрыта для новых ответов.