首页 > 解决方案 > ACF 禁用/隐藏多个用户名的字段选择选项

问题描述

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

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

我搜索了很多,发现了很多文章,我设法让它使用这部分代码禁用整个字段:

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"]=> string(10) "webhosting" ["vps hosting"]=> string(11) "vps hosting" ["reseller hosting"]=> string(16) "reseller托管" ["domeinnaam"]=> string(10) "domeinnaam" ["email"]=> string(5) "email" ["dedicated server"]=> string(16) "dedicated server" }

标签: phpwordpressadvanced-custom-fields

解决方案


推荐阅读