@Dioksin

Как отобразить всплывающую форму по нажатию кнопки в WordPress?

Исследующую существующий код сайта, сделанного в WordPress. Есть вот такая кнопка
<button class="button is-primary is-large showModal" name="button" type="button">Посмотреть ознакомительное видео с упражнениями</button>


По нажатию на эту кнопку показывается всплывающая форма. Код формы находится в php файле (используется плагин Contact Form)
<div class="modal">
    <div class="modal-background"></div>
    <div class="modal-card">
        <header class="modal-card-head">
            <p class="modal-card-title">Запись на консультацию</p>
            <button class="delete" aria-label="close"><i class="far fa-times-circle"></i></button>
        </header>
        <section class="modal-card-body">
            <?php echo do_shortcode('[contact-form-7 id="281" title="Контактная форма 1"]'); ?>
        </section>
        <footer class="modal-card-foot">
        </footer>
    </div>
</div>


Не могу разобраться каким образом код кнопки из HTML файла связывается из кода формы из php файла? Задача состоит в отображении ещё одной формы по нажатии на кнопку. Форму и кнопку сделал по аналогии с кодом выше, а вот как их связать вместе?

P.S. Плагинов FancyBox, PopupMaker нет. После установки плагина FancyBox, код выше перестал работать. При нажатии на кнопку форма перестала отображаться. Снёс плагин - работает. :)
  • Вопрос задан
  • 1031 просмотр
Решения вопроса 1
AntonLitvinenko
@AntonLitvinenko
HTML coder
Dioksin, за модалку отвечает только этот код
$(".showModal").click(function() {
  $(".modal").addClass("is-active");
});

$(".delete, .modal-background").click(function() {
  $(".modal").removeClass("is-active");
});

и по сути он ничего не делает кроме как добавляет класс для открытия модалки и удаляет этот класс если кликнуть на оверлей или кнопку закрытия

а код модалки вы сами написали, он уже есть, в него только функцией
<?php echo do_shortcode('[contact-form-7 id="281" title="Контактная форма 1"]'); ?>

выводится форма из CF7
<div class="modal">
    <div class="modal-background"></div>
    <div class="modal-card">
        <header class="modal-card-head">
            <p class="modal-card-title">Запись на консультацию</p>
            <button class="delete" aria-label="close"><i class="far fa-times-circle"></i></button>
        </header>
        <section class="modal-card-body">
            <?php echo do_shortcode('[contact-form-7 id="281" title="Контактная форма 1"]'); ?>
        </section>
        <footer class="modal-card-foot">
        </footer>
    </div>
</div>

закрытие модалки универсально переписать просто
$(".delete, .modal-background").click(function() {
  $(this).parents(".modal").removeClass("is-active");
});

а вот открытие нужно либо брать по дата атрибуту, либо если вам нужно только еще одну модалку добавить, то проще продублировать код както так
$(".showModal2").click(function() {
  $(".modal.modal2").addClass("is-active");
});

у второй кнопки заменить showModal на showModal2, добавить разметку второй модалки под первой и eй добавить класс modal2, так как на класс modal скорее всего привязаны стили
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы