我一直在谷歌搜索一段时间,但我似乎无法找到答案,也没有其他人有同样的问题。我正在尝试在“Logout”项目上方添加一个菜单项“My Files”。 这是我正在使用的代码:
// Add Menu Item
function my_account_menu_items( $items ) {
return array_merge(
array_slice( $items, 0, count( $items ) - 1 ),
array( 'my-files' => 'My Files' ),
array_slice( $items, count( $items ) - 1 )
);
}
add_filter( 'woocommerce_account_menu_items', 'my_account_menu_items', 10, 1);
我尝试以不同的方式调用过滤器,没有最后两个参数。我也尝试过做
function my_account_menu_items( $items ) {
$items['my-files'] = 'My Files';
return $items;
}
答案 0 :(得分:0)
您应该尝试以下方法:
add_filter( 'woocommerce_account_menu_items', 'add_item_to_my_account_menu', 30, 1 );
function add_item_to_my_account_menu( $items ) {
$new_items = array();
// Loop throu menu items
foreach( $items as $key => $item ){
if( 'customer-logout' == $key )
$new_items['my-files'] = __( 'My Files' );
$new_items[$key] = $item;
}
return $new_items;
}
代码进入活动子主题(或活动主题)的function.php文件。经过测试并正常工作。
答案 1 :(得分:0)
这是经过测试和运作的:
function custom_my_account_menu_items( $items ) {
$new_items = array();
foreach($items as $key => $value){
if($key != 'customer-logout'){
$new_items[$key] = $value;
}else{
$new_items['my-files'] = 'My Files';
$new_items[$key] = $value;
}
}
return $new_items;
}
add_filter( 'woocommerce_account_menu_items', 'custom_my_account_menu_items' );
答案 2 :(得分:0)
只需取消登录并将其添加回最后一件事,即可确保登录名停留在底部。
//keep logout the last menu item
function custom_my_account_menu_items( $items ) {
unset($items['customer-logout']);
$items['customer-logout'] = 'Logout';
return $items;
}
add_filter( 'woocommerce_account_menu_items', 'custom_my_account_menu_items', 999 );