Поле выбора даты WordPress ContactForm7 - отключить / заблокировать определенные даты?

В настоящее время у меня установлен сайт WordPress, где пользователи могут заказать экскурсию по нашему объекту (мы университет). Я использовал плагин ContactForm7 для создания формы на странице, где посетители могут ввести свою контактную информацию, а затем могут использовать поле выбора даты, чтобы выбрать конкретную дату, в которую они хотят отправиться в тур.

Мой вопрос (я искал решение этой проблемы повсюду, но безрезультатно), есть ли способ отключить или заблокировать выбор определенных дат в этом поле выбора даты в форме? Например, есть несколько дней, когда туры недоступны (например, праздники и другие дни, когда сотрудники тура не находятся в кампусе), поэтому я не хочу, чтобы эти даты можно было выбрать.

Есть ли способ сделать это в плагине или есть ли другой способ сделать это, будь то с помощью скрипта или через другой плагин?

Мой коллега показал мне сайт, который использует поле выбора даты jQuery/JS в своей форме бронирования тура (однако это НЕ форма WordPress/ContactForm7), и они могут блокировать определенные даты, когда туры недоступны, поэтому я предполагаю это должно быть возможно... каким-то образом.

Любая помощь будет принята с благодарностью! :)

РЕДАКТИРОВАТЬ:

Я нашел код ниже, и веб-сайт звучит так, как будто он будет делать именно то, что я ищу (используя метод, похожий на один из ответов ниже, как это выглядит), но я не могу понять, как добавить его в мой сайт, чтобы он работал. Я добавил его в файл header.php моей темы и установил идентификатор «#DisabledDates» — это то, что я также установил идентификатор поля выбора даты в форме... но даты, которые я установил для «недоступных дат», все еще можно выбрать ... есть идеи?

<?php if ($post->ID==16) { ?>
<script type="text/javascript">
    var unavailableDates = ["9-5-2013", "10-5-2013", "11-5-2013", "12-5-2013", "13-5-2013", "14-5-2013", "15-5-2013", "16-5-2013", "17-5-2013", "18-5-2013", "19-5-2013", "20-5-2013", "21-5-2013", "22-5-2013", "23-5-2013", "24-5-2013"];

    jQuery(function($){
        $( "#DisabledDates" ).datepicker({
            minDate: 5,
            beforeShowDay: function(date) {
                dmy = date.getDate() + "-" + (date.getMonth() + 1) + "-" + date.getFullYear();
                if ($.inArray(dmy, unavailableDates) == -1) {
                    return [true, ""];
                } else {
                    return [false, "", "Unavailable"];
                }
            }
        });
    });
</script>

Вот где я его нашел (это похоже на плагин, который существовал для расширения CF7 полем средства выбора даты до того, как средство выбора даты было добавлено в плагин... но я предполагаю, что он все еще должен работать так же?): https://github.com/relu/contact-form-7-datepicker/issues/37


person Iconoclast    schedule 20.08.2013    source источник


Ответы (2)


Вам нужно будет получить доступ к FTP, чтобы поместить функцию где-нибудь в файлы CF7.

ИЛИ Вы можете найти класс, который использует Wordpress, и отфильтровать эти даты.

person jriley88    schedule 20.08.2013
comment
Привет, Джош, спасибо за ответ. Я не очень хорошо знаком с файлами CF7 (я только что установил его как плагин) - есть идеи, куда это нужно будет девать? И как будет выглядеть эта функция? - person Iconoclast; 20.08.2013

это может быть сделано двумя типами

  • установить mindate и maxdate
  • когда вы открываете средство выбора даты и меняете месяц/год, оно запускает событие beforeShowDay с каждой датой в этом месяце и году, и вы можете проверить каждую дату в этой функции с помощью массива или объекта диапазона дат и вернуть true или false. При возврате false эта дата будет деактивирована, а при true эта дата будет активной.

Перейдите по этой ссылке: http://jqueryui.com/demos/datepicker/#inline http://jqueryui.com/demos/datepicker/#min-max

В описании говорится следующее: «Установите начальную и конечную даты как фактические даты (новая дата (2009, 1–1, 26)), как числовое смещение от сегодняшнего дня (-20) или как строку периодов и единиц (' +1M +10D')"

person Tate Reynolds    schedule 20.08.2013
comment
Привет Тейт, спасибо за ответ. Честно говоря, я не так знаком с jQuery, как с другими языками... средство выбора даты в CF7 имеет необязательные поля для id class min max и step... Я понимаю, что они делают, основываясь на часто задаваемых вопросах по CF7, но это параметры, о которых вы говорите, или вы говорите об этих параметрах на более низком уровне (например, где-то в файлах плагинов?) ... Я нашел файл date.php, который, я считаю, определяет, как работает средство выбора даты, но я не знаю, как и где добавить то, что мне нужно добавить! Есть идеи? - person Iconoclast; 20.08.2013
comment
Подобно тому, что @Josh Riley сказал ниже, вам нужно будет поместить это где-нибудь в файлы плагинов через FTP. - person Tate Reynolds; 20.08.2013