Woocommerce登录和注销菜单选项

时间:2014-11-26 14:38:21

标签: wordpress login woocommerce

我在我的wordpress网站上使用WooCommerce,我希望允许客户登录并注销,如果他们愿意,以便他们可以查看他们所订购内容的帐户详细信息。

因此,我想要做的是在显示商店页面时在顶部菜单上显示“登录”按钮。 我还希望登录按钮知道客户是否已登录,然后更改为注销按钮。

在Woocommerce支持上,他们表示他们不再使用短代码进行注销功能,而是使用端点。以下是详细信息https://support.woothemes.com/hc/communities/public/questions/201174057-No-way-for-a-customer-to-log-out-Woocommerce-account-widget

然而,这并不像预期的那样奏效。所以我的问题是 1.如何使用注销/登录按钮检测用户是否为登录客户。 2.如何仅为商店页面制作自定义菜单(我不希望登录/注销按钮出现在整个网站的所有菜单上)

非常感谢提前

2 个答案:

答案 0 :(得分:0)

您根本不需要短代码或端点...或WooCommerce。 wp_loginout()是一个核心WordPress函数,如果您没有登录则显示登录链接,如果您是登录链接则显示。

codex中有一个如何向菜单添加登录/退出链接的示例。

  

只需将此代码添加到您的父或子主题functions.php文件中,即可在WordPress的Twenty Fourteen默认主题的辅助导航菜单中显示登出链接。

add_filter( 'wp_nav_menu_secondary_items','wpsites_loginout_menu_link' );

function wpsites_loginout_menu_link( $menu ) {
    $loginout = wp_loginout($_SERVER['REQUEST_URI'], false );
    $menu .= $loginout;
    return $menu;
}

我认为secondary中的wp_nav_menu_secondary_items只是将项目添加到ID为secondary的菜单中。你可以用这种方式定位你想要的任何菜单。或者您可以将其删除,并通过wp_nav_menu_items将链接添加到所有菜单。

答案 1 :(得分:0)

重要 - 请在编辑header.php之前备份您的wordpress文件和数据库

尝试将此代码放入“ header.php

更改 “www.yoursite.com”到您的网站名称

<!-- start of by me -->
<?php
add_action( 'loop_start', 'personal_message_when_logged_in' );

function personal_message_when_logged_in() {

    if ( is_user_logged_in() ) {
        $current_user = wp_get_current_user();
        echo $current_user->user_login;
    } else {
    $items .= '<a href="' . get_permalink( wc_get_page_id( 'myaccount' ) ) . '">Register</a>';
        echo $items;
    }

}

add_action( 'loop_start', 'login_logout_status' );

function login_logout_status() {
    if ( is_user_logged_in() ) {
    $login_status .= '<a href="http://www.yoursite.com/my-

account/customer-logout/">Log out</a>';
    echo $login_status;
    } else {
    $items .= '<a href="' . get_permalink( wc_get_page_id( 'myaccount' ) ) . '">Log in</a>';
        echo $items;
    }
}
?>

<ul class="headerlinks">
<li><?php personal_message_when_logged_in(); ?></li>
<li><?php login_logout_status(); ?></li>
</ul>

<!-- end of by me -->

<强>样式

/* start of my style */
ul.headerlinks {
    position:relative !important;
    float: right;
    z-index:500 !important;
    background-color: #e3e3e3;
    margin-bottom: 10px;
}
ul.headerlinks li {
    list-style: none !important;
    display:inline !important;
    margin:0 5px 0 0 !important;
    padding:0;
}
/* end of my style */