صلاحية التحقق من زر المضي للتسوق في ووكومرس لا تعمل
في عالم التجارة الإلكترونية، تعتبر واجهة المستخدم وسهولة التنقل من أبرز العوامل التي تؤثر على تجربة العميل. عند استخدام WooCommerce، قد تواجه بعض التحديات التقنية، مثل مشكلة عدم عمل التحقق من صحة صندوق التحقق (Checkmark validation) لزر "المتابعة إلى الدفع" (Proceed to checkout). هذه المشكلة يمكن أن تؤدي إلى إحباط العملاء وقد تمنعهم من إتمام عملية الشراء، مما يؤثر سلبًا على عائدات المتجر.
فهم المشكلة
عند إضافة منتجات معينة إلى سلة المشتريات، قد تحتاج إلى عرض شروط أو تحذيرات إضافية قبل السماح للعميل بالانتقال إلى مرحلة الدفع. هذا عادة ما يتطلب إضافة مربع تحقق يضمن أن العميل قد قرأ وفهم الشروط. إذا لم يتم تفعيل هذا المربع بشكل صحيح، فإن زر "المتابعة إلى الدفع" سيظل مفعلًا حتى في حالة عدم تأشير العميل على المربع.
كيفية حل مشكلة عدم عمل التحقق من صحة صندوق التحقق
لحل هذه المشكلة باستخدام WooCommerce، يمكن استخدام كود JavaScript أو jQuery يتفاعل مع حدث تغيير الحالة للمربع. يجب أولاً تحديد ما إذا كانت أي من المنتجات المستهدفة موجودة في السلة. في حالة وجودها، يتم عرض مربع تحقق يتحكم في تمكين أو تعطيل زر "المتابعة إلى الدفع".
إليك كيفية القيام بذلك ببساطة:
- في ملف functions.php في قالب الطفل الخاص بك (أو في إضافة مخصصة) يمكن إضافة كود يتحقق من وجود المنتج.
- سيتم عرض مربع التحقق فقط إذا كان هناك منتج معين موجود في السلة، وفي حال لم يُؤشر العميل على هذا المربع، يتم تعطيل زر الدفع.
تفاصيل التنفيذ
أولاً، تأكد من أن WooCommerce مفعل. يمكنك استخدام دالة class_exists( 'WooCommerce' )
للتأكد من ذلك. بعد ذلك، يمكنك كتابة دالة لمعالجة العناصر الموجودة في السلة. هذه الدالة ستقوم بجمع ملفات SKU الخاصة بالمنتجات المتوفرة في سلة الشراء.
بعد ذلك، قم بإضافة دالة لمربع التحقق، واستخدم طريقة woocomerce_form_field
لإنشاء المربع بالخصائص المطلوبة.
لتفعيل عملية التحقق، يمكن استخدام كود jQuery للتحكم في حالة زر "المتابعة إلى الدفع". إذ يقوم هذا الكود بإزالة الرابط من الزر إذا لم يتم تأشير المربع، وإعادة تفعيله إذا قام العميل بالتأشير عليه.
نموذج الكود المقترح
إليك نموذج للكود الذي يمكن استخدامه:
// تحقق مما إذا كان WooCommerce مفعلاً
if ( class_exists( 'WooCommerce' ) ) {
function cart_items_skus( $skus = array() ) {
foreach( WC()->cart->get_cart() as $item ) {
$skus[] = $item['data']->get_sku();
}
return $skus;
}
add_action('woocommerce_proceed_to_checkout', 'cart_disclaimer1_test', 10);
function cart_disclaimer1_test() {
$targeted_SKUs = array('1254xxc', '136cfbf', 'woo-beanie');
if ( array_intersect( $targeted_SKUs, cart_items_skus() ) ) {
$field_slug = 'cart_disclaimer_cb';
wc_enqueue_js("const strPTC = '.checkout-button', btnPTC = $(strPTC), checkoutURL = btnPTC.prop('href');
btnPTC.removeAttr('href').addClass('disabled');
$(document.body).on('change', 'input[name={$field_slug}]', function(){
$(this).prop('checked') ?
btnPTC.prop('href', checkoutURL).removeClass('disabled') :
btnPTC.removeAttr('href').addClass('disabled');
});");
woocommerce_form_field( $field_slug, array(
'type' => 'checkbox',
'class' => array('form-row disclaimer-checkbox'),
'label_class' => array('woocommerce-form__label woocommerce-form__label-for-checkbox checkbox'),
'input_class' => array('woocommerce-form__input woocommerce-form__input-checkbox input-checkbox'),
'required' => true,
'label' => 'قرأت وفهمت شروط التحذير.',
));
}
}
}
الحفظ في ملف functions.php سيضمن تنفيذ الكود في متجر WooCommerce الخاص بك. إذا كان لديك منتجات معينة تحتاج إلى إشعار العملاء بشأنها، فسيعمل هذا الكود على تفعيل مربع التحقق، مما يضمن حصول العملاء على المعلومات الضرورية.
خاتمة
تعتبر مشاكل مثل "عدم عمل التحقق من صحة صندوق التحقق لزر المتابعة إلى الدفع" واحدة من التحديات الشائعة التي يواجهها مستخدمو WooCommerce. من خلال تطبيق الطرق المذكورة أعلاه، يمكنك تحسين تجربة العملاء وضمان أنهم قد قرأوا وفهموا جميع الشروط قبل إكمال عملية الشراء. تأكد دائمًا من اختبار التعديلات بشكل جيد قبل نشرها لضمان عملها كما هو متوقع.