كيفية إنشاء نوع منتج WooCommerce مخصص برمجيًا

نشرت: 2023-01-03

عندما تقوم ببناء متجر WooCommerce معقد ، فقد تحتاج إلى إنشاء حلول خاصة بك لمشاكل معينة. تتمثل إحدى هذه المشكلات في عدم وجود أنواع معينة من منتجات WooCommerce. هذا هو السبب في أننا في QuadLayers قدمنا ​​لك دليلنا حول كيفية إنشاء نوع منتج WooCommerce مخصص لموقعك على الويب.

سننظر في كيفية تحديد أنواع المنتجات الخاصة بك ، وتمكين خيارات وأسعار محددة لها ، وأكثر من ذلك بكثير. لكن أولاً ، دعنا نلقي نظرة على أنواع منتجات WooCommerce وما يمكن أن تفعله أنواع المنتجات المخصصة.

لماذا تضيف نوع منتج مخصص في WooCommerce؟

بشكل افتراضي ، يحتوي WooCommerce على أربعة أنواع فريدة من المنتجات. وهذه هي:

  • منتج بسيط
  • منتج متغير
  • خارجي / تابع
  • منتج قابل للتنزيل

بالطبع ، مع ملحقات WooCommerce الخارجية ، يمكنك إضافة المزيد من أنواع المنتجات مثل منتجات الاشتراك ، والمنتجات القابلة للحجز ، والعضويات ، والمزيد.

ولكن ماذا لو أردت إنشاء نوع منتج غير هذه الأنواع المحددة؟ إذا كان لديك متطلبات معينة لا يمكن أن تلبيها أنواع منتجات WooCommerce الافتراضية ، أو إذا كنت ترغب في إنشاء نوع منتج مخصص مثل العضوية أو منتجات المزاد دون استخدام مكون إضافي تابع لجهة خارجية ، فيمكنك إنشاء نوع منتج مخصص باستخدام القليل من الترميز.

يعني استخدام نوع منتج مخصص إضافة إعدادات مختلفة وفريدة لنوع المنتج. على سبيل المثال ، إذا كنت تريد نوع منتج متغير محددًا وأضف إعدادات رؤية أو تسعير مختلفة له ، فيمكنك القيام بذلك باستخدام نوع منتج مخصص. علاوة على ذلك ، يمكنك أيضًا تحديد نوع منتج معين لنوع واحد من المنتجات يكون فريدًا وتغيير إعدادات نوع المنتج فقط إذا كنت ترغب في ذلك.

بغض النظر عن احتياجاتك ، يمنحك الحصول على نوع منتجك المخصص مزيدًا من المرونة عند تخصيص وتحديد المنتجات التي تبيعها على موقع الويب الخاص بك.

كيفية إنشاء نوع منتج WooCommerce مخصص؟

عملية إنشاء نوع منتج WooCommerce بسيطة للغاية ولكنها تتطلب مستوى معينًا من الترميز. نوصي عملائنا بمعرفة المزيد حول إنشاء إضافات WordPress مخصصة وإضافة أكواد إليها إذا كنت ترغب في متابعة هذه المقالة.

بمجرد فهم أساسيات إنشاء مكونات WordPress الإضافية في دليل موقع الويب الخاص بك ، امض قدمًا وافتح دليل تثبيت WP ، وافتح wp-content / plugins وأنشئ المجلد " QuadLayers_custom-product-type ". في العرض التوضيحي الخاص بنا ، سنستخدم دليل المضيف المحلي الخاص بنا.

قم بإنشاء مجلدات لنوع منتج WooCommerce المخصص

بعد ذلك ، قم بإنشاء ملف باسم " Quadlayers_custom-product-type.php ." هذا هو ملفك الرئيسي الذي يعمل كمدخل لبقية ميزات المكون الإضافي الخاص بك.

افتح هذا الملف والصق سطور التعليمات البرمجية التالية في الملف:

 <؟ php

/ **
* اسم البرنامج المساعد: نوع المنتج المخصص Quadlayers
* الوصف: كود دليل Quadlayers حول إنشاء نوع منتج WooCommerce مخصص
* /

إذا (! المعرفة ("أبسبات")) {
إرجاع؛
} 

إضافة كود إلى الملف الرئيسي للمكون الإضافي

