我已经尝试阅读了有关此主题的所有问题,并根据需要配置了代码,但似乎无法使其正常工作。这是我现在拥有的代码:
function my_exclude_custom_fields( $protected, $meta_key, $user ) {
$user = wp_get_current_user();
if ( in_array( \'udlejer\', (array) $user->roles ) ) {
if ( in_array( $meta_key, array( \'email\', \'text\' ) ) ) {
return true;
}
}
return $protected;
}
add_filter( \'is_protected_meta\', \'my_exclude_custom_fields\', 10, 2 );
这没有任何改变。即使我以其他角色登录,而不是
udlejer
, 我仍然可以在前端看到这些自定义字段。
自定义字段位于WooCommerce创建的产品页面上。那么,我是否需要在代码中包含更多内容?希望你们能帮忙!
SO网友:Marc
您可以使用current_user_can()
函数测试当前用户的角色。我还建议在默认情况下保护自定义字段,并只允许适当的用户访问。
从理论上讲,这样的做法应该奏效:
function my_exclude_custom_fields( $protected, $meta_key) {
if ( in_array( $meta_key, array( \'email\', \'text\' ) ) ) {
if ( current_user_can( \'udlejer\' ) ) {
// meta key is not protected for user role \'udlejer\'
return false;
} else {
// make the meta keys protected by default
return true;
}
}
return $protected;
}
add_filter( \'is_protected_meta\', \'my_exclude_custom_fields\', 10, 2 );