0
我有一個代碼段來檢測用戶是否登錄 - 如果是,然後「我的帳戶」和「註銷」鏈接顯示在頂部菜單中,如果沒有,「登錄」鏈接顯示。add_filter不能用於返回登錄用戶
它工作正常,直到用戶登錄時選中「記住我」選項,離開我的網站而不註銷並返回。
然後在頂部菜單上顯示「登錄」,而不是「我的帳戶」和「註銷」。它不能正常運行,點擊後用戶不會重定向到登錄頁面,而是立即顯示「我的帳戶」和「註銷」。同時向購物車添加任何內容都會顯示「我的帳戶」和「註銷」。
我通過var_dump()檢查is_user_logged_(in)直到我點擊「Login」或添加一些東西到購物車後才返回任何東西。我試着將優先級改爲1或9999,但沒有幫助。
// Add login & logout buttons to secondary menu.
add_filter('wp_nav_menu_items', 'add_loginout_link', 10, 2);
function add_loginout_link($items, $args) {
if (is_user_logged_in() && $args->theme_location == 'secondary') {
$items .= '<li><a href="'. get_permalink(woocommerce_get_page_id('myaccount')) . '">My account</a></li>
<li><a href="'. wp_logout_url(get_permalink(woocommerce_get_page_id('myaccount'))) . '">Logout</a></li>';
}
elseif (!is_user_logged_in() && $args->theme_location == 'secondary') {
$items .= '<li><a href="' . get_permalink(woocommerce_get_page_id('myaccount')) . '">Login</a></li>';
}
return $items;
}