WooCommerce에서 별도의 로그인 및 등록 페이지를 만드는 방법

게시 됨: 2021-05-18

WooCommerce에서 별도의 로그인 및 등록 페이지 로그인 페이지와 등록 페이지를 프로그래밍 방식으로 분리하는 방법을 찾고 계십니까? 이 간단한 자습서는 쉬운 솔루션을 제공합니다.

로그아웃한 고객은 로그인 페이지로 보내고 등록되지 않은 고객은 별도의 페이지로 보낼 수 있습니다. 기본적으로 WooCommerce는 로그인 양식과 등록 양식을 같은 페이지에 표시합니다.

WooCommerce 내 계정 페이지는 [woocommerce_my_account] 단축 코드로 표시됩니다.

사용자 등록과 같은 특정 목표를 가진 방문 페이지 또는 판매 페이지를 사용하려는 경우 로그인 및 등록 양식을 모두 같은 페이지에 두는 것은 좋은 생각이 아닐 수 있습니다. 이것은 이 페이지에서 로그인 양식이 필요하지 않음을 의미합니다.

WooCommerce에서 별도의 로그인 및 등록 페이지를 만드는 방법

이 간단한 자습서에서는 로그인 페이지와 등록 페이지를 분리하는 방법을 보여줍니다. 로그인 양식용과 등록 양식용의 두 가지 새 단축 코드를 만드는 방법을 보여 드리겠습니다. 이 단축 코드는 사이트 어디에서나 사용할 수 있습니다.

이를 달성할 수 있는 방법을 살펴보겠습니다.

WooCommerce에서 별도의 로그인 및 등록 페이지를 만드는 단계

계속 진행하기 전에 단축 코드를 만드는 데 사용된 콘텐츠가 WooCommerce 템플릿 파일에서 복사된다는 점에 유의해야 합니다. 이는 WooCommerce가 업데이트 중에 이러한 파일에 대한 변경 사항을 릴리스할 때 코드의 일부를 변경해야 함을 의미합니다.

단축 코드를 사용하는 방법도 보여주므로 계속 읽으십시오.

따라야 할 단계는 다음과 같습니다.

  1. WordPress 사이트에 로그인하고 관리자로 대시보드 에 액세스합니다.
  2. 대시보드 메뉴에서 모양 메뉴 > 테마 편집기 메뉴 를 클릭합니다. 테마 편집기 페이지가 열리면 등록 페이지 단축 코드를 생성할 기능을 추가할 테마 기능 파일을 찾으십시오.
  3. php 파일 에 다음 코드를 추가 합니다.
add_shortcode( 'wc_reg_form_njengah', 'njengah_separate_registration_form' );

