كيفية عرض جميع المنتجات التي اشتراها المستخدم - سجل الشراء

نشرت: 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 خطوة بخطوة. يمكن أن يكون الاستخدام المثالي لهذا الرمز بأي منطق تريد مقارنة منتجات الطلب الحالية بالمنتجات التي تم طلبها مسبقًا. في معظم التطبيقات العملية ، تشمل تخصيص الخصومات بناءً على الطلبات السابقة أو عمليات البيع المتقاطعة والبيع الإضافي.

مقالات مماثلة