Скрыть параметры по дате в контактной форме 7 - PullRequest
0 голосов
/ 08 мая 2020

Я создаю контактную форму в Контактной форме 7, в которой есть поле с выбором даты, например:

[select* Startdate id:startdate class:startdate "09-06-2020" "11-09-2020" "02-11-2020"]

Есть ли способ скрыть параметры даты с датами в прошлом?

1 Ответ

0 голосов
/ 13 мая 2020

Есть 2 способа решить эту проблему,

Решение №1, на стороне сервера с использованием расширения подключаемого модуля CF7 Smart Grid-layout . В нем есть поле тега [dynamic_dropdown], которое позволяет программно создавать выпадающее поле выбора с помощью фильтра.

add_filter('cf7sg_dynamic_dropdown_custom_options', 'filter_options',10,3);
function filter_options($options, $field_name, $form_key){
  if($form_key != 'my-form') return $options; //check this is the correct form.
  if($field_name != 'custom-dropdown') return $options; //check this is the correct field.
  $options = array(); 
  //you can fetch a list of dates from your DB is needed.
  $dates = array("09/06/2020", "11/09/2020" ,"02/11/2020");
  $now = time();
  //load your options programmatically, as $value=>$name pairs.
  foreach($dates as $date){
    if(strtotime($date) > $now){
      $options[$date]=$date;
    }
  }
  return $options;
}

Решение № 2, на стороне клиента с использованием javascript,

$(document).ready(function(){
  const now = new Date();
  $('select#stardate option').each(function(){
    let date = $(this).val();
    if(date.getTime() < now.getTime()) $(this).remove();
  });
});

Это удалит все элементы select option, которые старше, чем сейчас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...