我目前正在尝试使用Gravity Forms解决我的wordpress网站上的问题。我试图用取决于用户元数据中指定的“服务”的用户列表填充3种不同形式的下拉字段。例如:表格1显示在其元数据中指定了“服务1”的所有用户的下拉列表,表格2显示在其元数据中具有“服务2”的所有用户的下拉列表。
我已经找到一些在线代码,这些代码已放入我的Functions.php文件中,该文件可以按我希望的方式工作,但一次只能使用一种形式。我尝试过更改相关ID / meta_values,每次保存它时,都会更新正确的表单,而其他的都会被擦除。
如果我复制并粘贴代码以具有多个实例,则会收到错误消息,因为PHP不允许多次调用同一函数。
我的PHP知识是相当有限的,我试图将其切碎,以基于不同的ID和$ metas添加多个“ if”语句,但到目前为止没有用。任何人都可以查看代码并看到明显的解决方案吗?
这是当前一次只能处理一种形式的代码。
add_filter("gform_pre_render", "populate_userdrop");
add_filter("gform_admin_pre_render", "populate_userdrop");
function populate_userdrop($form){
if($form["id"] != 1)
return $form;
$items = array();
$metas = get_users(array(
'meta_value' => 'Service 1',
));
if (is_array($metas))
{
foreach($metas as $meta) $items[] = array("value" => $meta->display_name, "text" => $meta->display_name);
}
foreach($form["fields"] as &$field)
if($field["id"] == 1){
$field["choices"] = $items;
}
return $form;
}
我已经尝试过将其切成这样,但到目前为止我无法正常工作
add_filter("gform_pre_render", "populate_userdrop");
add_filter("gform_admin_pre_render", "populate_userdrop");
function populate_userdrop($form){
$metas = get_users(array(
'meta_value' => 'Service 1',
));
$metas2 = get_users(array(
'meta_value' => 'Service 2',
));
if($form["id"] != 1)
return $form;
$items = array();
if (is_array($metas))
{
foreach($metas as $meta) $items[] = array("value" => $meta->display_name, "text" => $meta->display_name);
}
if($form["id"] != 2)
return $form;
$items = array();
if (is_array($metas2))
{
foreach($metas2 as $meta) $items[] = array("value" => $meta->display_name, "text" => $meta->display_name);
}
foreach($form["fields"] as &$field)
if($field["id"] == 1){
$field["choices"] = $items;
}
return $form;
}