ACF禁用/隐藏多个用户名字段的选择选项

时间:2019-09-04 09:57:11

标签: php wordpress advanced-custom-fields

我正在使用“高级自定义字段”,并且有一个名为“ packages”的字段,其中包含多个选择选项。用户可以在登录时创建和更改打包的内容。此字段的某些选项对特定用户不可见。不是用户角色,而是用户名。

这是选项,如果用户是“特定用户名”,则粗体选项应该不可见或只读。

  • 备份条目
  • 开始备份
  • 备用媒体 -备份专业版

我搜索了很多东西,发现了很多文章,并且设法使它能够使用这部分代码来禁用整个字段:

function my_acf_prepare_field_wordpress( $field ) {
    $current_user = wp_get_current_user();

    if( $current_user->user_login == "Username" ) {
        if( $field['value'] ) {
            $field['disabled'] = true;
        }
    }
    return $field;
}

add_filter('acf/prepare_field/name=package_or_service', 'my_acf_prepare_field_wordpress');

此部分基于特定的用户名禁用整个字段。有一种方法只能禁用此字段的特定选项吗?

修改

我进行了此更改以获取数组的索引值并取消设置它,但到目前为止还没有运气:

function my_acf_prepare_field_wordpress( $field ) {
    $current_user = wp_get_current_user();

    if( $current_user->user_login == "Username" ) {
        $choices = $field['choices'];
        unset($field['choices'][webhosting]);

    }
    return $field;
}

add_filter('acf/prepare_field/name=package_or_service', 'my_acf_prepare_field_wordpress');

Vardump array(6){[“ webhosting”] =>字符串(10)“ webhosting” [“ vps托管”] =>字符串(11)“ vps托管” [“代理商托管”] =>字符串(16)“代理商托管“ [[” domeinnaam“] =>字符串(10)” domeinnaam“ [” email“] =>字符串(5)” email“ [”专用服务器“] =>字符串(16)”专用服务器“}

0 个答案:

没有答案