«توصيل مجاني للطلبات فوق حد معين» من أكثر العروض شيوعًا في التجارة الإلكترونية، وطريقة الشحن المجاني الأصلية في WooCommerce تدعمه مباشرة: حدد حدًا أدنى للطلب، فتصبح الطريقة متاحة عندما تستوفيه السلة. ما لا يفعله WooCommerce هو تحويل العميل إليها تلقائيًا.
الثغرة في سلوك WooCommerce
إذا كان العميل قد اختار خيار توصيل مدفوعًا قبل أن تتجاوز سلته حد الشحن المجاني (بإضافة عنصر آخر مثلًا)، يبقى ذلك الخيار المدفوع مختارًا. فـ WooCommerce لا يختار طريقة شحن افتراضية إلا إذا لم يُختر شيء بعد في تلك الجلسة؛ وبمجرد اختيار طريقة، تُعامل كقرار مقصود وتُترك كما هي، حتى بعد ظهور خيار جديد أفضل للعميل موضوعيًا.
حلّان لا حل واحد، ولماذا كان كلاهما ضروريًا
الحالة الأولى عميل يغيّر سلته بنفسه في صفحة الدفع، كأن يزيد الكمية عبر أداة الكمية في الصفحة. نضع علامة على هذا الحدث تحديدًا في المتصفح، مميزين إياه عن نقر العميل يدويًا على خيار شحن آخر، ولا نختار الشحن المجاني تلقائيًا إلا عندما تكون العلامة مفعّلة وتكون الطريقة قد أصبحت متاحة للتو. أما النقر اليدوي على طريقة مدفوعة بعد ذلك فيُترك كما هو؛ إذ لا تعمل العلامة مجددًا إلا عند التغيير التالي في الكمية، لا عند كل إعادة حساب.
الحالة الثانية عميل يصل إلى صفحة الدفع أول مرة بسلة تستوفي الشرط أصلًا. لهذا، يضبط مرشح صغير على الخادم في woocommerce_package_rates الشحن المجاني كطريقة افتراضية، لكن فقط إذا لم يُختر شيء بعد في تلك الجلسة. وإذا وُجد اختيار سابق حقيقي، لا يفعل المرشح شيئًا، فلا يمكنه أبدًا تجاوز قرار العميل بصمت.
يشترك الحلان في مبدأ واحد: اختر الخيار الأفضل افتراضيًا، لكن لا تعارض أبدًا اختيارًا قام به العميل فعلًا.
أهم الدروس
- إضافة طريقة شحن لا تعني جعلها الافتراضية؛ فـ WooCommerce يتعامل مع الاختيار الموجود في الجلسة على أنه ثابت عن قصد.
- التمييز في المتصفح بين «السلة تغيّرت للتو» و«العميل نقر خيار شحن للتو» هو ما يجعل ميزة الاختيار التلقائي آمنة لا مزعجة.
- القيمة الافتراضية على الخادم يجب ألا تنطبق إلا على اختيار لم يُتخذ بعد؛ والتحقق من ذلك صراحة يتطلب قليلًا من الكود ويمنع تراجعًا حقيقيًا في تجربة المستخدم.
اقرأ أيضًا: التحقق من أرقام الجوال عند الدفع، أعمالنا في التطوير المخصص.
هل تواجه قيدًا مشابهًا في لوحة إدارة WooCommerce أو WordPress لديك؟ لنتحدث؛ فـ ArtinTech Solution تبني هذا النوع تحديدًا من أدوات المتاجر المخصصة.