خصم WooCommerce عبر الرموز صالح حتى إضافة السلة بمستعرض IE
تعتبر أنظمة الخصم المعتمدة على الرموز من الأساليب الشائعة لتعزيز المبيعات عبر المتاجر الإلكترونية، حيث تُستخدم لتحفيز العملاء على الشراء من خلال تقديم تخفيضات خاصة. ومع ذلك، يواجه الكثير من مستخدمي WooCommerce تحديات معينة في تطبيق هذه الأنظمة، خاصة عند استخدام متصفح Internet Explorer. في هذا المقال، سنناقش مشكلة تتعلق بنظام الخصم المعتمد على الرموز في WooCommerce وكيفية التعامل معها بفعالية.
مقدمة عن نظام الخصم المعتمد على الرموز
يهدف نظام الخصم القائم على الرموز (Token-Based Discount) في WooCommerce إلى تقديم أسعار مخفضة للعملاء عند إدخال رمز الخصم في عنوان URL. يعمل هذا النظام بشكل جيد على الكثير من المتصفحات مثل Chrome وFirefox وEdge، لكنه يعاني من مشاكل محددة في Internet Explorer، مما يتسبب في إلغاء الخصومات عند إضافة المنتجات إلى سلة التسوق.
التحديات الخاصة بمتصفح Internet Explorer
المشكلة الرئيسية التي يواجهها المستخدمون هي أن الخصم يُطبق بشكل صحيح عند زيارة صفحة المنتج، ولكن عند إضافة المنتج إلى السلة، يعود السعر إلى السعر العادي. هذا الأمر يظهر بشكل خاص في متصفح Internet Explorer، حيث يبدو أنه لا يقرأ ملفات تعريف الارتباط (Cookies) بشكل صحيح بعد الانتقال من الصفحة الرئيسية.
كيفية تطبيق الخصم باستخدام الرموز
لكي يتمكن المستخدم من الاستفادة من الخصم، يجب أولاً تحديد وجود الرمز في عنوان URL. عند وجود الرمز، يتم تعيين ملف تعريف ارتباط لتخزين الرمز لمدة ساعة. هذا يسمح للخصم بالاستمرار أثناء تنقل المستخدم في الموقع:
function set_token_cookie() {
if (isset($_GET['token']) && $_GET['token'] === 'AX4HN') {
setcookie('discount_token', 'AX4HN', time() + 3600, "/");
$_COOKIE['discount_token'] = 'AX4HN';
}
}
add_action('init', 'set_token_cookie');
التحقق من صلاحية الرمز
بعد ذلك، من الضروري التحقق من صلاحية الرمز قبل تطبيق الخصم. يمكن القيام بذلك من خلال دالة تفحص وجود الرمز في URL أو في ملف تعريف ارتباط المتصفح:
function has_valid_token() {
return (isset($_GET['token']) && $_GET['token'] === 'AX4HN') ||
(isset($_COOKIE['discount_token']) && $_COOKIE['discount_token'] === 'AX4HN');
}
كيفية الحفاظ على الخصم عبر السلة
لضمان استمرارية الخصم حتى عند إضافة المنتجات إلى السلة، يجب تطبيق الخصم في صيغة الأسعار المخفضة:
function custom_price_discount($price, $product) {
$discount_rate = 0.8; // خصم 20%
if (has_valid_token() && !$product->is_on_sale()) {
return floatval($price) * $discount_rate;
}
return $price;
}
add_filter('woocommerce_product_get_price', 'custom_price_discount', 20, 2);
لكن كما لوحظ، فإن هذه الطريقة لا تعمل بنفس الكفاءة في Internet Explorer، مما يتطلب البحث عن وسائل بديلة تضمن ثبات الخصم أثناء إضافة المنتجات إلى السلة.
اقتراحات لتحسين التوافق مع Internet Explorer
هناك عدة خطوات يمكن اتخاذها لحل هذه المشكلة:
- تنظيف ملفات تعريف الارتباط: تأكد من أن ملفات تعريف الارتباط لا تحتوي على أي مشاكل تتعلق بالتوافق مع Internet Explorer.
- استخدام JavaScript لتخزين الرموز: يمكنك الاعتماد على JavaScript لتخزين الرموز في LocalStorage، مما قد يسهل قراءة الرموز من قبل المتصفح عند إضافة المنتج.
- تحديث المتصفح: التشجيع على استخدام متصفحات أكثر حداثة، نظرًا لأن Internet Explorer لا يدعم العديد من الخصائص الحديثة.
باستخدام هذه الاستراتيجيات، يمكن لمتجر WooCommerce أن يضمن تجربة تسوق أكثر سلاسة للعملاء حتى عند استخدام Internet Explorer. تعتبر هذه المشكلات جزءاً من عملية التطوير المستمرة، وتجعل من الضروري اختبار أنظمة الخصم عبر منصات متنوعة.
بالنظر إلى أنظمة الخصم المعتمدة على الرموز، من المهم التفكير في جميع المتصفحات المستهدفة والتأكد من أن عملية التسوق تبقى متسقة وفعالة لجميع العملاء.