أدوات ووكوميرس (WooCommerce Plugins and Filters): الميزات والاختلافات
عند القيام بتطوير مخصص لـ WooCommerce، من الضروري جدًا فهم آليتي التوسعة الرئيسيتين الخاصتين به: الخطافات (Hooks) والمرشحات (Filters). كلاهما جزء مهم من البنية الأساسية لـ WordPress، لكنهما يخدمان أغراضًا مختلفة.
Hooksالـ “hooks” (الخطافات) هي واجهات مخصصة في نظام WooCommerce تُستخدم أثناء تنفيذ مراحل معينة من دورة حياة الكود، مما يسمح لك بإضافة كود خاص بك لتنفيذ إجراءات أو وظائف جديدة. تنقسم الخطافات إلى نوعين:Actions(الإجراءات) وFilters(المرشحات/الفلاتر): ببساطة، خطافات الأفعال (Action Hooks) تُستخدم لـ “القيام بشيء ما”، وهي لا تُرجع أي قيمة، بل توفر فقط فرصة لتنفيذ الكود المخصص الخاص بك في لحظة معينة. على سبيل المثال، يمكن استخدامها لإضافة شريط إعلاني بعد تحميل صفحة سلة التسوق. أما خطافات المرشحات (Filter Hooks) فهي تُستخدم لـ “تعديل شيء ما”؛ فهي تتلقى قيمة معينة، وتسمح لك بتعديل هذه القيمة، ثم يجب إرجاع القيمة المعدلة. على سبيل المثال، يمكن استخدام
Filters(المرشح/الفلتر) هو نوع من “الخطافات” (hooks)، ولكن بسبب معناه الخاص المتمثل في “تعديل البيانات ثم إرجاعها”, غالبًا ما يتم ذكره بالتزامن مع “خطافات الإجراءات” (action hooks) عند الحديث عنها. من المفاهيم الشائعة الخاطئة استخدام “خطافات الإجراءات” لمحاولة إرجاع قيم، وهو ما قد يؤدي إلى فشل الكود. التمييز بوضوح بين ما إذا كانت احتياجاتك هي “تنفيذ عملية مع
القراءة الموصى بها فهم أعمق لـ hooks و filters في WordPress الأساسية: من الأساسيات إلى البرمجة العملية.。
الواجهات الأساسية للخطافات (hooks) والمرشحات (filters)
يعتمد استخدام الخطافات (hooks) والمرشحات (filters) بشكل أساسي على عدد من الدوال الأساسية التي يوفرها ووردبريس (WordPress). إتقان هذه الدوال هو أساس أي تخصيصات يتم إجراؤها في ووردبريس.
الدالة الأساسية لخطاف الإجراء (Action Hook)
الوظائف الأكثر شيوعًا هي:add_action()تُستخدم هذه الدالة لـ “الاشتراك” في دالتك المخصصة مع خطاف (hook) معين. تتضمن صيغتها الأساسية اسم الخطاف، والدالة المكتوبة للاستجابة للحدث (callback function)، ومستوى الأولوية (priority)، بالإضافة إلى عدد المعاملات (parameters) المقبولة. يحدد مستوى الأولوية ترتيب تنفيذ الدوال عندما يتم تثبيت عدة دوال على نفس الخطاف؛ كلما كان الرقم أصغر، كان
add_action(‘woocommerce_before_add_to_cart_button’, ‘my_custom_message’, 10, 0 );
function my_custom_message() {
echo ‘<p>قبل الشراء، يرجى التحقق من المواصفات!</p>’;
} الكود المذكور أعلاه يقوم بعرض رسالة تنبيه مخصصة قبل النقر على زر “إضافة إلى سلة التسوق”.
الدالة الأساسية لخطافات المرشحات (Filter Hooks)
وبالتالي، لتعديل البيانات، يجب استخدام…add_filter()الدالة… هيكلها كالتالي:add_action()مشابه، لكن دالة الاستدعاء الخاصة بك يجب أن تتلقى قيمة كمدخل وتعيد قيمة كناتج.
add_filter( ‘woocommerce_currency_symbol’, ‘change_currency_symbol’, 10, 2 );
function change_currency_symbol( $currency_symbol, $currency ) {
if ( $currency == ‘USD’ ) {
$currency_symbol = ‘US$’;
}
return $currency_symbol;
} يقوم هذا المثال بتغيير رمز الدولار من “$” إلى “US$”.
القراءة الموصى بها تحسين تحويلات التجارة الإلكترونية: نظرة متعمقة على استراتيجيات تحسين المنتجات على صفحة WooCommerce。
حالة عملية: تخصيص صفحة المنتج
صفحة المنتج هي جزء أساسي من نظام WooCommerce، ويمكن تغيير تصميمها وطريقة عرض المعلومات عليها بشكل كبير من خلال استخدام الـ “hooks” (الأدوات المتاحة في النظام). فيما يلي بعض الـ “hooks” التي قد تساعدك في تحديد نقا
قبل منطقة “إضافة إلى سلة التسوق”، أضف المحتوى المطلوب.
woocommerce_before_add_to_cart_formوwoocommerce_before_add_to_cart_buttonهذان هما من الخيارات (الـ “hooks”) الشائعة الاستخدام. الأول يتم تنفيذه قبل بدء النموذج بأكمله، ومناسب لإضافة شرائط عرضية (بانرات) أو محتوى تحذيري؛ أما الثاني فيتم تنفيذه بين مربعات إدخال الأرقام و
add_action( ‘woocommerce_before_add_to_cart_button’, ‘add_product_notes_field’ );
function add_product_notes_field() {
echo ‘<div class="“product-notes”"><label>متطلبات التخصيص:</label><textarea name="“customer_notes”"></textarea></div>’;
} تعديل نتائج عرض ملخص المنتج
وصف المنتج المختصر:woocommerce_short_descriptionتحكم في المرشحات (Filters): يمكنك استخدامها لتعديل المحتوى الوصفي، مثل إضافة نص عام بعد جميع الوصفات.
add_filter( ‘woocommerce_short_description’, ‘append_to_short_description’ );
function append_to_short_description( $desc ) {
$desc .= ‘<p><em>يدعم هذا المنتج إمكانية الاسترداد خلال 7 أيام دون الحاجة إلى إعطاء أسباب.</em></p>’;
return $desc;
} حالة عملية: تخصيص عربة التسوق وعملية الدفع
عربة التسوق وصفحة الدفع هما الركيزتان الأساسيتان في عملية التحويل (أي عملية إتمام عملية الشراء)، وتحسينهما يمكن أن يعزز مباشرة تجربة المستخدم ومعدل إتمام الطلبات.
أضف معلومات عامة بعد جدول سلة التسوق.
woocommerce_after_cart_tableتسمح أداة “الخطاف” (Hook) بإدراج محتوى بعد جدول عناصر سلة التسوق وقبل ملخص سلة التسوق، مثل تلميحات حول أكواد الخصومات أو شرح تقديرات تكاليف الشحن.
add_action( ‘woocommerce_after_cart_table’, ‘add_cart_promotion_notice’ );
function add_cart_promotion_notice() {
echo ‘<div class="“cart-promotion”">شحن مجاني للطلبات التي تزيد قيمتها عن 500 يوان!</div>’;
} تعديل حقول التسوية
نظام حقول الدفع في WooCommerce قابل للتكوين بشكل كبير، ويستخدم العديد من المرشحات (filters). على سبيل المثال، إذا أردت تعديل عنوان حقل “العنوان 2” (Address 2) أو الرموز المستخدمة كمحلولات بديلة (placeholders)، فيمكنك استخدام الميwoocommerce_default_address_fieldsأو بشكل أكثر تحديدًا.woocommerce_billing_fieldsمرشحات.
القراءة الموصى بها دليل WooCommerce: بناء موقع تجارة إلكترونية قوي على WordPress من الصفر.。
add_filter( ‘woocommerce_default_address_fields’, ‘modify_address_2_field’ );
function modify_address_2_field( $fields ) {
if ( isset( $fields[‘address_2’] ) ) {
$fields[‘address_2’][‘label’] = ‘公寓、套房、单元等(可选)’;
$fields[‘address_2’][‘placeholder’] = ‘可不填’;
}
return $fields;
} بهذه الطريقة، يمكنك إخفاء أي حقول تسوية، أو إعادة ترتيبها، أو تغيير أسمائها، أو إضافة حقول جديدة، بحيث تتوافق تمامًا مع احتياجات عملك.
الملخصات
يتيح لك استخدام خيوط (hooks) ومرشحات (filters) في WooCommerce إمكانية التخصيص العميق لكل تفصيل في موقع التجارة الإلكترونية دون الحاجة إلى تعديل الكود الأساسي. ابدأ بفهم الفروق الأساسية بين الخيوط والمرشحات، ثم امتلك القدرة على استخدامها بشكل فعال.add_action()وadd_filter()هاتان الدالتان الأساسيتان، ومن خلال تطبيقهما في المناطق الرئيسية مثل صفحة المنتج، سلة التسوق، وعملية الدفع، يمكنك بناء متجر إلكتروني مخصص للغاية وقوي الميزات تدريجياً. تذكر دائماً أنه يجب إضافة الكود المخصص إلى المواضيع الفرعية (subtopics).functions.phpيتم تنفيذ ذلك إما داخل الملفات نفسها أو من خلال إضافات مخصصة، وهذه هي أفضل الممارسات لضمان أمان عمليات التحديث.
الأسئلة الشائعة الأسئلة المتداولة
###… أين يجب أن أضع كودي المخصص؟
أكثر الطرق أمانًا وأفضلها هو وضع المحتوى ضمن موضوع فرعي (sub-topic) تابع للموضوع الذي تستخدمه حاليًا.functions.phpموجود في الملف.
هذا الإجراء سيضمن عدم تغطية الكود المخصص الخاص بك عند تحديث الموضوعات. وإذا لم تكن تستخدم الموضوعات الفرعية (subtopics)، فيمكنك أيضًا إنشاء إضافة (plugin) مخصصة لتخزين هذا الكود.
كيف يمكنني العثور على الخطاف (hook) أو المرشح (filter) المحدد الذي أحتاجه؟
يمكنك الاطلاع على وثائق المطورين الرسمية الخاصة بـ WooCommerce، والتي توفر فهرسًا شاملًا لجميع الـ “هوكات” (hooks) المتاحة.
بالإضافة إلى ذلك، في محرر الكود الخاص بووردبريس (WordPress)، أو باستخدام إضافات مثل “Simply Show Hooks”, يمكن عرض جميع الهوكات (hooks) المتاحة على الصفحة الأمامية بشكل مرئي مباشر، وهو أمر مفيد للغاية لتحديد المواقع المطلوبة بسرعة.
لقد تم استخدام "الخطافات" (hooks) في الكود، ولكن الكود لم يعمل كما هو متوقع. كيف يمكن التحقيق في المشكلة؟
أولاً، قم بفحص كودك للتأكد من عدم وجود أخطاء نحوية، فهي قد تتسبب في فشل تفسير PHP للكود. تأكد أيضًا من أن دالة الاستدعاء العكسي (callback function) معرفة بشكل صحيح، وأن جميع التفاصيل المتعلقة بها مكadd_actionأوadd_filterأولوية العناصر وعدد المعاملات صحيحان.
ثانيًا، تأكد من أن اسم الهوك (hook) صحيح، وأنه يتم تنفيذه بالفعل في الموقع المتوقع على الصفحة. استخدم الأدوات المناسبة للتحقق من ذلك.error_logأوvar_dumpإجراء عمليات تصحيح بسيطة وعرض النتائج يمكن أن يساعدك في تحديد ما إذا كانت الدالة قد تم تنفيذها بالفعل أم لا.
ما الفرق بين تعديل ملفات قالب WooCommerce واستخدام الهاكات (hooks)؟
تغطية ملفات قوالب WooCommerce مباشرةً (عن طريق نسخها إلى دليل الموضوع الخاص بك) هي طريقة مباشرة لتغيير المظهر والهيكل، ولكنها عادةً ما تُستخدم لتعديل هيكل الناتج HTML.
أما الخطافات (hooks) فهي أكثر ملاءمة لإضافة ميزات جديدة، تعديل البيانات، أو إدخال محتوى في مواقع محددة. توفر الخطافات مرونة وقابلية للصيانة أعلى، خاصة عند توسيع الوظائف المنطقية، ويجب اعتبارها الخيار الأول. غالبًا ما يتم استخدام تقنيات تغطية القوالب (template overrides) بالتزامن مع الخطافات لتحقيق أفضل النتائج.
ما التالي، ما التالي؟
القراءة الموسعة والمعرفة العملية
فيما يلي بعض الموضوعات ذات الصلة بموضوع هذه المقالة وهي مناسبة لمزيد من القراءة المتعمقة. وغالباً ما يكون من الأفضل إعطاء الأولوية للبدء بالمقال الأقرب إلى مشكلتك الحالية ثم التوسع تدريجياً إلى المواضيع المحيطة.
- التعمق في استخدام WooCommerce: دليل شامل لحلول التجارة الإلكترونية النهائية، من البناء إلى التحسين
- تحليل شامل لـ WooCommerce: بناء موقع تجاري إلكتروني قوي على WordPress من الصفر
- ١٠ نصائح عملية لزيادة معدلات التحويل في مواقع ووكوميرس (WooCommerce)
- دليل شامل لقوالب صفحات المنتجات المخصصة في WooCommerce
- دليل تحسين مواقع ووكوميرس (WooCommerce) لتكون صديقة لمحركات البحث (SEO): الاستراتيجيات الرئيسية لزيادة معدلات التحويل