تحدد هذه المجموعة من التعليمات البرمجية المكون الإضافي الخاص بك عن طريق إضافة اسم ووصف البرنامج المساعد. في الوقت الحالي ، هذا يكفي ، حيث نحتاج إلى إضافة المزيد من الرموز إلى هذا الملف حتى يعمل. الآن ، تحتاج إلى تنشيط المكون الإضافي الذي تم إنشاؤه حديثًا. سنبقي المكون الإضافي نشطًا للبرنامج التعليمي ونضيف المزيد من الرموز أثناء تقدمنا.

لذا انطلق وافتح لوحة تحكم WP Admin وانقر على الإضافات . هنا ، يجب أن تشاهد مكونًا إضافيًا جديدًا يسمى Quadlayers Custom Product Type. انطلق وقم بتنشيطه وانتقل إلى الخطوة التالية من البرنامج التعليمي.

تفعيل البرنامج المساعد لنوع منتج woocommerce المخصص

تسجيل نوع منتج WooCommerce المخصص

بعد ذلك ، سننشئ وظيفة لتحديد نوع منتجنا المخصص وتسجيله كنوع منتج WooCommerce. لهذا ، أضف هذا الرمز إلى الملف الرئيسي للمكون الإضافي الخاص بك:

 add_action ('init'، 'register_demo_product_type') ؛
وظيفة register_demo_product_type () {
تمتد فئة WC_Product_Demo إلى WC_Product {

الوظيفة العامة __construct (منتج $) {
$ this-> product_type = 'demo'؛
الأصل :: __ الإنشاء (المنتج $) ؛
}
}
}

سيؤدي هذا إلى تسجيل نوع منتج مخصص يسمى العرض التوضيحي. إذا كنت تريد تغيير اسم نوع المنتج ، فما عليك سوى تغيير النص في $this->product_type = 'demo';

أضف خيار منتج WooCommerce المخصص.

بعد ذلك ، نحتاج إلى إضافة نوع المنتج المخصص إلى القائمة المنسدلة لنوع المنتج. هذا يجعل نوع المنتج الخاص بك قابلاً للتحديد عند إنشاء منتج أو تحريره على لوحة تحكم WP Admin. أضف هذا الرمز إلى الملف الرئيسي للمكون الإضافي الخاص بك ، وسترى خيارًا جديدًا في قائمة نوع المنتج.

 add_filter ('product_type_selector'، 'add_demo_product_type') ؛
وظيفة add_demo_product_type (أنواع $) {
أنواع $ ['demo'] = __ ('منتج تجريبي'، 'dm_product')؛
عودة أنواع $؛ 
}

سيضيف هذا الرمز نوع المنتج المخصص إلى القائمة المنسدلة لبيانات المنتج باستخدام السطر $types['demo'] = __('Custom Product Type') . يمكنك تغيير النص من نوع المنتج المخصص إلى أي شيء مثل منتج تجريبي أو طلب مخصص أو بطاقة هدايا وما إلى ذلك.

الآن ، افتح WP Admin Dashboard الخاص بك وقم بإنشاء منتج جديد. ضمن القائمة المنسدلة " نوع المنتج " ، من المفترض أن ترى خيارًا جديدًا يسمى " منتج تجريبي ".

حدد نوع منتج مخصص أثناء إنشاء منتج جديد

إضافة علامة تبويب نوع المنتج المخصص

ستعمل الوظيفة التالية على إنشاء علامة تبويب إعدادات جديدة لنوع منتجك المخصص. بهذه الطريقة ، يمكنك إضافة تفاصيل محددة إلى نوع المنتج الخاص بك والتي لم تتم مشاركتها مع أنواع المنتجات الأخرى.

الصق هذه الوظيفة لإنشاء علامة تبويب تفاصيل المنتج المخصص:

 add_filter ('woocommerce_product_data_tabs'، 'demo_product_tab') ؛
دالة demo_product_tab (علامات تبويب $) {

علامات التبويب $ ['demo'] = مجموعة (
'label' => __ ('منتج تجريبي'، 'dm_product')،
'target' => 'demo_product_options' ،
'class' => 'show_if_demo_product' ،
) ؛
إرجاع علامات التبويب $؛
}
}

