كيفية عرض جميع المنتجات التي اشتراها المستخدم - سجل الشراء
نشرت: 2020-08-15 إذا كنت ترغب في عرض المنتجات التي تم شراؤها من قبل المستخدم أو عرض كل سجل الشراء لمستخدم معين ، فيمكنك تحقيق ذلك باستخدام الرمز الذي تمت مشاركته في هذا المنشور. من الناحية المثالية ، يتم حفظ جميع طلبات العملاء أو سجل الشراء في جدول المنشورات في قاعدة بيانات WordPress - wp_posts
. لذلك يمكنك الحصول على البيانات من جدول قاعدة البيانات باستخدام get_post().
تعمل كما سأوضح باستخدام مثال.
WooCommerce يعرض المنتجات التي اشتراها المستخدم
الخطوة الأولى لعرض المنتجات المشتراة من قبل العميل ، نحتاج إلى الحصول على تفاصيل العميل ويمكننا الاستفادة من وظيفة wp_get_current_user()
التي ترجع كائن المستخدم الحالي.
الخطوة 1: قم بإنشاء وظيفة لعرض سجل العملاء والحصول على تفاصيل المستخدم
على سبيل المثال الوظيفة والحصول على تفاصيل المستخدم الحالي على النحو التالي:
الوظيفة njengah_get_customer_purchase_history () { // احصل على كائن المستخدم الحالي $ current_user = wp_get_current_user () ، // تحقق مما إذا كان المستخدم صالحًا إذا (0 == $ current_user-> ID) يعود ؛ }
تسترد الدالة wp_get_current_user()
كائن المستخدم ويمكنك بدلاً من ذلك استخدام وظيفة مثل get_current_user_id()
تسترد معرف المستخدم الحالي مباشرةً.
الخطوة 2: احصل على طلبات المستخدم مكتملة ومعالجة
في هذه الخطوة ، نحتاج إلى استخدام دالة get_posts () وتمرير args بمعرف المستخدم الذي حصلنا عليه في الخطوة الأولى وفي هذه الحالة سيتم تمرير معرف المستخدم باعتباره meta_value في $ args . لذلك نبدأ بإنشاء مصفوفة الوسائط التي سنمررها إلى دالة get_posts ().
// إنشاء مصفوفة $ args $ args = مجموعة ( "numberposts" => -1 ، "meta_key" => "_customer_user" ، 'meta_value' => $ current_user-> ID ، 'post_type' => wc_get_order_types () ، 'post_status' => array_keys (wc_get_is_paid_statuses ()) ، ) ؛
بعد إنشاء الوسيطات ، لم نمرر مصفوفة $ args إلى دالة get_posts () كمعامل كما يلي:
customer_orders $ = get_posts ($ args) ؛
قبل أن ننتقل إلى الخطوة التالية ، نقوم بدمج الكود في الخطوة 1 والخطوة 2 ويجب أن يكون الكود المدمج كما يلي:
الوظيفة njengah_get_customer_purchase_history () { // احصل على كائن المستخدم الحالي $ current_user = wp_get_current_user () ، // تحقق مما إذا كان المستخدم صالحًا إذا (0 == $ current_user-> ID) يعود ؛ // إنشاء مصفوفة $ args $ args = مجموعة ( "numberposts" => -1 ، "meta_key" => "_customer_user" ، 'meta_value' => $ current_user-> ID ، 'post_type' => wc_get_order_types () ، 'post_status' => array_keys (wc_get_is_paid_statuses ()) ، ) ؛ // قم بتمرير $ args إلى دالة get_posts () customer_orders $ = get_posts ($ args) ؛ }
في هذه الخطوة ، حصلنا الآن على كل سجل الشراء للعميل السابق كمصفوفة سنقوم بالتكرار خلالها للحصول على معرّفات المنتجات في الخطوة التالية.
الخطوة 3: التكرار من خلال طلبات العملاء ومعرفات المنتجات المرتجعة جاهزة للعرض
في هذه الخطوة ، نحتاج إلى تكرار الطلبات التي حصلنا عليها في الخطوة السابقة وإرجاع مصفوفة بمعرفات المنتج. يمكننا القيام بذلك باستخدام الكود التالي باستخدام حلقة foreach.
// حلقة خلال الطلبات وإرجاع المعرفات إذا عاد (! $ customer_orders) ؛ $ product_ids = مجموعة () ؛ foreach ($ customer_orders كـ $ customer_order) { الطلب بالدولار = wc_get_order ($ customer_order-> ID) ؛ العناصر $ = $ order-> get_items () ؛ foreach ($ items as $ item) { $ product_id = $ item-> get_product_id () ؛ $ product_ids [] = $ product_id؛ } } إرجاع $ product_ids؛
يمكننا الآن دمج الكود في الخطوة 1 والخطوة 2 والخطوة 3 للحصول على الكود الكامل على النحو التالي:
الوظيفة njengah_get_customer_purchase_history () { // احصل على كائن المستخدم الحالي $ current_user = wp_get_current_user () ، // تحقق مما إذا كان المستخدم صالحًا إذا (0 == $ current_user-> ID) يعود ؛ // إنشاء مصفوفة $ args $ args = مجموعة ( "numberposts" => -1 ، "meta_key" => "_customer_user" ، 'meta_value' => $ current_user-> ID ، 'post_type' => wc_get_order_types () ، 'post_status' => array_keys (wc_get_is_paid_statuses ()) ، ) ؛ // قم بتمرير $ args إلى دالة get_posts () customer_orders $ = get_posts ($ args) ؛ // حلقة خلال الطلبات وإرجاع المعرفات إذا عاد (! $ customer_orders) ؛ $ product_ids = مجموعة () ؛ foreach ($ customer_orders كـ $ customer_order) { الطلب بالدولار = wc_get_order ($ customer_order-> ID) ؛ العناصر $ = $ order-> get_items () ؛ foreach ($ items as $ item) { $ product_id = $ item-> get_product_id () ؛ $ product_ids [] = $ product_id؛ } } إرجاع $ product_ids؛ }
الخطوة 4: اختبار وظيفة العودة
في هذه الخطوة ، يمكننا التحقق لمعرفة ما إذا كانت البيانات معروضة من الوظيفة في الخطوة 3 باستخدام وظيفة print_r () على النحو التالي:
print_r (njengah_get_customer_purchase_history ()) ؛
إذا اتبعت جميع الخطوات بالطريقة الصحيحة ، فيجب أن تشاهد البيانات معروضة كما هو موضح في الصورة أدناه حيث أضفت عرض البيانات إلى خطاف إجراء wp_head .
يمكنك الآن المضي قدمًا واستخدام هذه البيانات في رمز قصير أو في المظهر أو تطوير المكون الإضافي لعرض سجل الشراء في أي مكان تريده.
استنتاج
في هذا المنشور ، شرحت كيفية عرض المنتج الذي اشتراه المستخدم في WooCommerce خطوة بخطوة. يمكن أن يكون الاستخدام المثالي لهذا الرمز بأي منطق تريد مقارنة منتجات الطلب الحالية بالمنتجات التي تم طلبها مسبقًا. في معظم التطبيقات العملية ، تشمل تخصيص الخصومات بناءً على الطلبات السابقة أو عمليات البيع المتقاطعة والبيع الإضافي.
مقالات مماثلة
- كيفية إعادة التوجيه عند تحديث صفحة WordPress »كشف الصفحة تحديث PHP
- كيفية الحصول على معرّف المنشور بواسطة Slug في WordPress مع مثال عملي
- كيفية الحصول على اسم فئة المنتج الحالي في WooCommerce
- كيفية تسجيل الدخول إلى معلومات المستخدم في WordPress
- كيفية إخفاء منتج في WooCommerce أو إخفاء المنتجات حسب الفئة أو الأدوار
- كيفية إعادة توجيه المستخدم إذا لم يكن مسجلاً في WordPress »إعادة توجيه الصفحة
- كيفية إزالة عناصر قائمة مسؤول WordPress برمجيًا بدون البرنامج المساعد
- كيفية إخفاء شريط المسؤول لعملاء WooCommerce أو حسب أدوار المستخدم
- كيفية إنشاء ترقيم الصفحات في WordPress دون استخدام البرنامج المساعد
- كيفية تغيير رابط العودة إلى المتجر في Woocommerce
- WooCommerce تسجيل الخروج بدون تأكيد: كيفية إزالة "هل أنت متأكد أنك تريد تسجيل الخروج؟"
- كيفية الحصول على دور المستخدم الحالي في WordPress وأدوار العرض
- كيفية إعادة توجيه صفحة WordPress بدون ملحقات؟
- كيفية التحقق مما إذا كان البرنامج المساعد نشطًا في WordPress [3 طرق]
- كيفية إضافة شريط جانبي إلى ووردبريس »الدليل الشامل خطوة بخطوة
- كيفية إعادة توجيه المستخدمين بعد تسجيل الدخول بنجاح في WordPress دون استخدام البرنامج المساعد
- كيفية تسجيل شريط جانبي في سمة WordPress »خطوة بخطوة [مثال عنصر واجهة الرأس]
- كيفية إعادة التوجيه إلى عربة التسوق بعد تسجيل الدخول في WooCommerce
- كيفية التحقق مما إذا كان المستخدم قد قام بتسجيل الدخول في WordPress
- كيفية عرض نص توافر المخزون في WooCommerce »In Stock & Out Out