Php 为Woocommerce中的特定用户角色自定义“我的帐户”新菜单项

Php 为Woocommerce中的特定用户角色自定义“我的帐户”新菜单项,php,wordpress,woocommerce,account,user-roles,Php,Wordpress,Woocommerce,Account,User Roles,我已经为Woocommerce创建了一些自定义的“我的帐户”端点。我试图限制每个用户角色只能看到一个。对于以下代码,我希望它只对具有admin角色的用户可见。我曾尝试在我的代码中插入一个有条件的if(当前用户\u can('administrator')),但没有找到一种不破坏网站的方法。对如何修改以下内容有何建议 /* Create Admin Tab on Woo Account Page ---------------------------------------------------

我已经为Woocommerce创建了一些自定义的“我的帐户”端点。我试图限制每个用户角色只能看到一个。对于以下代码,我希望它只对具有admin角色的用户可见。我曾尝试在我的代码中插入一个有条件的
if(当前用户\u 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>&nbsp;<p style='text-align:center;'>Test of various functions.</p>";
}

add_action( 'woocommerce_account_admin-tools_endpoint', 'add_admin_tools_content' );
/*在Woo帐户页上创建管理选项卡
------------------------------------------------------------------*/
函数add_admin_tools_endpoint(){
添加重写端点(‘管理工具’、EP_根目录| EP_页面);
}
添加操作('init','add_admin_tools_endpoint');
函数添加\管理\工具\查询\变量($vars){
$vars[]=“管理工具”;
返回$VAR;
}
添加筛选器(“查询变量”、“添加管理工具”和“查询变量”,0);
函数添加\管理\工具\链接\我的\帐户($items){
$items['admnin-tools']='Admin';
退回$items;
}
添加过滤器('woocommerce\u account\u menu\u items'、'add\u admin\u tools\u link\u my\u account');
函数添加\管理\工具\内容(){
echo“管理工具

各种功能的测试。

”; } 添加操作('woocommerce\u account\u admin-tools\u endpoint','add\u admin\u tools\u content');
以下是仅针对特定用户角色(此处为“管理员”用户角色)启用和显示自定义“我的帐户”菜单项及其内容的正确方法:

add_action('init','add_admin_tools_account_endpoint');
函数添加\管理\工具\帐户\端点(){
添加重写端点(“管理工具”,EP页面);
}
添加过滤器('woocommerce\u account\u menu\u items','custom\u account\u menu\u items',10);
功能自定义帐户菜单项($menu链接){
if(当前用户可以(“管理员”)){
$menu\u links=array\u slice($menu\u links,0,3,true)
+数组('admin tools'=>u uz('admin tools'))
+数组片($menu链接,3,NULL,true);
}
返回$menu_链接;
}
添加_操作('woocmerce_account_admin-tools_endpoint'、'admin_tools_account_endpoint_content');
函数管理\工具\帐户\端点\内容(){
if(当前用户可以(“管理员”)){
“echo”管理工具

测试各种功能。

”; } }
代码进入活动子主题(或活动主题)的function.php文件。测试和工作

您需要刷新重写规则:在Wordpress admin中的“设置”>永久链接下,只需单击一次“保存更改”按钮。你完了


工作得很好。非常感谢。
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>";
    }
}