تذكر استخدام معرّف product_type بدلاً من "demo" في $tabs['demo'] = array إذا كنت قد حددت نوع المنتج الخاص بك أعلاه.

المعلمات الثلاثة في المصفوفة التي استخدمناها هي:

التسمية: يحدد هذا اسم علامة تبويب المنتج المخصص.
الهدف: هذا يعيّن معرّفًا سنستخدمه لإضافة الإعدادات إلى علامة التبويب.
فئة: يتيح لك هذا التحقق من وقت إظهار علامة تبويب المنتج المخصص.

هنا ، في معلمة الفئة ، استخدمنا show_if_Demo_product ، مما يعني أن علامة التبويب هذه ستظهر فقط عند تحديد نوع منتجك المخصص.

علامة تبويب محددة لنوع المنتج المخصص

إضافة حقول علامة التبويب نوع المنتج المخصص

بعد ذلك ، دعنا نضيف بعض الإعدادات والحقول إلى علامة التبويب الخاصة بنا حتى تتمكن من تعيين الأسعار والخيارات المختلفة لنوع منتجك المخصص. لهذا ، أضف هذا الرمز إلى الملف الرئيسي للمكون الإضافي الخاص بك:

 add_action ('woocommerce_product_data_panels'، 'QL_custom_product_options_product_tab_content') ؛

وظيفة QL_custom_product_options_product_tab_content () {
// لا تنسى تغيير المعرف في div بالهدف الخاص بك من علامة تبويب المنتج
؟> <div class = 'panel woocommerce_options_panel'> <؟ php
؟> <div class = 'options_group'> <؟ php

woocommerce_wp_checkbox (مصفوفة (
'id' => '_enable_custom_product' ،
"label" => __ ("تمكين نوع المنتج المخصص") ،
)) ؛

woocommerce_wp_text_input (
مجموعة مصفوفة(
'id' => 'demo_product_info' ،
'label' => __ ('تفاصيل المنتج المخصص'، 'dm_product')،
'placeholder' => '' ،
'desc_tip' => 'true' ،
'description' => __ ('أدخل تفاصيل المنتج التجريبي.'، 'dm_product')،
"اكتب" => "نص"
)
) ؛


؟> </div>
</div> <؟ php
}

سيضيف هذا خيار مربع اختيار لتمكين نوع المنتج المخصص وحقل نص مخصص للمنتج. بالطبع ، يمكنك إضافة المزيد من الإعدادات باستخدام وظائف WooCommerce الأخرى ، مثل woocommerce_wp_select () لقائمة منسدلة ، و woocommerce_wp_textarea_input () لمنطقة النص ، وأكثر من ذلك بكثير.

ولكن بالنسبة إلى العرض التوضيحي الخاص بنا ، سنعرض فقط معلومات نصية بسيطة تتعلق بمسؤولي المنتج المخصص الذين يمكنهم التخصيص من الواجهة الخلفية.

خيارات محددة لنوع صنبور المنتج المخصص

يمكنك معرفة المزيد حول هذه الوظائف وكيفية استخدامها هنا.

حفظ حقول علامة تبويب نوع منتج WooCommerce المخصصة

الآن بعد أن قمنا بإنشاء إعدادات نوع المنتج الخاصة بنا ، يجب علينا حفظها في قاعدة البيانات الخاصة بنا. يتم ذلك باستخدام خطاف woocommerce_process_product_meta. لهذا ، سنستخدم سطور التعليمات البرمجية التالية:

 add_action ('woocommerce_process_product_meta'، 'save_demo_product_settings') ؛

وظيفة save_demo_product_settings ($ post_id) {

$ demo_product_info = $ _POST ['demo_product_info'] ؛

إذا (! فارغ ($ demo_product_info)) {
update_post_meta ($ post_id، 'demo_product_info'، esc_attr ($ demo_product_info)) ؛
}
}

بمجرد إضافة هذا الرمز إلى الملف الرئيسي للمكون الإضافي الخاص بك ، ستتمكن من حفظ إعدادات نوع المنتج المخصص عند تحديث منتج أو نشره.

إعدادات المنتج المحفوظة لنوع علامة تبويب المنتج المخصص

