WooCommerce: كيفية إضافة حقل مخصص للخروج

A VPN is an essential component of IT security, whether you’re just starting a business or are already up and running. Most business interactions and transactions happen online and VPN

دعنا نتخيل أنك تريد إضافة حقل مخصص للخروج (وليس حقل فواتير أو شحن إضافي) في صفحة WooCommerce Checkout. على سبيل المثال ، قد يكون رقم ترخيص العميل – وهذا ليس له علاقة بالفوترة ولا علاقة له بالشحن.

من الناحية المثالية ، قد يكون هذا شيئًا يجب أن يظهر أعلى ملاحظات طلب الخروج – لذا نعم ، ليس في نموذج الفوترة أو الشحن. إذن ، إليك كيفية القيام بذلك – آمل أن يساعدك على فهم أن كل شيء ممكن!

إليك حقل الخروج المخصص الجديد ، المعروض عمداً خارج نماذج الفوترة / الشحن.

مقتطف PHP (الجزء 1 من 3): إضافة حقل جديد @ WooCommerce Checkout

هنا نعرض الحقل الجديد في صفحة WooCommerce Checkout ، وتحديدًا أعلى “ملاحظات الطلب” ، والتي تظهر عادةً في عمود الشحن.

معرّف الحقل الجديد هو ” License_no ” ، وهو أمر مفيد للتذكر في الجزأين 2 و 3.

/**
 * @snippet       Add Custom Field @ WooCommerce Checkout Page
 * @how-to        Get CustomizeWoo.com FREE
 * @author        Rodolfo Melogli
 * @testedwith    WooCommerce 3.8
 * @donate $9     https://businessbloomer.com/bloomer-armada/
 */
  
add_action( 'woocommerce_before_order_notes', 'bbloomer_add_custom_checkout_field' );
  
function bbloomer_add_custom_checkout_field( $checkout ) { 
   $current_user = wp_get_current_user();
   $saved_license_no = $current_user->license_no;
   woocommerce_form_field( 'license_no', array(        
      'type' => 'text',        
      'class' => array( 'form-row-wide' ),        
      'label' => 'License Number',        
      'placeholder' => 'CA12345678',        
      'required' => true,        
      'default' => $saved_license_no,        
   ), $checkout->get_value( 'license_no' ) ); 
}

مقتطف PHP (الجزء 2 من 3): تحقق من صحة حقل الخروج الجديد

الآن ، بمجرد معالجة الخروج ، نريد التأكد من أن حقلنا ليس فارغًا. تذكر أننا اخترنا “required” => true مما يعني أن الحقل سيحتوي على علامة مطلوبة بجانب التسمية الخاصة به. ومع ذلك ، هذا لا يكفي – ما زلنا بحاجة إلى إنشاء رسالة خطأ إذا كان حقلنا فارغًا.

/**
 * @snippet       Validate Custom Field @ WooCommerce Checkout Page
 * @how-to        Get CustomizeWoo.com FREE
 * @author        Rodolfo Melogli
 * @testedwith    WooCommerce 3.8
 * @donate $9     https://businessbloomer.com/bloomer-armada/
 */
 
add_action( 'woocommerce_checkout_process', 'bbloomer_validate_new_checkout_field' );
  
function bbloomer_validate_new_checkout_field() {    
   if ( ! $_POST['license_no'] ) {
      wc_add_notice( 'Please enter your Licence Number', 'error' );
   }
}

مقتطف PHP (الجزء 3 من 3): احفظ وأظهر New Field @ WooCommerce الطلبات ورسائل البريد الإلكتروني

إذا تم تمرير التحقق ، تقوم WooCommerce بمعالجة الأمر. لكن قيمة الحقل الجديدة تضيع ، حيث لا توجد وظيفة “تخزن” تلك القيمة في ما يسمى “ترتيب البيانات الوصفية”. نحتاج إلى الحفظ وكذلك لعرض قيمة الحقل داخل الطلبات ورسائل البريد الإلكتروني الخاصة بالطلب.

