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

Posted

技术标签:

【中文标题】为 Woocommerce 中的特定用户角色自定义我的帐户新菜单项【英文标题】:Custom my account new menu item for a specific user role in Woocommerce 【发布时间】:2019-05-05 01:07:16 【问题描述】:

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


add_action( 'woocommerce_account_admin-tools_endpoint', 'add_admin_tools_content' );

【问题讨论】:

【参考方案1】:

这是启用和显示自定义“我的帐户”菜单项的正确方法,其内容仅适用于特定用户角色(此处为“管理员”用户角色)

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 文件中。经过测试和工作。

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

【讨论】:

完美运行。谢谢!

以上是关于为 Woocommerce 中的特定用户角色自定义我的帐户新菜单项的主要内容,如果未能解决你的问题,请参考以下文章

在 WooCommerce 中隐藏特定用户角色的增值税

根据 WooCommerce 3+ 中的用户角色添加自定义我的帐户菜单项

WooCommerce - 为某些特定用户角色启用“零税率”税类

Woocommerce 为特定用户角色设置最低订单

在 WooCommerce 中为特定用户角色创建订单时添加额外的客户注释

在 Woocommerce 中隐藏特定用户角色的特定运输方式