为 Woocommerce 中的特定用户角色自定义我的帐户新菜单项
Custom my account new menu item for a specific user role in Woocommerce
我为 Woocommerce 创建了一些自定义 "My Account" 端点。我试图将一个限制为每个用户角色可见。对于以下代码,我希望它只对具有管理员角色的用户可见。我曾尝试在我的代码中插入一个条件 if (current_user_can('administrator'))
,但还没有找到一种不会破坏网站的方法。对如何修改以下内容有什么建议吗?
/* Create Admin Tab on Woo Account Page
------------------------------------------------------------------*/
function add_admin_tools_endpoint() {
add_rewrite_endpoint( 'admin-tools', EP_ROOT | EP_PAGES );
}
add_action( 'init', 'add_admin_tools_endpoint' );
function add_admin_tools_query_vars( $vars ) {
$vars[] = 'admin-tools';
return $vars;
}
add_filter( 'query_vars', 'add_admin_tools_query_vars', 0 );
function add_admin_tools_link_my_account( $items ) {
$items['admnin-tools'] = 'Admin';
return $items;
}
add_filter( 'woocommerce_account_menu_items', 'add_admin_tools_link_my_account' );
function add_admin_tools_content() {
echo "<h3 style='text-align:center;'>Administration Tools</h3> <p style='text-align:center;'>Test of various functions.</p>";
}
add_action( 'woocommerce_account_admin-tools_endpoint', 'add_admin_tools_content' );
以下是启用和显示自定义“我的帐户”菜单项的正确方法,其内容仅为特定用户角色 (此处为 "administrator" 用户角色):
add_action( 'init', 'add_admin_tools_account_endpoint' );
function add_admin_tools_account_endpoint() {
add_rewrite_endpoint( 'admin-tools', EP_PAGES );
}
add_filter ( 'woocommerce_account_menu_items', 'custom_account_menu_items', 10 );
function custom_account_menu_items( $menu_links ){
if ( current_user_can('administrator') ) {
$menu_links = array_slice( $menu_links, 0,3 , true )
+ array( 'admin-tools' => __('Admin tools') )
+ array_slice( $menu_links, 3, NULL, true );
}
return $menu_links;
}
add_action( 'woocommerce_account_admin-tools_endpoint', 'admin_tools_account_endpoint_content' );
function admin_tools_account_endpoint_content() {
if ( current_user_can('administrator') ) {
echo "<h3 style='text-align:center;'>Administration Tools</h3>
<p style='text-align:center;'>Test of various functions.</p>";
}
}
代码进入您的活动子主题(或活动主题)的 function.php 文件。测试和工作。
You will need to refresh rewrite rules: In Wordpress admin under "Settings" > Permalinks, just click on "Save changes" button once. You are done.
我为 Woocommerce 创建了一些自定义 "My Account" 端点。我试图将一个限制为每个用户角色可见。对于以下代码,我希望它只对具有管理员角色的用户可见。我曾尝试在我的代码中插入一个条件 if (current_user_can('administrator'))
,但还没有找到一种不会破坏网站的方法。对如何修改以下内容有什么建议吗?
/* Create Admin Tab on Woo Account Page
------------------------------------------------------------------*/
function add_admin_tools_endpoint() {
add_rewrite_endpoint( 'admin-tools', EP_ROOT | EP_PAGES );
}
add_action( 'init', 'add_admin_tools_endpoint' );
function add_admin_tools_query_vars( $vars ) {
$vars[] = 'admin-tools';
return $vars;
}
add_filter( 'query_vars', 'add_admin_tools_query_vars', 0 );
function add_admin_tools_link_my_account( $items ) {
$items['admnin-tools'] = 'Admin';
return $items;
}
add_filter( 'woocommerce_account_menu_items', 'add_admin_tools_link_my_account' );
function add_admin_tools_content() {
echo "<h3 style='text-align:center;'>Administration Tools</h3> <p style='text-align:center;'>Test of various functions.</p>";
}
add_action( 'woocommerce_account_admin-tools_endpoint', 'add_admin_tools_content' );
以下是启用和显示自定义“我的帐户”菜单项的正确方法,其内容仅为特定用户角色 (此处为 "administrator" 用户角色):
add_action( 'init', 'add_admin_tools_account_endpoint' );
function add_admin_tools_account_endpoint() {
add_rewrite_endpoint( 'admin-tools', EP_PAGES );
}
add_filter ( 'woocommerce_account_menu_items', 'custom_account_menu_items', 10 );
function custom_account_menu_items( $menu_links ){
if ( current_user_can('administrator') ) {
$menu_links = array_slice( $menu_links, 0,3 , true )
+ array( 'admin-tools' => __('Admin tools') )
+ array_slice( $menu_links, 3, NULL, true );
}
return $menu_links;
}
add_action( 'woocommerce_account_admin-tools_endpoint', 'admin_tools_account_endpoint_content' );
function admin_tools_account_endpoint_content() {
if ( current_user_can('administrator') ) {
echo "<h3 style='text-align:center;'>Administration Tools</h3>
<p style='text-align:center;'>Test of various functions.</p>";
}
}
代码进入您的活动子主题(或活动主题)的 function.php 文件。测试和工作。
You will need to refresh rewrite rules: In Wordpress admin under "Settings" > Permalinks, just click on "Save changes" button once. You are done.