Я успешно создал раскрывающееся меню, чтобы автоматически заполнить соответствующую информацию из расширенного настраиваемого поля, которое я создал, с именем 'date' на сайте http://albertson.staging.wpengine.com/seminars/.Гравитационные формы и расширенные пользовательские поля
Далее следуют вместе с инструкциями здесь:
http://www.gravityhelp.com/documentation/page/Dynamically_Populating_Drop_Down_Fields
Единственная проблема у меня в том, как отображать дату в формате «довольно». Вы можете видеть, что дата все номера (20140129) вместо 01/28/2014
Для отображения даты соответственно в секциях семинара выше (границы красного) я использую:
<?php if(get_field('date')): ?>
<?php
$date = get_field('date');
// $date = 19881123 (23/11/1988)
// extract Y,M,D
$y = substr($date, 0, 4);
$m = substr($date, 4, 2);
$d = substr($date, 6, 2);
// create UNIX
$time = strtotime("{$d}-{$m}-{$y}");
// format date (November 11th 1988)
echo date('M d', $time);
?>
Как я передать эту же информацию в рамках функции Gravity Forms, которую я создал, чтобы хорошо отображать дату? Ниже представлена моя функция для Gravity Forms.
add_filter('gform_pre_render_4', 'populate_dates');
function populate_dates($form){
foreach($form['fields'] as &$field){
if($field['type'] != 'select' || strpos($field['cssClass'], 'populate-dates') === false)
continue;
// you can add additional parameters here to alter the posts that are retreieved
// more info: http://codex.wordpress.org/Template_Tags/get_posts
$currentdate = date("Y-m-d",mktime(0,0,0,date("m"),date("d"),date("Y")));
$events = get_posts(array(
'post_type' => 'seminars',
'orderby' => 'date',
'order' => 'ASC',
'meta_query'=> array(
array(
'key' => 'date',
'compare' => '>=',
'value' => $currentdate,
'type' => 'DATE',
)),
'meta_key' => 'date',
));
// update 'Select a Post' to whatever you'd like the instructive option to be
$choices = array(array('text' => 'Select a Date', 'value' => ' '));
foreach($events as $post){
$choices[] = array('text' => $post->date, 'value' => $post->date);
}
$field['choices'] = $choices;
}
return $form;
}