WooCommerce'de Ayrı Giriş ve Kayıt Sayfaları Nasıl Oluşturulur

Yayınlanan: 2021-05-18

WooCommerce'de Ayrı Giriş ve Kayıt Sayfaları Giriş ve Kayıt sayfalarını programlı olarak ayırmanın bir yolunu mu arıyorsunuz? Bu kısa öğretici sizin için kolay bir çözüm sağlayacaktır.

Oturumu kapatılmış müşterileri bir Giriş sayfasına ve kayıtlı olmayan müşterileri ayrı bir sayfaya göndermek isteyebilirsiniz. Varsayılan olarak WooCommerce, giriş formunu ve kayıt formunu aynı sayfada görüntüler.

WooCommerce Hesabım sayfasının [woocommerce_my_account] kısa koduyla görüntülendiğini belirtmekte fayda var.

Kullanıcı kaydı gibi belirli bir hedefi olan açılış sayfaları veya satış sayfaları kullanmak istiyorsanız, hem Giriş hem de Kayıt formlarının aynı sayfada olması iyi bir fikir olmayabilir. Bu, bu sayfada oturum açma formunun gerekli olmadığı anlamına gelir.

WooCommerce'de Ayrı Giriş ve Kayıt Sayfaları Nasıl Oluşturulur

Bu kısa eğitimde, giriş ve kayıt sayfalarını nasıl ayıracağınızı göstereceğiz. Biri giriş formu, diğeri kayıt formu için olmak üzere iki yeni kısa kodun nasıl oluşturulacağını size göstereceğiz. Bu kısa kodlar sitenizin herhangi bir yerinde kullanılabilir.

Bunu nasıl başarabileceğinizi görelim.

WooCommerce'de Ayrı Giriş ve Kayıt Sayfaları Oluşturma Adımları

Devam etmeden önce, kısa kodu oluşturmak için kullanılan içeriğin WooCommerce şablon dosyalarından kopyalandığını unutmamak önemlidir. Bu, bir güncelleme sırasında WooCommerce bu dosyalarda herhangi bir değişiklik yayınladığında, kodun bazı kısımlarını değiştirmeniz gerektiği anlamına gelir.

Kısa kodları nasıl kullanacağınızı size göstereceğimiz için okumaya devam edin.

İşte izlemeniz gereken adımlar:

  1. WordPress sitenize giriş yapın ve yönetici kullanıcı olarak Gösterge Tablosuna erişin.
  2. Pano menüsünden Görünüm Menüsü > Tema Düzenleyici Menüsü öğesine tıklayın. Tema Düzenleyici sayfası açıldığında kayıt sayfası kısa kodunu oluşturacak işlevi ekleyeceğimiz tema işlevleri dosyasını arayın.
  3. php dosyasına aşağıdaki kodu ekleyin :
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. İkinci kısa kod [wc_login_form_bbloomer]'dir. Yepyeni bir sayfaya eklemelisiniz. Aynı dosyaya aşağıdaki kodu ekleyin:
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();

}

Kısa Kodlar Nasıl Kullanılır

Daha önce belirtildiği gibi, [woocommerce_my_account] kısa kodu Hesabım sayfasını görüntüler. Aynı sayfada oturum açarken oturum açma formunu ve hesap sayfası panosunu tutmak istiyorsanız, ilk kısa kodu kullanmalısınız: [woocommerce_my_account] .

Giriş + hesabım ve ayrı bir kayıt sayfası istiyorsanız:

  • [wc_reg_form_njengah] Kayıt Sayfasında
  • [woocommerce_my_account] Giriş + Hesap Sayfasında

Ayrı bir giriş, kayıt ve hesabım sayfalarına sahip olmak istiyorsanız:

  • wc_reg_form_njengah] Kayıt Sayfasında
  • [wc_login_form_njengah] Giriş Sayfasında
  • [woocommerce_my_njengah ] Hesabım Sayfasında

Ancak, aşağıda gösterildiği gibi "Müşterilerin hesap oluşturmasına izin ver" seçeneğini devre dışı bırakmanız gerekir: hesaplar

Çözüm

Giriş ve kayıt sayfalarını ayırmak için yapmanız gereken tek şey bu. Kısa kodu kopyalayıp yeni bir sayfaya yapıştırmayı unutmayın.

Bir alt tema oluşturmanızı öneririz. Bu, bir güncelleme sırasında değişikliklerinizin kaybolmamasını sağlayacaktır.

Umarız bu yazı sorununuzu çözmenize yardımcı olmuştur.

Benzer Makaleler

  1. WordPress Yönetici Panosuna Nasıl Erişilir veya WordPress Panonuza Nasıl Giriş Yapılır?