كيفية تغيير حالة الطلب تلقائيًا في WooCommerce
نشرت: 2021-07-31هل تريد تحديث حالة الطلب في متجرك؟ لقد جئت إلى المكان المناسب. في هذا الدليل ، سنوضح لك كيفية تغيير حالة الطلب تلقائيًا في WooCommerce باستخدام بعض نصوص PHP. لا تقلق إذا لم تكن لديك مهارات تشفير متقدمة ، فسنشرح لك كل نص برمجي بالتفصيل.
تقدم WooCommerce العديد من الميزات للمطورين ، لذلك إذا كانت لديك مهارات في الترميز ، يمكنك إجراء جميع أنواع التخصيصات وتحسين متجر التجارة الإلكترونية الخاص بك. في البرنامج التعليمي التالي ، ستتعلم كل ما تحتاج لمعرفته حول حالة الطلب. هذه ميزة WooCommerce يمكن أن تكون مفيدة جدًا عند إدارة عدد كبير من الطلبات. سيكون مفيدًا بشكل خاص في قائمة الطلبات الخلفية ، حيث يمكن لمديري المتاجر البحث بسهولة واتخاذ إجراءات معينة بشأن الطلبات ذات الحالة المحددة.
بدون مزيد من اللغط ، دعنا نقفز إليه مباشرة.
ما هي حالة الطلب في WooCommerce؟
حالة الطلب هي ببساطة علامة على أمر ما يمثل الحالة الحالية للطلب . إنه مشابه للتصنيف المرتبط بمنشور يصف معلومات محددة حول الحالة الحالية لتلك المشاركة. على سبيل المثال ، عندما يضغط أحد العملاء على زر "تقديم الطلب" ، فإنه يضع طلبًا في متجرنا. بشكل افتراضي ، يتم تعيين حالة الطلب على "الدفع المعلق".
إذا تم دمج المتجر مع بوابة دفع مثل PayPal أو Stripe ، فسيتم التحقق من الحالة الافتراضية السابقة (معلقة) وستتغير إلى " معلق " أو " فاشل " اعتمادًا على نتيجة التحقق من بوابة الدفع. بعد ذلك ، إذا اكتمل الدفع ، ستتغير حالة الطلب تلقائيًا إلى "قيد المعالجة " ، بينما في حالة فشل الدفع ، ستكون حالتها " فاشلة ".
كما ترى ، تعطينا كل حالة من هذه الحالات معلومات ذات صلة بالطلب. تتيح لنا هذه الأتمتة معرفة ما إذا كان قد تم إتمام الدفع للطلب أم لا لتسليم منتجنا إلى العميل.
حالة الطلب في WooCommerce
هذه هي جميع حالات الطلب المتوفرة في WooCommerce ومعنى كل منها:
- الدفع المعلق: تم استلام الطلب ولم يتم تسجيل أي دفعة. نحن في انتظار الدفع
- فشل: فشل الدفع لسبب ما. هذا يعني أنه تم رفضه من منصة الدفع (على سبيل المثال ، PayPal) أو أنه يتطلب مزيدًا من المصادقة (SCA)
- المعالجة: تم استلام الدفعة من قبل المتجر ، وتم تحديث مخزون المنتج والشراء في الموعد المحدد للتسليم
- مكتمل: تم تنفيذ الطلب وإكماله. هذه هي الحالة الأخيرة من الأمر حيث سارت الأمور على ما يرام
- قيد الانتظار : لم يقم العميل بإجراء أي دفعة ، لذلك يتطلب الأمر تأكيدًا من مدير المتجر
- ملغى : إما أن يكون مسؤول المتجر أو المستخدم قد ألغى الطلب في وقت ما. لا يتطلب هذا أي إجراء آخر ، على الرغم من أنه يوصى بالاتصال بالعميل لفهم سبب إلغاء الطلب
- تم رد الأموال : تم رد أموال الطلب ، ولا يلزم اتخاذ أي إجراء آخر
الآن بعد أن فهمنا بشكل أفضل حالة الطلب ووظيفته ، دعنا نرى لماذا قد يكون تحديثه فكرة جيدة.
لماذا تغيير وظيفة حالة الطلب الافتراضية؟
يختلف كل متجر للتجارة الإلكترونية وله متطلبات محددة. قد لا تستخدم بعض المتاجر عبر الإنترنت حالة الطلب على الإطلاق أو قد لا تستخدمها جميعًا. على سبيل المثال ، إذا لم يتمكن المتسوقون من إرجاع المنتجات ، فقد لا يستخدم المتجر حالة رد الأموال .
بالإضافة إلى ذلك ، قد تكون هناك بعض الحالات التي لا تكفي فيها ميزة حالة الطلب الافتراضية ويحتاج المتجر إلى حالة مخصصة أو حل تلقائي لإدارة حالة الطلبات. في هذه الحالات ، يعد تخصيص سلوك حالة الطلب حلاً رائعًا لتحسين إدارة المتجر. بهذه الطريقة ، لن يحتاج متجر التجارة الإلكترونية إلى تحديث حالة الطلب يدويًا في كل حالة على حدة.
سيساعد ذلك أصحاب المتاجر على توفير الوقت والسماح لهم بالتركيز على أشياء أكثر أهمية لتحسين أعمالهم.
كيف تتغير حالة الطلب في WooCommerce
في هذه المرحلة ، من المهم أن تفهم أن حالة الطلب تتغير ديناميكيًا عندما يتم دمج WooCommerce مع بوابة دفع مثل PayPal و Payoneer و Stripe وما إلى ذلك. ضع في اعتبارك أنه إذا قمت بتحديث الحالة يدويًا عندما لا يكون ذلك متوقعًا ، فيمكنك كسر طريقة الدفع الموضحة في متجرك ولن يتمكن العملاء من متابعة عملية الشراء.
لفهم ما سنفعله بشكل أفضل ، دعنا نلقي نظرة على كيفية عمل تدفق حالة الطلب:
من وثائق WooCommerce
كما ترى في الرسم أعلاه ، فإن المرحلة الأولى من حالة الطلب هي " معلق ". بعد ذلك مباشرة ، تتحقق بوابة الدفع مما إذا كان بإمكان المستخدم إكمال الدفع وتغيير حالته إلى " معلق " ، ثم إلى " معالجة " عند إتمام الدفع بنجاح. وإلا فسوف يتحول إلى " فشل ".
بعد ذلك ، لن تفعل WooCommerce أي شيء آخر. يجب على مدير المتجر وضع علامة على الطلب على أنه " مكتمل " أو "تم إلغاؤه ". في هذه المرحلة ، من الآمن تغيير حالة الطلب تلقائيًا (برمجيًا) حتى إذا كانت هناك بوابة دفع متكاملة.
بالإضافة إلى ذلك ، من المهم معرفة أنه عندما تتغير الحالة إلى "قيد المعالجة " أو " تم رد الأموال " ، ستتم إعادة حساب مخزون المنتجات المتضمنة في الطلب. سيحدث نفس الشيء مع جميع إحصائيات المتجر عبر الإنترنت المتعلقة بهذا الطلب.
الآن بعد أن أصبح لدينا فكرة واضحة عن كيفية تغيير حالة الطلب ، دعنا نرى كيفية تحديث حالة الطلب في WooCommerce .
كيفية تغيير حالة الطلب تلقائيًا في WooCommerce
دعنا نلقي نظرة على بعض نماذج البرامج النصية لتغيير حالة الطلب برمجيًا في WooCommerce .
ملاحظة : سنقوم بتحرير بعض الملفات الأساسية ، لذا قبل أن تبدأ ، تأكد من عمل نسخة احتياطية كاملة لموقعك. بالإضافة إلى ذلك ، قم بإنشاء سمة فرعية أو استخدم أيًا من هذه المكونات الإضافية إذا لم يكن لديك واحدة حتى الآن ، لذلك تحتفظ بتخصيصاتك حتى بعد تحديث قالبك.
تغيير كل حالة الطلب بعد الشراء
إذا لم يكن متجر التجارة الإلكترونية الخاص بك مدمجًا مع أي بوابة دفع تستخدم حالة الطلب ، فيمكنك تعليق جميع الطلبات فور قيام العميل بتقديم طلب ، بدلاً من تركه كـ "معالجة". دعنا نلقي نظرة على هذا البرنامج النصي:
الوظيفة QuadLayers_change_order_status ($ order_id) { إذا (! $ order_id) {return؛} الطلب بالدولار = wc_get_order ($ order_id) ؛ if ('Processing' == $ order-> get_status ()) { order-> update_status ('wc-on-Hold') ؛ } } add_action ('woocommerce_thankyou'، 'QuadLayers_change_order_status') ؛
نستخدم الخطاف woocommerce_thankyou
لتشغيل وظيفتنا مباشرة بعد تقديم الطلب ، وتغيير الحالة باستخدام update_status()
.
كما ترى ، فإن شريحة الحالة لها بادئة (WC). على الرغم من أن الوظيفة تعمل أيضًا بدون البادئة ، فمن المستحسن استخدامها.
تجدر الإشارة إلى أنه يمكنك استخدام أي حالة أخرى وحتى الحالات المخصصة بدلاً من "قيد الانتظار" عن طريق تعديل الكود.
تعديل حالة الطلب من معرف الطلب
سيغير البرنامج النصي التالي حالة الطلب الفردي. على سبيل المثال ، لتغيير حالة الطلب 115 ، نستخدم المقتطف التالي:
add_action ('init'، function () { الطلب بالدولار = WC_Order جديد (115) ؛ order-> update_status ('wc-Processing') ؛ }) ؛
هذا نص قصير ، لذلك استخدمنا وظيفة مجهولة في ربط 'init'
WordPress.
لاحظ أن هذا لن يسمح لك بإجراء مزيد من التغييرات على الحالة أثناء تمكين البرنامج النصي.
قم بتحديث حالة طلب WooCommerce للعملاء العائدين
هذا مثال آخر مثير للاهتمام لتغيير حالة الطلب تلقائيًا في WooCommerce. سيغير النص أدناه حالة الطلب إلى "مكتمل" فقط إذا كان لدى المستخدم طلب سابق مرفق بالحالة "مكتمل" أو "قيد المعالجة".
الوظيفة QuadLayers_order_status_returning ($ order_id) { // احصل على طلبات العميل هذه $ user_id = wp_get_current_user () ، $ customer_orders = [] ؛ foreach (wc_get_is_paid_statuses () as $ paid_status) { $ customer_orders + = wc_get_orders ([ 'type' => 'shop_order' ، "الحد" => - 1 ، 'customer_id' => $ user_id-> ID ، "الحالة" => الحالة_المدفوعة بالدولار ، ]) ؛ } # طلب سابق موجود إذا (عدد ($ customer_orders)> 0) { إذا (! $ order_id) {return؛} الطلب بالدولار = wc_get_order ($ order_id) ؛ if ('Processing' == $ order-> get_status ()) { order-> update_status ('wc-complete') ؛ } } } add_action ('woocommerce_thankyou'، 'QuadLayers_order_status_returning') ؛
قد تكون هذه فكرة جيدة لإضافة طبقة من الأمان وتحسين تجربة التسوق للعملاء العائدين.
قم بتغيير حالة الطلب على معلمة URL
سيتغير نموذج البرنامج النصي هذا إلى حالة طلب معينة عندما تكون معلمة URL موجودة في المتصفح. نظرًا لأننا نستخدم init
WordPress hook ، سيعمل البرنامج النصي على أي صفحة من المتجر.
بالإضافة إلى ذلك ، سيتم تعديل حالة الطلب لآخر طلب للمستخدم الذي قام بتسجيل الدخول حاليًا. في هذا المثال ، ستتغير حالة الطلب إلى "ملغى" عندما يحتوي أي عنوان URL على معلمة "رجوع" مثل هذا: https://website.com/shop?st=revert
add_action ('init'، function () { if (isset ($ _ GET ['st']) &&! blank ($ _ GET ['st'])): $ get_url = $ _GET ['st'] ؛ إذا (get_url $ == 'العودة'): $ user_id = wp_get_current_user () ، الطلب بالدولار = wc_get_customer_last_order ($ user_id-> ID) ؛ order-> update_status ("تم إلغاء دورة المياه") ؛ إنهاء إذا؛ إنهاء إذا؛ }) ؛
إنشاء حالة أمر مخصص
بدلاً من تغيير حالة الطلب ، في هذا المثال ، سننشئ حالة طلب مخصصة جديدة يمكننا استخدامها بحرية. هذه فكرة جيدة إذا كانت الحالات الحالية غير كافية أو كنت تفضل إنشاء حالة جديدة لمزيد من الوضوح. بمجرد إنشاء حالة طلب مخصصة ، يمكنك استخدامها مع أي من البرامج النصية المذكورة أعلاه.
سيتم تسجيل البرنامج النصي التالي وإضافة حالة جديدة إلى قائمة حالة الطلب. في هذه الحالة ، سوف نطلق على حالة الطلب المخصص الجديد "I n progress " ، ولكن يمكنك استخدام أي اسم تريده ببساطة عن طريق تخصيص الرمز.
// تسجيل حالة جديدة الوظيفة register_in_progress_order_status () { register_post_status ("wc-in-progress" ، صفيف ( "التسمية" => "قيد التقدم" ، 'public' => صحيح ، 'show_in_admin_status_list' => صحيح ، 'show_in_admin_all_list' => صحيح ، 'استبعاد_from_search' => خطأ ، 'label_count' => _n_noop ('قيد التقدم (٪ s) '، 'قيد التقدم (٪ s) ') )) ؛ } // إضافة حالة مخصصة إلى قائمة حالة الطلب الوظيفة add_in_progress_to_order_statuses ($ order_statuses) { $ new_order_statuses = array ()؛ foreach ($ order_statuses كـ $ key => $ status) { $ new_order_statuses [$ key] = الحالة $؛ إذا ('wc-Processing' === $ key) { $ new_order_statuses ['wc-in-progress'] = "قيد التقدم"؛ } } إرجاع $ new_order_statuses؛ } add_action ('init'، 'register_in_progress_order_status') ؛ add_filter ('wc_order_statuses'، 'add_in_progress_to_order_statuses') ؛
طرق أخرى لتغيير حالة طلب WooCommerce
إذا كنت تبحث عن طرق بديلة لتحديث حالة الطلب الافتراضية في WooCommerce ، يمكنك التحقق من بعض المكونات الإضافية. لسوء الحظ ، لا توجد العديد من الأدوات المجانية لهذا ولكن هذه بعض من أفضل الأدوات:
- YITH حالة الطلب المخصص : أداة ممتازة لإدارة حالات الطلب وإنشاء حالات مخصصة. إنها واحدة من أفضل الأدوات في السوق ولكنها ليست رخيصة. سوف يكلفك 79.99 يورو سنويًا.
- WooCommerce Order Status Manager : مكون إضافي رائع آخر لإضافة وإزالة وتعديل حالة الطلب. يمكنك أيضًا تشغيل رسائل البريد الإلكتروني بناءً على حالة الطلبات. يكلف 49 دولارًا أمريكيًا في السنة.
- حالة الطلب المخصص لـ WooCommerce : واحدة من أفضل الأدوات لإدارة حالة الطلب في WooCommerce. إنه مكون إضافي مميز يبدأ بسعر 39 دولارًا أمريكيًا في السنة.
- حالة الطلب المخصص لـ Ni WooCommerce : أحد المكونات الإضافية المجانية القليلة الموثوقة التي تتيح لك إدارة حالة طلبك بسهولة.
كيف ترى حالة الطلب في متجر WooCommerce الخاص بك
أسهل طريقة لمعرفة حالة الطلب في متجرك هي فتح لوحة معلومات WooCommerce والانتقال إلى الطلبات. بعد ذلك ، افتح أي طلب ، وضمن القسم عام ، اضغط على القائمة المنسدلة للحالة. هناك سترى جميع الطلبات في متجرك.
استنتاج
باختصار ، حالة الطلب هي علامة تمثل الحالة الحالية للأمر. على الرغم من أن WooCommerce يتضمن حالات افتراضية معينة ، فإن تخصيصها يمكن أن يكون فكرة جيدة لأولئك الذين يرغبون في إزالة أو إضافة حالات جديدة. يمكن أن يكون أيضًا حلاً مثيرًا للاهتمام للشركات التي تحتاج إلى حل تلقائي لإدارة حالة طلباتهم.
في هذا الدليل ، رأينا جميع حالات الطلب الافتراضية وأمثلة مختلفة لتغيير حالة الطلب تلقائيًا في WooCommerce. هذه مجرد بعض الأفكار ولكن هناك الكثير الذي يمكنك القيام به. نوصيك بأخذ هذه البرامج النصية كقاعدة واللعب لتخصيصها لمتجرك.
لمزيد من المعلومات حول كيفية تخصيص متجرك ، ألق نظرة على هذه الدروس:
- كيفية تطبيق كوبونات WooCommerce تلقائيًا
- قم بتحرير صفحة WooCommerce Thank You برمجيًا
- كيفية تخصيص نموذج تسجيل WooCommerce
- 3 طرق لاختبار أوامر WooCommerce
- كيفية إضافة فلاتر منتج WooCommerce AJAX
هل قمت بتحديث حالة الطلب في متجرك؟ هل لديك أي مشاكل بعد هذا الدليل؟ اسمحوا لنا أن نعرف في التعليقات أدناه!