我在woocommerce的“我的帐户”部分中添加了一个自定义标签,其中显示了管理员发布的网站上的帖子统计信息。因此,如何向订阅者/客户等其他用户隐藏该特定标签。
答案 0 :(得分:0)
仅当用户具有特定角色时,才需要添加挂钩和过滤器以添加自定义端点。以下代码仅在用户是管理员或商店管理员时显示自定义端点。
$whitelist_roles = array(
'administrator',
'shop_manager'
);
$current_user_role = prefix_get_current_user_roles()[0];
if ( in_array( $current_user_role, $whitelist_roles ) ) {
// Add rewrite url.
add_action( 'init', function() {
add_rewrite_endpoint( 'custom', EP_ROOT | EP_PAGES );
});
// Add custom menu item to the sidebar.
add_filter( 'woocommerce_account_menu_items', function( $items ) {
$items['custom'] = esc_html__( 'Custom', 'text-domain' );
return $items;
} );
// Display the content for the custom endpoint.
add_action( 'woocommerce_account_custom_endpoint', function() {
echo '<div>Custom Endpoint Data</div>';
});
}
function prefix_get_current_user_roles() {
if ( ! is_user_logged_in() ) {
return array();
}
$user = wp_get_current_user();
$roles = (array) $user->roles;
return $roles;
}
P.S。您可能需要保存永久链接以使其正常工作。
P.S。如果您为用户分配了多个角色,则此代码将不起作用。