在同一PHP函数中创建条件语句

时间:2019-04-05 12:17:14

标签: php wordpress function gravityforms

我目前正在尝试使用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;
}

0 个答案:

没有答案