كيفية إضافة حقل الخروج المخصص إلى WooCommerce عبر البريد الإلكتروني
نشرت: 2020-12-17هل تريد إضافة حقل تسجيل خروج مخصص للبريد الإلكتروني في متجر WooCommerce الخاص بك؟
يعد WooCommerce مكونًا إضافيًا قويًا للتجارة الإلكترونية لبرنامج WordPress وهو مرن للتخصيص.
في هذا المنشور ، سترى كيف يمكنك تخصيص حقول إضافية ديناميكيًا مثل إزالة عنوان الفواتير ، وإضافة / تحرير حقول الخروج المخصصة ، وحفظ هذه الحقول المخصصة في قاعدة البيانات. بالإضافة إلى ذلك ، سأوضح لك كيف يمكنك إضافة هذه الحقول المخصصة لطلب رسائل البريد الإلكتروني.
قم بإزالة معلومات إضافية من حقول السحب المخصصة
تتمثل الخطوة الأولى في إضافة مقتطف رمز PHP مخصص في ملف function.php الخاص بالسمة لإزالة حقول العنوان من شاشة الفوترة:
الدالة woocommerce_remove_additional_information_checkout ($ الحقول) { unset ($ الحقول ["billing_first_name"]) ؛ unset ($ الحقول ["billing_last_name"]) ؛ عودة الحقول $؛ } add_filter ('woocommerce_billing_fields'، 'woocommerce_remove_additional_information_checkout') ؛
هذه هي النتيجة:
ستضيف مقتطفات الشفرة التالية حقلاً مخصصًا إلى صفحة الخروج ، وتحفظ البيانات في وصف الطلب ، وتعرض وصف الطلب في مسؤول الطلبات. تلقيت عدة استفسارات حول عملية إضافة حقول متعددة. للمساعدة في معالجة المشكلة ، سنضيف مقتطف رمز لإضافة حقلين.
أضف حقل الخروج المخصص إلى WooCommerce عبر البريد الإلكتروني
يجب إضافة مقتطفات الشفرة إلى ملف jobs.php الخاص بالقالب. أوصي باستخدام سمة فرعية حتى لا تضيع تغييراتك أثناء الترقية.
1. أضف حقل الخروج المخصص لـ WooCommerce
أضف التعليمات البرمجية التالية في ملف functions.php لإضافة حقل دفع مخصص لـ WooCommerce:
دالة njengah_custom_checkout_fields (حقول $) { الحقول $ ['njengah_extra_fields'] = المصفوفة ( 'njengah_text_field' => مجموعة ( 'type' => 'text'، 'مطلوب' => صحيح ، 'label' => __ ('إدخال حقل نصي') ) ، 'njengah_dropdown' => مجموعة ( 'type' => 'select' ، 'الخيارات' => المصفوفة ('الأول' => __ ('الخيار الأول') ، 'الثاني' => __ ('الخيار الثاني') ، 'الثالث' => __ ('الخيار الثالث')) ، 'مطلوب' => صحيح ، "التسمية" => __ ("حقل القائمة المنسدلة") ) ) ؛ عودة الحقول $؛ } add_filter ('woocommerce_checkout_fields'، 'njengah_custom_checkout_fields') ؛ الوظيفة njengah_extra_checkout_fields () { $ checkout = WC () -> checkout () ؛ ؟> <div class = "extra -field"> <h3> <؟ php _e ("حقول إضافية")؛ ؟> </h3> <؟ php foreach ($ checkout-> checkout_fields ['njengah_extra_fields'] كـ $ key => $ field):؟> <؟ php woocommerce_form_field ($ key، $ field، $ checkout-> get_value ($ key))؛ ؟> <؟ php endforeach؛ ؟> </div> <؟ php} add_action ('woocommerce_checkout_after_customer_details'، 'njengah_extra_checkout_fields') ؛
هذه هي النتيجة:
2. حفظ بيانات حقول WooCommerce الخروج المخصصة
أضف التعليمات البرمجية التالية في ملف functions.php لحفظ بيانات حقول WooCommerce المخصصة للخروج.
function njengah_save_extra_checkout_fields ($ order_id ، تم النشر بالدولار) { // لا تنسى التطهير المناسب إذا كنت تستخدم نوع حقل مختلف إذا (isset ($ posted ['njengah_text_field'])) { update_post_meta ($ order_id، '_njengah_text_field'، sanitize_text_field ($ منشور ['njengah_text_field'])) ؛ } if (isset ($ posted ['njengah_dropdown']) && in_array ($ posted ['njengah_dropdown']، المصفوفة ('first'، 'second'، 'third'))) { update_post_meta ($ order_id، '_njengah_dropdown'، $ منشور ['njengah_dropdown']) ؛ } } add_action ('woocommerce_checkout_update_order_meta'، 'njengah_save_extra_checkout_fields'، 10، 2) ؛
3. اعرض بيانات حقول WooCommerce المخصصة للمستخدم
أضف التعليمات البرمجية التالية في ملف functions.php لعرض بيانات حقول WooCommerce المخصصة للمستخدم.
function njengah_display_order_data ($ order_id) {؟> <h2> <؟ php _e ("معلومات إضافية") ؛ ؟> </h2> <table class = "shop_table shop_table_responsive extra_info"> <tbody> <tr> <th> <؟ php _e ('Input Text Field:')؛ ؟> </th> <td> <؟ php echo get_post_meta ($ order_id، '_njengah_text_field'، true)؛ ؟> </td> </tr> <tr> <th> <؟ php _e ('حقل منسدل:')؛ ؟> </th> <td> <؟ php echo get_post_meta ($ order_id، '_njengah_dropdown'، true) ؛ ؟> </td> </tr> </tbody> </table> <؟ php} add_action ('woocommerce_thankyou'، 'njengah_display_order_data'، 20) ؛ add_action ('woocommerce_view_order'، 'njengah_display_order_data'، 20) ؛
هذه هي النتيجة:
4. اعرض حقول الطلب المخصصة لمشرف WooCommerce
سيعمل مقتطف الشفرة هذا كبيانات عنوان الشحن والفوترة ويكشف عن المدخلات عندما ينقر المستخدم على رمز القلم الرصاص الصغير.
function njengah_display_order_data_in_admin ($ order) {؟> <div class = "order_data_column"> <h4> <؟ php _e ('معلومات إضافية'، 'woocommerce')؛ ؟> <a href="#" class="edit_address"> <؟ php _e ('Edit'، 'woocommerce')؛ ؟> </a> </h4> <div class = "address"> <؟ php صدى "<p> <strong>". __( 'حقل النص' ) . ": </strong>". get_post_meta ($ order-> id، '_njengah_text_field'، true). "</p>"؛ صدى "<p> <strong>". __( 'اسقاط' ) . ": </strong>". get_post_meta ($ order-> id، '_njengah_dropdown'، صحيح). "</p>"؛ ؟> </div> <div class = "edit_address"> <؟ php woocommerce_wp_text_input (array ('id' => '_njengah_text_field'، 'label' => __ ('بعض الحقول')، 'wrapper_class' => '_billing_company_field')) ؛ ؟> <؟ php woocommerce_wp_text_input (array ('id' => '_njengah_dropdown'، 'label' => __ ('حقل آخر')، 'wrapper_class' => '_billing_company_field')) ؛ ؟> </div> </div> <؟ php} add_action ('woocommerce_admin_order_data_after_order_details'، 'njengah_display_order_data_in_admin') ؛ function njengah_save_extra_details ($ post_id، $ post) { update_post_meta ($ post_id، '_njengah_text_field'، wc_clean ($ _POST ['_njengah_text_field'])) ؛ update_post_meta ($ post_id، '_njengah_dropdown'، wc_clean ($ _POST ['_njengah_dropdown'])) ؛ } add_action ('woocommerce_process_shop_order_meta'، 'njengah_save_extra_details'، 45، 2) ؛
هذه هي النتيجة:
5. أضف حقول WooCommerce المخصصة لطلب رسائل البريد الإلكتروني
أضف التعليمات البرمجية التالية في ملف jobs.php لإضافة حقول WooCommerce المخصصة لطلب رسائل البريد الإلكتروني. إذا كنت ترغب في تخصيص الإخراج في رسائل البريد الإلكتروني ، فيمكنك إضافة بعض النص إلى أي من الروابط المتوفرة في قوالب البريد الإلكتروني.
function njengah_email_order_meta_fields ($ الحقول ، $ sent_to_admin ، $ order) { حقول $ ['instagram'] = مجموعة ( "التسمية" => __ ("بعض الحقول") ، 'value' => get_post_meta ($ order-> id، '_njengah_text_field'، true) ، ) ؛ $ الحقول ['الترخيص'] = المصفوفة ( "تسمية" => __ ("حقل آخر") ، 'value' => get_post_meta ($ order-> id، '_njengah_dropdown'، true) ، ) ؛ عودة الحقول $؛ } add_filter ('woocommerce_email_order_meta_fields'، 'njengah_email_order_meta_fields'، 10، 3) ؛ function njengah_show_email_order_meta ($ order، $ sent_to_admin، $ simple_text) { $ njengah_text_field = get_post_meta ($ order-> id، '_njengah_text_field'، true) ؛ $ njengah_dropdown = get_post_meta ($ order-> id، '_njengah_dropdown'، true)؛ إذا (simple_text $) { صدى "قيمة بعض الحقول". $ njengah_text_field. "بينما قيمة حقل آخر". njengah_dropdown $ ؛ } آخر { صدى "<p> قيمة <strong> حقل إدخال النص </ strong> هي". $ njengah_text_field. "بينما قيمة <strong> القائمة المنسدلة </ strong> هي". $ njengah_dropdown. "</p>"؛ } } add_action ('woocommerce_email_customer_details'، 'njengah_show_email_order_meta'، 30، 3) ؛
استنتاج
باختصار ، لقد أوضحت كيف يمكنك إضافة وتعديل وحفظ الحقول المخصصة إلى صفحة الخروج من WooCommerce. بالإضافة إلى ذلك ، قمت بتحرير قوالب البريد الإلكتروني لإضافة المعلومات من الحقول المخصصة لرسائل البريد الإلكتروني. إذا كنت بحاجة إلى تخصيص صفحة الخروج بشكل أكبر ، فيمكنك استخدام مكون إضافي مخصص للخروج.
مقالات مماثلة
- كيفية إضافة حقل نص Woocommerce المخصص في صفحة المنتج
- كيفية إنشاء منطقة عنصر واجهة مستخدم مخصصة في WordPress خطوة بخطوة
- كيفية نقل واجهة متجر القائمة الأساسية WooCommerce
- كيفية إخفاء أسعار الشحن إذا توفر الشحن المجاني WooCommerce
- كيفية إخفاء الكمية المتوفرة في WooCommerce
- كيفية إخفاء SKU ، التصنيف ، العلامات ، صفحة المنتج التعريفية WooCommerce
- كيفية إخفاء زر تحديث عربة التسوق WooCommerce صفحة
- كيفية إخفاء عنوان وصف المنتج WooCommerce
- كيفية إخفاء أي علامة تبويب صفحة حسابي WooCommerce
- كيفية تغيير رسائل خطأ WooCommerce Checkout