ومع ذلك ، فإن هذه الأكواد مخصصة للواجهة الخلفية فقط وستظهر الآن في الواجهة الأمامية لمنتجك حتى نحدد نموذجًا لـ WooCommerce لاستخدامه. لهذا ، سنستخدم الخطوة التالية من برنامجنا التعليمي لعرض المحتوى لنوع منتجنا المخصص.

أضف محتوى لنوع المنتج المخصص

لقد قمت للتو بإنشاء نوع المنتج المخصص لموقع الويب الخاص بك ، ولكنك تحتاج أيضًا إلى تحديد نوع المحتوى الذي تريده لنوع المنتج لـ WooCommerce. لهذا ، سنستخدم woocommerce_single_product_summary hook لإضافة معلومات المنتج التي أضفناها إلى علامة التبويب "تفاصيل المنتج المخصصة".

 add_action ('woocommerce_single_product_summary'، 'demo_product_front') ؛

وظيفة demo_product_front () {
منتج $ عالمي ؛
إذا ('demo' == $ product-> get_type ()) { 
echo (get_post_meta ($ product-> get_id ()، 'demo_product_info') [0]) ؛
}
}

تأكد من أن معرّف نوع المنتج الخاص بك يطابق الرمز if ('demo' == $product->get_type() ، كما ذكرنا أعلاه. بمجرد حفظ هذا الرمز ، سترى تفاصيل المنتج المخصصة الخاصة بك في المقدمة.

أكمل مقتطف الكود

من أجل راحتك ، قمنا بدمج الرموز المختلفة في مجموعة واحدة ، بحيث يمكنك ببساطة لصقها في الملف الرئيسي للمكون الإضافي الخاص بك وتحريره حسب الضرورة.

 <؟ php
/ **
* اسم البرنامج المساعد: نوع المنتج المخصص QuadLayers
* الوصف: البرنامج المساعد لإضافة نوع منتج مخصص إلى WooCommerce
* المؤلف: QuadLayers
* عنوان URL للمؤلف: https://www.quadlayers.com
* الإصدار: 1.0
* /


المعرفة ("ABSPATH") أو الخروج ؛

add_action ('init'، 'register_demo_product_type') ؛
وظيفة register_demo_product_type () {
تمتد فئة WC_Product_Demo إلى WC_Product {

الوظيفة العامة __construct (منتج $) {
$ this-> product_type = 'demo'؛
الأصل :: __ الإنشاء (المنتج $) ؛
}
}
}


add_filter ('product_type_selector'، 'add_demo_product_type') ؛
وظيفة add_demo_product_type (أنواع $) {
أنواع $ ['demo'] = __ ('منتج تجريبي'، 'dm_product')؛
عودة أنواع $؛ 
}


add_filter ('woocommerce_product_data_tabs'، 'demo_product_tab') ؛
دالة demo_product_tab (علامات تبويب $) {

علامات التبويب $ ['demo'] = مجموعة (
'label' => __ ('منتج تجريبي'، 'dm_product')،
'target' => 'demo_product_options' ،
'class' => 'show_if_demo_product' ،
) ؛
إرجاع علامات التبويب $؛
}


add_action ('woocommerce_product_data_panels'، 'demo_product_tab_product_tab_content') ؛
وظيفة demo_product_tab_product_tab_content () {
؟> <div class = 'panel woocommerce_options_panel'> <؟ php
؟> <div class = 'options_group'> <؟ php


woocommerce_wp_checkbox (مصفوفة (
'id' => '_enable_custom_product' ،
"label" => __ ("تمكين نوع المنتج المخصص") ،
)) ؛


woocommerce_wp_text_input (
مجموعة مصفوفة(
'id' => 'demo_product_info' ،
'label' => __ ('تفاصيل المنتج التجريبي'، 'dm_product')،
'placeholder' => 'أدخل النص الذي سيظهر في الواجهة الأمامية هنا' ،
'desc_tip' => 'true' ،
'description' => __ ('أدخل معلومات المنتج التجريبي.'، 'dm_product')،
"اكتب" => "نص"
)
) ؛
؟> </div>
</div> <؟ php
}

add_action ('woocommerce_process_product_meta'، 'save_demo_product_settings') ؛

وظيفة save_demo_product_settings ($ post_id) {

$ enable_custom_product = isset ($ _POST ['_ enable_custom_product'])؟ 'نعم / لا'؛
update_post_meta ($ post_id، '_enable_custom_product'، $ enable_custom_product)؛
$ demo_product_info = $ _POST ['demo_product_info'] ؛

إذا (! فارغ ($ demo_product_info)) {
update_post_meta ($ post_id، 'demo_product_info'، esc_attr ($ demo_product_info)) ؛
}
}


add_action ('woocommerce_single_product_summary'، 'demo_product_front') ؛

وظيفة demo_product_front () {
منتج $ عالمي ؛
إذا ('demo' == $ product-> get_type ()) { 
echo (get_post_meta ($ product-> get_id ()، 'demo_product_info') [0]) ؛
}
}

بالطبع ، جميع الخطوات التي أظهرناها في هذا البرنامج التعليمي بسيطة جدًا ، ويمكنك ويجب عليك محاولة إضافة المزيد من الحقول والإعدادات والمحتوى إلى نوع منتجك المخصص. أيضًا ، كما ترى ، هذا البرنامج التعليمي ثقيل بعض الشيء في البرمجة. لذلك ، إذا كنت جديدًا على WordPress أو الترميز ، فيمكنك دائمًا طلب مساعدتنا في قسم التعليقات. علاوة على ذلك ، يمكنك أيضًا القيام بالأشياء بشكل مختلف تمامًا واستخدام ملف function.php الخاص بالقالب الخاص بك لإضافة كل هذه الرموز إلى موقع الويب الخاص بك.

سيؤدي ذلك إلى تخطي الخطوة في إنشاء مكون إضافي لبرنامج WordPress ، لكن لاحظ أن تغييراتك ستختفي إذا قمت بتغيير أو تحديث المظهر الخاص بك (ما لم تستخدم سمة فرعية.) نوصي بشدة باستخدام مكون إضافي لهذه الطريقة ، ولكن إذا كنت تفضل ذلك لاستخدام ملف jobs.php ، يمكنك القيام بذلك.

تذكر دائمًا أن تأخذ نسخة احتياطية كاملة من موقع WordPress الخاص بك قبل إجراء تغييرات على ملف jobs.php. بهذه الطريقة ، في حالة حدوث أي خطأ ، يمكنك دائمًا الرجوع إلى إصدار العمل.

ما عليك سوى النقر على المظهر> محرر ملف السمة والنقر على وظائف أو وظائف السمة .php على الشريط الجانبي الأيمن لملفات السمات.

فتح محرر ملف السمة لاستخدام ملف الوظائف

بعد ذلك ، يمكنك فقط لصق الرموز أعلاه في المحرر والنقر فوق تحديث الملف للإنهاء.

إضافة أكواد إلى ملف وظائف السمة

استنتاج

وهذا ينهي جميع الخطوات المطلوبة لإنشاء نوع منتج WooCommerce مخصص برمجيًا . دعنا نلخص بسرعة جميع الخطوات اللازمة لإنشاء نوع المنتج المخصص الخاص بك:

  • قم بإنشاء وتنشيط المكون الإضافي لنوع منتج WooCommerce المخصص الخاص بك.
  • سجل نوع المنتج الجديد الخاص بك.
  • أضف علامة تبويب لنوع منتجك المخصص لصفحة المنتجات الفردية.
  • أضف الحقول والإعدادات إلى علامة تبويب المنتج الخاص بك.
  • احفظ الحقول والإعدادات في علامة تبويب المنتج الخاص بك.
  • اعرض محتوى علامة تبويب المنتج في الواجهة الأمامية.

أخيرًا ، من أجل راحتك ، قمنا بدمج جميع أجزاء التعليمات البرمجية المختلفة لتزويدك بالكود الكامل. لذلك ، يمكنك فقط نسخ الكود بالكامل من ملفك الرئيسي وإجراء التغييرات حسب الضرورة.

نأمل أن تجد هذه المقالة مفيدة. إذا كنت تريد معرفة المزيد حول إعداد العديد من إعدادات WooCommerce وخيارات المنتجات ، فلماذا لا تحقق من بعض مقالاتنا الأخرى:

  • كيفية إعداد خصومات WooCommerce الجماعية
  • كيفية إنشاء مستخدم WordPress برمجيًا
  • إنشاء حقل مخصص لبرنامج WordPress برمجيًا