Cum se creează pagini separate de autentificare și înregistrare în WooCommerce

Publicat: 2021-05-18

Pagini separate de autentificare și înregistrare în WooCommerce Căutați o modalitate de a separa în mod programatic paginile de conectare și de înregistrare? Acest scurt tutorial vă va oferi o soluție ușoară.

Poate doriți să trimiteți clienții deconectați la o pagină de conectare și clienții neînregistrați pe o pagină separată. În mod implicit, WooCommerce afișează formularul de conectare și formularul de înregistrare pe aceeași pagină.

Merită menționat că pagina Contul meu WooCommerce este afișată de codul scurt [woocommerce_my_account].

A avea ambele formulare de autentificare și de înregistrare pe aceeași pagină ar putea să nu fie o idee bună dacă doriți să utilizați pagini de destinație sau pagini de vânzare cu un obiectiv specific, cum ar fi înregistrarea utilizatorului. Aceasta înseamnă că formularul de autentificare nu este necesar pe această pagină.

Cum să creați pagini separate de autentificare și înregistrare în WooCommerce

În acest scurt tutorial, vă vom arăta cum să separați paginile de conectare și de înregistrare. Vă vom arăta cum să creați două coduri scurte noi, unul pentru formularul de conectare și unul pentru formularul de înregistrare. Aceste coduri scurte pot fi folosite oriunde pe site-ul dvs.

Să vedem cum poți realiza asta.

Pași pentru a crea pagini separate de autentificare și înregistrare în WooCommerce

Înainte de a continua, este important să rețineți că conținutul folosit pentru a crea codul scurt este copiat din fișierele șablon WooCommerce. Aceasta înseamnă că atunci când WooCommerce lansează orice modificări ale acestor fișiere în timpul unei actualizări, trebuie să modificați unele părți ale codului.

Citiți mai departe, deoarece vă vom arăta și cum să utilizați codurile scurte.

Iată pașii pe care trebuie să-i urmezi:

  1. Conectați-vă la site-ul dvs. WordPress și accesați tabloul de bord ca utilizator administrator.
  2. Din meniul Tablou de bord, faceți clic pe Meniu Aspect > Meniu Editor de teme . Când pagina Editor de teme este deschisă, căutați fișierul cu funcțiile temei unde vom adăuga funcția care va crea codul scurt al paginii de înregistrare.
  3. Adăugați următorul cod în fișierul 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. Al doilea shortcode este [wc_login_form_bbloomer]. Ar trebui să-l adăugați pe o pagină nou-nouță. Adăugați următorul cod în același fișier:
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();

}

Cum să utilizați codurile scurte

După cum am menționat mai devreme, codul scurt [woocommerce_my_account] afișează pagina Contul meu. Dacă doriți să păstrați formularul de conectare și tabloul de bord al paginii contului în timp ce sunteți conectat pe aceeași pagină, ar trebui să utilizați primul cod scurt: [woocommerce_my_account] .

Dacă doriți să aveți autentificare + contul meu și o pagină separată de înregistrare:

  • [wc_reg_form_njengah] pe pagina de înregistrare
  • [woocommerce_my_account] pe pagina Conectare + Cont

Dacă doriți să aveți o pagină separată de conectare, înregistrare și contul meu:

  • wc_reg_form_njengah] pe pagina de înregistrare
  • [wc_login_form_njengah] pe pagina de conectare
  • [woocommerce_my_njengah ] pe Pagina Contul meu

Cu toate acestea, trebuie să dezactivați „Permiteți clienților să creeze un cont”, după cum se arată mai jos: conturi

Concluzie

Este tot ce trebuie să faceți pentru a separa paginile de conectare și de înregistrare. Nu uitați să copiați și să lipiți codul scurt pe o pagină nouă.

Vă recomandăm să creați o temă copil. Acest lucru vă va asigura că modificările dvs. nu sunt pierdute în timpul unei actualizări.

Sperăm că această postare a ajutat la rezolvarea problemei dvs.

Articole similare

  1. Cum să accesați tabloul de bord de administrare WordPress sau să vă conectați la tabloul de bord WordPress