/**
 * @snippet       Save & Display Custom Field @ WooCommerce Order
 * @how-to        Get CustomizeWoo.com FREE
 * @author        Rodolfo Melogli
 * @testedwith    WooCommerce 3.8
 * @donate $9     https://businessbloomer.com/bloomer-armada/
 */
 
add_action( 'woocommerce_checkout_update_order_meta', 'bbloomer_save_new_checkout_field' );
  
function bbloomer_save_new_checkout_field( $order_id ) { 
    if ( $_POST['license_no'] ) update_post_meta( $order_id, '_license_no', esc_attr( $_POST['license_no'] ) );
}
  
add_action( 'woocommerce_admin_order_data_after_billing_address', 'bbloomer_show_new_checkout_field_order', 10, 1 );
   
function bbloomer_show_new_checkout_field_order( $order ) {    
   $order_id = $order->get_id();
   if ( get_post_meta( $order_id, '_license_no', true ) ) echo '<p><strong>License Number:</strong> ' . get_post_meta( $order_id, '_license_no', true ) . '</p>';
}
 
add_action( 'woocommerce_email_after_order_table', 'bbloomer_show_new_checkout_field_emails', 20, 4 );
  
function bbloomer_show_new_checkout_field_emails( $order, $sent_to_admin, $plain_text, $email ) {
    if ( get_post_meta( $order->get_id(), '_license_no', true ) ) echo '<p><strong>License Number:</strong> ' . get_post_meta( $order->get_id(), '_license_no', true ) . '</p>';
}

المنشورات ذات الصلة:

WooCommerce: أضف حقل رقم المنزل @ Checkout

دليل تخصيص حقول WooCommerce Checkout

WooCommerce: أضف حقل “تأكيد عنوان البريد الإلكتروني” @ Checkout

WooCommerce: تحويل حقل الخروج من العنوان إلى القائمة المنسدلة

WooCommerce: إخفاء حقول فواتير تسجيل الخروج إذا كان Virtual Product @ Cart

WooCommerce: عرض أخطاء الحقول المطلوبة “Inline” @ Checkout

WooCommerce: أضف هاتف الشحن @ Checkout

WooCommerce: أعد تسمية تسمية “الولاية” @ Checkout

WooCommerce: نقل ملاحظات الطلب @ الخروج

WooCommerce: Maxlength و Minlength لحقول الخروج

أين تضيف هذا المقتطف؟

يمكنك وضع مقتطفات PHP في الجزء السفلي من ملف function.php القالب الفرعي الخاص بك (احذف “؟>” إذا كان لديك هناك). من ناحية أخرى ، ينتقل CSS في ملف style.css الخاص بسمة الطفل. تأكد من أنك تعرف ما تفعله عند تحرير مثل هذه الملفات – إذا كنت بحاجة إلى مزيد من الإرشادات ، فيرجى إلقاء نظرة على الفيديو التعليمي المجاني الخاص بي “أين تضع تخصيص WooCommerce؟”

هل هذا المقتطف (لا يزال) يعمل؟

يرجى إعلامي في التعليقات إذا كان كل شيء يعمل كما هو متوقع. يسعدني مراجعة المقتطف إذا أبلغت بخلاف ذلك (يرجى تقديم لقطات شاشة). لقد اختبرت هذا الكود مع موضوع Storefront وإصدار WooCommerce المذكور أعلاه واستضافة صديقة لـ وورد بريس على PHP 7.3.

إذا كنت تعتقد أن هذا الرمز وفر لك الوقت والمال ، فلا تتردد في الانضمام إلى أكثر من 14000 مشترك في WooCommerce Weekly للحصول على تحديثات منشورات المدونة أو أكثر من 250 من مؤيدي Business Bloomer لمدة 365 يومًا من مزايا WooCommerce . شكرا لكم مقدما 🙂

هل تحتاج إلى مساعدة في WooCommerce؟

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

توضيح

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

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

شاركنا رايك وتقييمك للموضوع

{{ reviewsTotal }}{{ options.labels.singularReviewCountLabel }}
{{ reviewsTotal }}{{ options.labels.pluralReviewCountLabel }}
{{ options.labels.newReviewButton }}
{{ userData.canReview.message }}