在PHP函数

时间:2016-11-30 22:01:41

标签: php arrays wordpress

我正在尝试修改一个wordpress插件,我正在用一个数组来打砖墙,该数组包含一个下拉表单字段的变量。最终目标是让用户能够从下拉表单字段中选择一系列时间。

以下是插件开发人员建议使用该功能的方法:

add_filter('frm_setup_new_fields_vars', 'frm_set_checked', 20, 2);
function frm_set_checked($values, $field){
if($field->id == 125){//Replace 125 with the ID of your field

  $values['options'] = array('Option 1', 'Option 2'); //Replace Option1 and Option2 with the options you want in the field
}
return $values;
}

下拉列表中的时间范围不会被修复,因此我不能简单地输入“选项1”和“选项2” - 每个用户的时间都会改变。所以我设置了初始时间并使用For循环将额外的时间添加到数组中,但它不起作用。这是我的尝试 - 我知道问题在于$ values ['options'],但我不知道如何解决它:

add_filter('frm_setup_new_fields_vars', 'frm_set_checked', 20, 2);
function frm_set_checked($values, $field){
if($field->id == 150){//Replace number with the ID of your field
$time = (strtotime("yesterday 20:00"));
$date = date("H:i A", $time);

for ($i = 1; $i <= 96; $i++){
  $values['options'] = date("H:i A", $time + 900*$i); //adding 15 additional minutes to each time
}
}
return $values;
}

我也试过这个,没有运气:

add_filter('frm_setup_new_fields_vars', 'frm_set_checked', 20, 2);
function frm_set_checked($values, $field){
if($field->id == 150){//Replace number with the ID of your field
$time = (strtotime("yesterday 20:00"));
$date = date("H:i A", $time);

$values = array();
for ($i = 1; $i <= 96; $i++){
  $values[$i-1] = date("H:i A", $time + 900*$i); 
}
}
return $values;
}

感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

在我看来,您需要返回一个包含名为options的键的数组,该键包含一组值。你的第二次尝试几乎就在那里。尝试收集数组中的所有日期,然后将它们放入$ values数组中。类似的东西:

    //$values = array();
    $dates = array();
    for ($i = 1; $i <= 96; $i++){
      $dates[] = date("H:i A", $time + 900*$i); 
    }
    $values['options'] = $dates;
    return $values;

(已更新以注释掉设置$values变量。)