WooCommerce: Ayrı Giriş ve Kayıt Sayfaları
Yayınlanan: 2019-02-13Oturumu kapatmış müşterileri bir Giriş sayfasına ve kayıtlı olmayan müşterileri ayrı bir Kayıt sayfasına göndermeniz gereken zamanlar vardır.
Bildiğiniz gibi, [woocommerce_my_account] kısa kodunu içeren WooCommerce Hesabım sayfasında, Hesabım ayarlarında kayıt etkinleştirildiğinde hem Giriş hem de Kayıt formları bulunur.
Bu her zaman iyi bir fikir değildir, çoğunlukla açılış sayfalarını veya belirli bir hedefi olan satış sayfalarını (ör. kullanıcı kaydı) kullandığınızda.
Açıkçası, bu olduğunda, orada da bir oturum açma formunun olmasını istemezsiniz. Benim çözümüm, biri giriş formu için diğeri kayıt formu için olmak üzere iki yeni kısa kod sağlıyor.
Lütfen Kayıt Sayfası kısa kod içeriğinin WooCommerce şablon dosyalarından kopyalandığını unutmayın - WooCommerce bir güncelleme yayınlarsa veya bu dosyalarda bir değişiklik yaparsa, snippet'i de güncellemeniz gerekebilir.
Bir deneyin, geri bildirim çok takdir edilmektedir
Aşağıdaki kısa kodları kullanmadan önce yapılması gerekenler…
Bildiğiniz gibi, [woocommerce_my_account] kısa kodu çok önemlidir ve her ne pahasına olursa olsun WooCommerce Hesabım sayfasında tutulmalıdır. Bu, ondan kurtulamayacağınız veya Hesabım sayfasını silemeyeceğiniz anlamına gelir.
Bu nedenle, bir GİRİŞ + HESABIM sayfanız ve ayrı bir KAYIT sayfanız olsun istiyorsanız, bu yığını kullanın:
- Kayıt Sayfasında [wc_reg_form_bbloomer] – AŞAĞIDAKİ SNIPPET #1
- Hesabım Sayfasında [woocommerce_my_account]
- Hesabım sayfasına gitmeleri için bir kayıt yönlendirme snippet'i ekleyin
Ayrı GİRİŞ, KAYIT ve HESABIM sayfalarına sahip olmak istiyorsanız, bu yığını kullanın:
- Kayıt Sayfasında [wc_reg_form_bbloomer] – AŞAĞIDAKİ SNIPPET #1
- Giriş Sayfasında [wc_login_form_bbloomer] – AŞAĞIDAKİ SNIPPET #2
- [woocommerce_my_account ] Hesabım Sayfasında
- Hesabım sayfasına gitmeleri için bir kayıt yönlendirme snippet'i ekleyin
Her iki durumda da, " Hesaplar ve Gizlilik " ayarlarında " Müşterilerin " Hesabım " sayfasında bir hesap oluşturmasına izin ver " onay kutusunu devre dışı bırakmanız gerekir :
PHP Snippet #1: Ayrı WooCommerce Müşteri Kayıt Formu Kısa Kodu
Bu kısa kodu [wc_reg_form_bbloomer] yepyeni bir WordPress sayfasına yerleştirin ve kayıt formu sihirli bir şekilde görünecektir.
/**
* @snippet WooCommerce User Registration Shortcode
* @how-to Get CustomizeWoo.com FREE
* @author Rodolfo Melogli
* @compatible WooCommerce 6
* @donate $9 https://businessbloomer.com/bloomer-armada/
*/
add_shortcode( 'wc_reg_form_bbloomer', 'bbloomer_separate_registration_form' );
function bbloomer_separate_registration_form() {
if ( is_admin() ) return;
if ( is_user_logged_in() ) return;
ob_start();
do_action( 'woocommerce_before_customer_login_form' );
// 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
?>
<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();
}
PHP Snippet #2: Ayrı WooCommerce Giriş Formu Kısa Kodu
Lütfen yukarıdaki notları okuyun – bu kısa koda hiç ihtiyacınız olmayabilir ve [woocommerce_my_account] giriş formunu göstermek için yeterli olabilir.
Aksi takdirde, lütfen bu kısa kodu [wc_login_form_bbloomer] yepyeni bir Giriş sayfasına ekleyin.
/**
* @snippet WooCommerce User Login Shortcode
* @how-to Get CustomizeWoo.com FREE
* @author Rodolfo Melogli
* @compatible WooCommerce 6
* @donate $9 https://businessbloomer.com/bloomer-armada/
*/
add_shortcode( 'wc_login_form_bbloomer', 'bbloomer_separate_login_form' );
function bbloomer_separate_login_form() {
if ( is_admin() ) return;
if ( is_user_logged_in() ) return;
ob_start();
woocommerce_login_form( array( 'redirect' => '/my-account' ) );
return ob_get_clean();
}