function njengah_separate_registration_form() {

if ( is_admin() ) return;

if ( is_user_logged_in() ) return;

ob_start();

// NOTE: THE FOLLOWING <FORM></FORM> IS COPIED FROM woocommerce\templates\myaccount\form-login.php

// IF WOOCOMMERCE RELEASES AN UPDATE TO THAT TEMPLATE, YOU MUST CHANGE THIS ACCORDINGLY

do_action( 'woocommerce_before_customer_login_form' );

?>

<form method="post" class="woocommerce-form woocommerce-form-register register" <?php do_action( 'woocommerce_register_form_tag' ); ?> >

<?php do_action( 'woocommerce_register_form_start' ); ?>

<?php if ( 'no' === get_option( 'woocommerce_registration_generate_username' ) ) : ?>

<p class="woocommerce-form-row woocommerce-form-row--wide form-row form-row-wide">

<label for="reg_username"><?php esc_html_e( 'Username', 'woocommerce' ); ?> <span class="required">*</span></label>

<input type="text" class="woocommerce-Input woocommerce-Input--text input-text" name="username" id="reg_username" autocomplete="username" value="<?php echo ( ! empty( $_POST['username'] ) ) ? esc_attr( wp_unslash( $_POST['username'] ) ) : ''; ?>" /><?php // @codingStandardsIgnoreLine ?>

</p>

<?php endif; ?>

<p class="woocommerce-form-row woocommerce-form-row--wide form-row form-row-wide">

<label for="reg_email"><?php esc_html_e( 'Email address', 'woocommerce' ); ?> <span class="required">*</span></label>

<input type="email" class="woocommerce-Input woocommerce-Input--text input-text" name="email" id="reg_email" autocomplete="email" value="<?php echo ( ! empty( $_POST['email'] ) ) ? esc_attr( wp_unslash( $_POST['email'] ) ) : ''; ?>" /><?php // @codingStandardsIgnoreLine ?>

</p>

<?php if ( 'no' === get_option( 'woocommerce_registration_generate_password' ) ) : ?>

<p class="woocommerce-form-row woocommerce-form-row--wide form-row form-row-wide">

<label for="reg_password"><?php esc_html_e( 'Password', 'woocommerce' ); ?> <span class="required">*</span></label>

<input type="password" class="woocommerce-Input woocommerce-Input--text input-text" name="password" id="reg_password" autocomplete="new-password" />

</p>

<?php else : ?>

<p><?php esc_html_e( 'A password will be sent to your email address.', 'woocommerce' ); ?></p>

<?php endif; ?>

<?php do_action( 'woocommerce_register_form' ); ?>

<p class="woocommerce-FormRow form-row">

<?php wp_nonce_field( 'woocommerce-register', 'woocommerce-register-nonce' ); ?>

<button type="submit" class="woocommerce-Button woocommerce-button button woocommerce-form-register__submit" name="register" value="<?php esc_attr_e( 'Register', 'woocommerce' ); ?>"><?php esc_html_e( 'Register', 'woocommerce' ); ?></button>

</p>

<?php do_action( 'woocommerce_register_form_end' ); ?>

</form>

<?php

return ob_get_clean();

}
  1. 두 번째 단축 코드는 [wc_login_form_bloomer]입니다. 새 페이지에 추가해야 합니다. 동일한 파일에 다음 코드를 추가합니다.
add_shortcode( 'wc_login_form_njengah', 'njengah_separate_login_form' );

function njengah_separate_login_form() {

if ( is_admin() ) return;

if ( is_user_logged_in() ) return;

ob_start();

woocommerce_login_form( array( 'redirect' => 'https://custom.url' ) );

return ob_get_clean();

}

단축 코드를 사용하는 방법

앞서 언급했듯이 [woocommerce_my_account] 단축 코드는 내 계정 페이지를 표시합니다. 동일한 페이지에 로그인한 상태에서 로그인 양식과 계정 페이지 대시보드를 유지하려면 첫 번째 단축 코드인 [woocommerce_my_account] 를 사용해야 합니다.

로그인 + 내 계정, 별도의 등록 페이지를 원하시면:

  • 등록 페이지의 [wc_reg_form_njengah]
  • 로그인 + 계정 페이지의 [woocommerce_my_account]

별도의 로그인, 등록 및 내 계정 페이지를 갖고 싶다면:

  • wc_reg_form_njengah] 등록 페이지에서
  • 로그인 페이지의 [wc_login_form_njengah]
  • [woocommerce_my_njengah ] 내 계정 페이지에서

그러나 아래와 같이 "고객이 계정을 생성하도록 허용"을 비활성화해야 합니다. 계정

결론

로그인 페이지와 등록 페이지를 분리하기만 하면 됩니다. 새 페이지에 단축 코드를 복사하여 붙여넣는 것을 잊지 마십시오.

하위 테마를 만드는 것이 좋습니다. 이렇게 하면 업데이트 중에 변경 사항이 손실되지 않습니다.

이 게시물이 문제를 해결하는 데 도움이 되었기를 바랍니다.

유사한 기사

  1. WordPress 관리자 대시보드에 액세스하거나 WordPress 대시보드에 로그인하는 방법