WooCommerce 「マイアカウント」ページをログイン/ログアウトメニューに追加する方法

Last Updated: 2020 年 01 月 14 日 댓글

WordPress WooCommerce モールで次のコードを使用しているテーマの関数ファイルに追加すると、ゲストユーザーには「ログイン」、ログインユーザーには「ログアウト」メニュー項目がメニューに追加されます。 これにより、ログインしていないユーザーが「ログイン」メニューをクリックすると「マイアカウント」ページのログインフォームが表示され、ユーザー名とパスワードを入力してログインすると「マイアカウント」ページが表示されます。

// WooCommerce 쇼핑몰에서 로그인/로그아웃 메뉴 항목을 메뉴에 추가하기
// Add Login, Logout to main navigation menu in WordPress WooCommerce store
function my_account_loginout_link( $items, $args ) {
    if (is_user_logged_in() && $args->theme_location == 'main_navigation') { // 테마에서 등록한 메뉴 이름으로 변경
        $items .= '<li><a href="'. wp_logout_url( get_permalink( wc_get_page_id( 'myaccount' ) ) ) .'">로그아웃</a></li>';
    }
    elseif (!is_user_logged_in() && $args->theme_location == 'main_navigation') { // 테마에서 등록한 메뉴 이름으로 적절히 변경
        $items .= '<li><a href="' . get_permalink( wc_get_page_id( 'myaccount' ) ) . '">로그인</a></li>';
    }
    return $items;
}

まず、チャイルドテーマ(子テーマ)を作成チャイルドテーマの関数ファイルに上記のコードを挿入してください。 親テーマの関数ファイルにコードを挿入すると、テーマが更新された場合の修正がすべて消えます。

上記のコードで main_navigationは、テーマのメニューの場所の名前に変更するようにします。 メニュー名を確認するには、テーマ デザイン>メニューの一番下に見ると、メニューの位置が表示されます。

Avada テーマのメニューの位置
テーマのメニューの位置

ChromeやFirefoxなどのブラウザで要素チェックを行うようにします。 (クロムでは右クリックし、表示されたコンテキストメニューの[検査]をクリックして要素検査を実行できます。)

WordPress テーマのメニューの場所の名前を確認する方法

上の図は、 AvadaのMain Navigationメニューの名前を示します。 AvadaのMain Navigationのmenu-location名は main_navigationです。 メニュー位置の名前は、テーマごとに異なり、同じテーマでもメニューの位置に基づいて名前が異なります。

ログアウト後に移動ページを変更したい場合 wp_logout_url( get_permalink( wc_get_page_id( 'myaccount' ) ) ) ) 部分を変更してください。 wp_logout_url 関数の詳細については、 WordPress 開発者向けドキュメントを参照してください。

上記のコードを関数ファイルに追加すると、メニューにログイン/ログアウトエントリが追加されます。 [ログイン]をクリックすると、[マイアカウント](My Account)のログインフォームが表示されます。

WooCommerce 設定で会員登録フォームも「マイアカウント」ページに表示されるように設定した場合、上の図のように会員登録フォームも一緒に表示されます。

マイアカウントページで、アカウントを作成できるようにするには、 WooCommerce >設定>アカウントと個人情報で、アカウント作成セクションの顧客が「マイアカウント」ページでアカウントを作成できます」オプションを選択します。

WooCommerce マイアカウントページに登録フォームを表示

この記事で紹介されたコードはWordPress メニューへのログイン/ログアウトメニュー項目を追加する方法「という記事で紹介されているコードに似ています。

メモ:


コメントを残す

コメント