Заголовок сделал таким, т.к. сам искал похожее решение, но не нашел. На самом деле речь пойдет в целом о том, каким образом отобразить на разных страницах сайта wordpress+woocommerce какого-нибудь скрипта, в нашем случае скрипта виджета чата битрикс24.
В этом чате (как и в аналогичных, тот же JivoSite) есть возможность генерации нескольких виджетов чата для одного сайта. Делается это для различных целей, к примеру для связи с определенным менеджером в зависимости от того с какой страницы было обращение. Далее создание лидов, сквозная аналитика и как следствие – более слаженная работа коллектива и CRM системы с генерацией лидов.
Настроив виджеты для отображения на определенных страницах в системе битрикс24 (делается это через вкладку CRM далее следуем в раздел Ещё и жмём по вкладке Виджет на сайт ), вы получаете несколько скриптов, с различными каналами связи.Теперь необходимо каждый скрипт запустить на предназначенной ему странице.
В системе вордпресс есть так называемая условная логика. Условные теги которой позволяют нам проверить на какой странице мы сейчас находимся. Страница может быть записью, рубрикой, категорией продукта, собственно сам продукт и т.д. На все эти случаи и существует база тегов. А проверку на соответствие можно производить как с помощью slag (короткая ссылка), либо с помощью ID страницы. Второй вариант более предпочтителен, т.к. сам слаг может и измениться, а ID изменится только в случае удаления или пересоздания страницы.
Для определения ID категории или рубрики необходимо нажать Изменить рубрику и перейти в строку браузера, там в таксономии прописан ID.
Пример категории с ID=5:
https://......php?taxonomy=category&tag_ID=5&post_type=post
Так же эту ссылку можно увидеть в строке состояния браузера (как правило снизу) при наведении на рубрику из админки в разделе Рубрики.
Похожим способом определяется ID и страницы, разница лишь в том что в таксономии страницы написано не ID=’number’, а post=’number ‘
С самими тегами можно ознакомиться в поисковиках, введя в поиске следующую фразу: conditional tags wordpress, conditional tags woocommerce Либо сразу на официальных страницах:
Решение нашей проблемы свелось к созданию функции bitrix_chat, которая с помощью условных тегов wordpress и woocommerce проверяет принадлежность к интересующей нас странице, в случае совпадения наш код чата будет расположен в футере нашей темы, т.к. создан хук к событию –wp_footer которого прикреплена наша функция.
<?php
// bitrix_chat
function bitrix_chat() {
if(!is_product_category( array('id_rubriki-01','id_rubriki-02')){ ?> // Условный тег проверяет не являются ли страница перечисленной в массиве, если не является, тогда подключается нижеприведенный код.
<!-- чат для всех страниц кроме двух -->
<script>
//кода чата 1
</script>
<?php } if( is_product_category('id_rubriki-01') ) {?> // Условный тег woocommerce проверяет принадлежит ли страница к категории с определенным id
<!-- чат 2 -->
<script>
//кода чата 2
</script>
<?php } if ( is_product_category('id_rubriki-02') ){ ?>
<!-- чат 3 -->
<script>
//кода чата 3
</script>
<?php }
}
add_action( 'wp_footer', 'bitrix_chat' );