Как сделать всплывающее окно с кнопкой «Книга/Проверка» на странице 2+ в результатах поиска Traveler WP [закрыто]Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как сделать всплывающее окно с кнопкой «Книга/Проверка» на странице 2+ в результатах поиска Traveler WP [закрыто]

Сообщение Anonymous »

Я использую тему Traveler WP от ShineThemes. Мой тестовый сайт:
https://experiences.reimagine.link/search-solo/
Чтобы увеличить конверсию, я добавил кнопку «Забронировать сейчас» в каждый список туров. Кнопка открывает всплывающий виджет TicketingHub. Он отлично работает во всех списках, включая страницу поиска, но только на первой странице результатов поиска.
Что я обнаружил
На первой странице результатов поиска используется:
grid.php
На страницах 2, 3 и далее используется:
grid-2.php
Я подтвердил это, проверив тему код. Обнаружив разницу, я скопировал ту же самую логику всплывающего окна из Grid.php в Grid-2.php.
Кнопка отображается правильно на странице 2+, и я временно переименовал ее в «Проверить», чтобы отличить ее во время тестирования. Но всплывающее окно НЕ запускается вообще на странице 2+.
Тот же код работает везде.
Справочный код
Исходный файл темы (grid.php):
https://github.com/obertscloud/traveler ... p/grid.php
Файл пользовательской дочерней темы:
https://github.com/obertscloud/traveler ... rr-Nov2025
Примечание: приведенный ниже пользовательский код слишком велик, чтобы вставлять его сюда.
Мой настроенный файлgrid.php:
https://gist.github.com/obertscloud/cfe ... 30a425a99d
Мой настроенный файл Grid-2.php:
https://gist.github.com/obertscloud/1fb ... 25a12d9177
Логика идентична в обоих файлах. Только страница 1 работает правильно.
Отладочная информация (страница 1)
HTML-код кнопки «Забронировать» на странице 1 (работает):

Код: Выделить всё

Book Now

Вывод отладки (работает):

Код: Выделить всё

DEBUG: has_widget = true,
widget_id = 'f4f43556-f59b-454e-bdf7-f5e6f068d586',
post_id = 14966
Всплывающее окно открывается правильно.
Отладочная информация (страница 2)
HTML-код кнопки страницы 2 (не работает): Вывод отладки (правильный, но всплывающее окно НЕ открывается):

Код: Выделить всё

DEBUG: has_widget = true,
widget_id = '4d8abf21-4cc8-49e5-ac6d-29a8f8feed21',
post_id = 11155
Идентификаторы совпадают. has_widget — это правда. HTML соответствует странице 1.
Но нажатие кнопки ничего не дает.
Минимальный воспроизводимый пример
Работает (страница 1):

Код: Выделить всё

Book Now

НЕ работает (страница 2+): Для воспроизведения:
Перейдите по адресу https://experiences.reimagine.link/search-solo/
Нажмите «Забронировать сейчас» на странице 1 → всплывающее окно откроется нормально.
Перейдите на страницу 2.
Нажмите «Проверить» → ничего не произойдет.
Используйте Chrome DevTools → выходные значения отладки верны.
Оба фрагмента используют один и тот же класс (th-book-btn) и один и тот же прослушиватель JS.
Оба набора идентификаторов действительны.
Всплывающее окно вызывается только на первой странице.
Я не могу вставить сюда полные файлы из-за ограничений по размеру, но приведенная выше суть останется доступной.
Заключительный вопрос (для WordPress/Traveler)
/>Какая разница в нумерации страниц Traveler WP, обработке AJAX или загрузке шаблона может помешать срабатыванию события click для th-book-btn только в Grid-2.php, даже если:
HTML идентичен
идентификаторы отладки верны
прослушиватель JS один и тот же
оба шаблона содержат один и тот же код
Как добиться нормального срабатывания всплывающего окна на страницах 2, 3 и далее?

Подробнее здесь: https://stackoverflow.com/questions/798 ... search-res
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»