我正在使用“高级自定义字段”,并且有一个名为“ 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)”专用服务器“}