繁体   English   中英

在 Woocommerce 我的帐户菜单中的注销项上方添加自定义项

[英]Add a custom item above logout item in Woocommerce my account menu

我已经在谷歌上搜索了一段时间,但我似乎无法找到答案,也没有其他人遇到同样的问题。 我正在尝试在“注销”项上方添加一个菜单项“我的文件”。 这是我正在使用的代码:

// 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;
}

您应该尝试以下操作:

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

在此处输入图片说明

这是经过测试和工作的:

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' );

您可以通过取消设置并将其添加回最后一件事来确保登录保持在底部。

//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 );

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM