كيفية إنشاء صفحات تسجيل دخول وتسجيل منفصلة في WooCommerce

نشرت: 2021-05-18

صفحات منفصلة لتسجيل الدخول والتسجيل في WooCommerce هل تبحث عن طريقة لفصل صفحات تسجيل الدخول والتسجيل برمجيًا؟ سيوفر لك هذا البرنامج التعليمي الموجز حلاً سهلاً.

قد ترغب في إرسال العملاء الذين تم تسجيل خروجهم إلى صفحة تسجيل الدخول والعملاء غير المسجلين إلى صفحة منفصلة. بشكل افتراضي ، يعرض WooCommerce نموذج تسجيل الدخول واستمارة التسجيل في نفس الصفحة.

من الجدير بالذكر أن صفحة WooCommerce My Account يتم عرضها بواسطة الرمز المختصر [woocommerce_my_account].

قد لا يكون وجود كل من استمارات تسجيل الدخول والتسجيل في نفس الصفحة فكرة جيدة إذا كنت ترغب في استخدام صفحات مقصودة أو صفحات مبيعات ذات هدف محدد مثل تسجيل المستخدم. هذا يعني أن نموذج تسجيل الدخول غير مطلوب في هذه الصفحة.

كيفية إنشاء صفحات تسجيل دخول وتسجيل منفصلة في WooCommerce

في هذا البرنامج التعليمي الموجز ، سنوضح لك كيفية فصل صفحات تسجيل الدخول والتسجيل. سنوضح لك كيفية إنشاء رمزين قصيرين جديدين ، أحدهما لنموذج تسجيل الدخول والآخر لنموذج التسجيل. يمكن استخدام هذه الرموز القصيرة في أي مكان على موقعك.

دعونا نرى كيف يمكنك تحقيق ذلك.

خطوات إنشاء صفحات تسجيل وتسجيل منفصلة في WooCommerce

قبل المتابعة ، من المهم ملاحظة أن المحتوى المستخدم لإنشاء الرمز القصير يتم نسخه من ملفات قالب WooCommerce. هذا يعني أنه عندما تقوم WooCommerce بإصدار أي تغييرات على هذه الملفات أثناء التحديث ، فإنك تحتاج إلى تغيير بعض أجزاء الكود.

تابع القراءة ، حيث سنوضح لك أيضًا كيفية استخدام الرموز القصيرة.

فيما يلي الخطوات التي يجب عليك اتباعها:

  1. قم بتسجيل الدخول إلى موقع WordPress الخاص بك والوصول إلى لوحة التحكم بصفتك المستخدم المسؤول.
  2. من قائمة لوحة التحكم ، انقر فوق قائمة المظهر> قائمة محرر السمات . عند فتح صفحة Theme Editor ، ابحث عن ملف وظائف السمة حيث سنضيف الوظيفة التي ستنشئ الرمز القصير لصفحة التسجيل.
  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_bbloomer]. يجب عليك إضافته إلى صفحة جديدة تمامًا. أضف الكود التالي في نفس الملف:
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 الخاصة بك