Вот правильный способ включить и отобразить пользовательский пункт меню Моя учетная запись с его содержимым только для определенной роли пользователя (здесь роль пользователя "Администратор") :
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 admin в «Настройки»> Постоянные ссылки, просто нажмите кнопку «Сохранить изменения» один раз.Вы сделали.