我正在尝试修改一个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;
}
感谢任何帮助!
答案 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
变量。)