إعداد بيئة تطوير إضافات WooCommerce
لبدء تطوير إضافات WooCommerce، من الضروري أولاً إنشاء بيئة تطوير محلية متخصصة. يُنصح باستخدام…Local by FlywheelأوXAMPPقم بإعداد بيئة التكامل المناسبة، وقم بتثبيت أحدث إصدارات من WordPress و WooCommerce. تأكد من أن…wp-config.phpسيتم تضمين الوثيقة في الملف.WP_DEBUGتم تعيينها كـtrue، من أجل التقاط الأخطاء والتحذيرات أثناء عملية التطوير.
عادةً ما يبدأ إنشاء الهيكل الأساسي للإضافة من ملف رئيسي واحد. هذا الملف هو نقطة الدخول إلى الإضافة، ويجب أن يحتوي على معلومات رأس الإضافة القياسية اللازمة لكي يتعرف عليها نظام ووردبريس. يجب أن يكون اسم الملف الرئيسي للإضافة فريدًا، على سبيل المmy-custom-woocommerce.phpفيما يلي مثال على هيكل ملف الإضافة (البرنامج الإضافي) الأساسي.
<?php
/**
* Plugin Name: My Custom WooCommerce Features
* Description: 为WooCommerce添加自定义电商功能。
* Version: 1.0.0
* Author: Your Name
*/
if ( ! defined( 'ABSPATH' ) ) {
exit; // 防止直接访问
} في الهيكل الأساسي، من المهم أيضًا فهم آلية تحميل الاعتمادات (dependencies) الخاصة بـ WooCommerce. يجب أن يتم كتابة كود الإضافة (plugin code) بطريقة تتوافق مع هذه الآلية.plugins_loadedأوinitيتم تنفيذ الكود بعد استخدام الـ “hook” للتأكد من أن الفئات الأساسية لـ WooCommerce قد تم تحميلها بالفعل. يمكنك استخدام هذا الكود في أي مكان من الكود الخاص بك في ووردبريس لضمان أن الوظائف الأساسية لـ WooCommerce تعمل بشكclass_exists( 'WooCommerce' )تحقق من أن منصة WooCommerce قد تم تفعيلها، فهذه هي الخطوة الأولى نحو التوافق الجيد مع الأنظمة الأخرى.
القراءة الموصى بها تحليل متعمق لتطوير إضافات ووردبريس: بناء وظائف مخصصة من الصفر。
تطوير الميزات الأساسية: استخدام الخطافات (hooks) والمرشحات (filters)
تكمن قوة منصة WooCommerce في قابليتها للتوسعة، وهو ما يتم تحقيقه بشكل أساسي من خلال “خطافات الإجراءات” (Action Hooks) و“خطافات المرشحات” (Filter Hooks). تسمح خطافات الإجراءات بتنفيذ كود مخصص في أوقات محددة، بينما تسمح خطافات المرشحات بتعديل البيانات المرسلة إلى المنصة.
كيفية إضافة حقول خاصة لعملية الدفع؟
إحدى الاحتياجات الشائعة هي إضافة حقول إضافية إلى صفحة الدفع. ويمكن تحقيق ذلك عن طريق…woocommerce_checkout_fieldsيتم تنفيذ ذلك باستخدام مرشحات (filters). يوضح الكود أدناه كيفية إضافة حقل بسيط لـ “رقم الضريبة الشركاتية” إلى منطقة معلومات الفاتورة.
add_filter( 'woocommerce_checkout_fields', 'my_custom_checkout_fields' );
function my_custom_checkout_fields( $fields ) {
$fields['billing']['billing_vat_number'] = array(
'label' => __('税号 / VAT Number', 'woocommerce'),
'placeholder' => _x('请输入您的公司税号', 'placeholder', 'woocommerce'),
'required' => false, // 根据需求设置为 true 或 false
'class' => array('form-row-wide'),
'clear' => true
);
return $fields;
} بعد إضافة الحقول، ستحتاج أيضًا إلى استخدامها في العمليات أو الوظائف المناسبة داخل النظام.woocommerce_checkout_update_order_metaتقوم العملية بحفظ قيم الحقول في معلومات الطلب (metadata)، ومن ثم استخدامها.woocommerce_admin_order_data_after_billing_addressوwoocommerce_order_details_after_customer_detailsيتم عرض هذه القيمة على صفحات الطلبات سواء في الواجهة الأمامية (المستخدم) أو في الواجهة الخلفية (الخادم).
تعديل منطق حساب أسعار المنتجات
مشهد أساسي آخر هو تعديل أسعار المنتجات وفقًا لقواعد مخصصة. على سبيل المثال، تقديم خصومات إضافية لأدوار مستخدمين معينين. يمكن تحقيق ذلك من خلال…woocommerce_product_get_priceيتم تنفيذ ذلك باستخدام مرشح (filter). يتم استدعاء هذا المرشح في كل مرة يتم فيها الحصول على الأسعار، مما يتيح إمكانية تحديد الأسعار بشكل ديناميكي.
add_filter( 'woocommerce_product_get_price', 'custom_role_based_discount', 10, 2 );
function custom_role_based_discount( $price, $product ) {
if ( is_user_logged_in() && current_user_can( 'wholesale_customer' ) ) {
// 为批发客户提供15%的折扣
$price = $price * 0.85;
}
return $price;
} إنشاء واجهة إدارة مخصصة وخيارات تكوين
لجعل وظائف الإضافة الخاصة بك قابلة للتكوين، من الضروري عادةً إنشاء صفحة إعدادات إدارية واضحة. يوفر ووردبريس (WordPress) الأدوات اللازمة لذلك.Settings APIأضف صفحات الإعدادات والمناطق (الأقسام) والحقول بطريقة منظمة وموحدة.
القراءة الموصى بها دليل شامل لإضافات WooCommerce وتفسير مفصل للكود: من التثبيت إلى التطوير المخصص。
إضافة صفحة تصنيف جديدة في إعدادات WooCommerce
أفضل الممارسات هي دمج إعدادات الإضافة الخاصة بك مع هيكل الإعدادات الموجود مسبقًا في WooCommerce. يمكنك استخدام…woocommerce_get_settings_pagesلإضافة صفحة إعدادات جديدة باستخدام فلتر، يجب أولاً إنشاء كلاس يرث من…WC_Settings_Pageفئة (class).
add_filter( 'woocommerce_get_settings_pages', 'add_my_custom_settings_page' );
function add_my_custom_settings_page( $settings ) {
$settings[] = include plugin_dir_path( __FILE__ ) . 'includes/class-wc-settings-my-plugin.php';
return $settings;
} بعد ذلك، فيclass-wc-settings-my-plugin.phpتم تعريف هذا الكلاس في الملف، وقد تم إعادة كتابته (أي تم تعديل كوده).get_settings()طريقة لإرجاع مصفوفة حقول الإعدادات الخاصة بك.
class WC_Settings_My_Plugin extends WC_Settings_Page {
public function __construct() {
$this->id = ‘my-plugin’;
$this->label = __(‘我的插件’, ‘my-text-domain’);
parent::__construct();
}
public function get_settings() {
return array(
array(
‘title’ => __(‘基本配置’, ‘my-text-domain’),
‘type’ => ‘title’,
‘id’ => ‘my_plugin_options’
),
array(
‘title’ => __(‘启用功能’, ‘my-text-domain’),
‘desc’ => __(‘启用自定义折扣功能’),
‘id’ => ‘my_plugin_enable_discount’,
‘default’ => ‘no’,
‘type’ => ‘checkbox’
),
// ... 更多设置字段
);
}
} حفظ وتحقق من بيانات الإعدادات
من خلالSettings APIوWC_Settings_Pageالإعدادات التي تتم إضافتها إلى الفئة يتم معالجتها تلقائيًا بواسطة نواة WooCommerce عند عملية الحفظ والتحقق. ومع ذلك، لا يزال بإمكانك التحكم فيها بشكل مباشر.woocommerce_admin_settings_sanitize_option_{option_id}تقوم الفلاتر بتنظيف وتحقق إضافي لقيم الحقول المحددة، لضمان دقة وأمان البيانات المدخلة.
الميزات المتقدمة وجداول البيانات المخصصة
عندما يحتاج الإضافة إلى تخزين بيانات معقدة أو كميات كبيرة من البيانات العلاقية، قد يكون استخدام جداول البيانات المخصصة في ووردبريس أفضل من الاعتماد على…wp_postmetaالجدول أكثر كفاءة. عادةً ما يتم إنشاؤه عند تفعيل الإضافة (البرنامج الإضافي).
يتم إنشاء جدول البيانات عند تفعيل الإضافة.
أنت بحاجة إلى استخدام…register_activation_hookيتم استخدام “الخطافات” (hooks) لتحديد الدوال التي ستتم تنفيذها عند تفعيل الإضافة (plugin). داخل هذه الدوال، يمكن استخدام…$wpdbالكائنات و…dbDelta()هناك دوال متاحة لإنشاء أو تحديث هيكل جداول البيانات بشكل آمن.dbDelta()تتطلب الدالة أن يكون تنسيق جمل SQL صارمًا للغاية.
register_activation_hook( __FILE__, ‘my_plugin_create_tables’ );
function my_plugin_create_tables() {
global $wpdb;
$charset_collate = $wpdb->get_charset_collate();
$table_name = $wpdb->prefix . ‘my_plugin_subscriptions’;
$sql = “CREATE TABLE $table_name (
id bigint(20) NOT NULL AUTO_INCREMENT,
user_id bigint(20) NOT NULL,
product_id bigint(20) NOT NULL,
status varchar(20) DEFAULT ‘active’ NOT NULL,
created_at datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
PRIMARY KEY (id),
KEY user_id (user_id),
KEY product_id (product_id)
) $charset_collate;”;
require_once( ABSPATH . ‘wp-admin/includes/upgrade.php’ );
dbDelta( $sql );
} دمج البيانات المخصصة في استعلامات WooCommerce
بعد إنشاء جداول مخصصة، قد تحتاج إلى دمج هذه البيانات مع نظام طلبات أو بحث المنتجات في WooCommerce. على سبيل المثال، يمكنك إضافة عمود في قائمة المنتجات الخاصة بالمدير يعرض عدد المستخدمين المشتركين في الخدمة. يمكنك استخدام…manage_edit-product_columnsوmanage_product_posts_custom_columnالمرشحات (Filters) والإجراءات (Actions)، بالاقتران مع استعلامات قاعدة البيانات الخاصة بك، تساعد في تحقيق هذه الميزة. هذا يوضح كيفية دمج البيانات الخارجية بسلاسة مع تدفق العمل الافتراضي لـ WooCommerce.
القراءة الموصى بها دليل شامل لإنشاء موقع تجاري باستخدام WooCommerce: إنشاء موقع تجاري إلكتروني ذو معدل تحويل عالي من الصفر。
الملخصات
تطوير إضافات مخصصة لـ WooCommerce يعتبر مشروعًا منهجيًا يتطلب عدة خطوات، بدءًا من إعداد البيئة المناسبة، مرورًا باستخدام أدوات التكامل (الـ “hooks”)، وإنشاء واجهات إدارة سهلة الاستخدام، وحتى معالجة البيانات المخصصة عند الحاجة. الجزء الأساسي في هذه العملية يكمن في فهم نظام الـ “hooks” الخاص بـ WooCommerce بعمق، حيث يسمح لك هذا النظام بإدخال كود مخصص تقريبًا في أي مرحلة من مراحل عملية التشغيل. اتباع معايير البرمجة الخاصة بـ WordPress وـ WooCommerce، وكتابة كود منظم وآمن وفعال، هو مفتاح ضمان استقرار الإضافة على المدى الطويل، وسهولة صيانتها، وتوافقها مع الإصدارات المستقبلية. من خلال تطبيق الإرشادات المذكورة أعلاه، ستتمكن من إنشاء إضافات تعزز وظائف موقع التجارة الإلكترونية بشكل فعال ومهني، لتلبية احتياجات عم
الأسئلة الشائعة الأسئلة المتداولة
ما هي المعرفة المسبقة المطلوبة لتطوير إضافة (Plugin) لبرنامج WooCommerce باستخدام الكود ###؟
يجب أن تكون على دراية بأساسيات لغة البرمجة PHP ومفاهيم البرمجة الكائنية. بالإضافة إلى ذلك، من الضروري أن تمتلك فهمًا واضحًا لآليات ووردبريس الأساسية مثل الخطافات (Hooks) والمرشحات (Filters) والإجراءات (Actions). سيساعدك معرفة HTML وCSS وJavaScript الأساسية في تطوير وظائف التفاعل الأمامية للموقع. كما أن الإلمام بالهياكل البيانات الأساسية لـ WooCommerce، مثل الطلبات والمنتجات والكوبونات والمستخدمين، سيجعل عملية التطوير أكثر سلاسة.
كيف يمكنني التأكد من أن الإضافة المخصصة التي قمت بإنشائها تتوافق مع الإصدارات المستقبلية من WooCommerce؟
اتباع المعايير الرسمية للتطوير وأفضل الممارسات هو الشرط الأساسي. تجنب تعديل ملفات ووكوميرس (WooCommerce) الأساسية مباشرة، وقم دائمًا بتوسيع وظائف الموقع عن طريق الاستخدام السليم للأدوات (hooks) المقدمة رسميًا من قبل الشركة المطورة. لا تستخدم في الكود الدوال أو الطرق التي تم التوقف عن استخدامها (deprecated functions/methods)، وتابع بعناية سجلات تحديثات ووكوميرس. يجب أن تذكر في الإضافات (plugins) الإصدار الأحدث من ووكوميرس الذي تم اختباره بشكل كامل. قم بإجراء اختبارات شاملة لإضافاتك، خاصة قبل وبعد إصدار تحديثات كبيرة لووكوميرس.
هل يمكنني الوصول إلى جميع واجهات برمجة التطبيقات (APIs) دون شراء إضافة (extension) من WooCommerce؟
نعم، يتم تفعيل واجهة برمجة التطبيقات الرئيسية (REST API) الخاصة بـ WooCommerce تلقائيًا بعد التثبيت، وهي توفر نقاط اتصال (endpoints) كاملة لعمليات القراءة والكتابة (CRUD) لنماذج البيانات الرئيسية مثل الطلبات والمنتجات والعملاء. يمكنك استخدام هذه الواجهات لإجراء عمليات على هذه البيانات. لكن بعض الميزات الخاصة أو نقاط الاتصال المخصصة التي توفرها الإضافات المدفوعة (مثل خدمات الاشتراك أو أنظمة العضوية) قد تتطلب تفعيل الإضافة المعنية لكي يتم الوصول إليها عبر الواجهة البرمجية. تتم التحكم في صلاحيات استخدام الواجهة البرمجية الأساسية عبر نظام أدوار المستخدمين والصلاحيات الخاص بـ WordPress.
ما هي الأدوات المفيدة عند تصحيح أخطاء إضافات WooCommerce؟
أولاً، تأكد من تفعيل وضع التصحيح (Debugging Mode) في ووردبريس.wp-config.phpإعدادات في المنتصف.define(‘WP_DEBUG’, true);سيتم عرض الأخطاء والتحذيرات على الشاشة أو تسجيلها في السجلات (اللوغ). يمكنك استخدام أدوات المطورين في المتصفح (F12) لفحص وتصحيح أخطاء الجافا سكريبت وطلبات AJAX في الجزء الأمامي من الموقع. لتتبع منطق الكود، يمكنك تثبيت إضافات لمراقبة الاستعلامات، مثل “Query Monitor”, والتي تساعدك في تحليل استعلامات قاعدة البيانات وتنفيذ الوظائف المختلفة وتحديد نقاط الضعف في الأداء. بالنسبة للعمليات المعقدة، من المهم أيضًا فحص ملفات السجلات الخاصة بـ WooCommerce (الموجودة في لوحة تحكم WordPress تحت قسم “الحالة” > “السجلات”).
ما التالي، ما التالي؟
القراءة الموسعة والمعرفة العملية
فيما يلي بعض الموضوعات ذات الصلة بموضوع هذه المقالة وهي مناسبة لمزيد من القراءة المتعمقة. وغالباً ما يكون من الأفضل إعطاء الأولوية للبدء بالمقال الأقرب إلى مشكلتك الحالية ثم التوسع تدريجياً إلى المواضيع المحيطة.
- دليل تكوين تحسين ذاكرة التخزين المؤقت لموقع ووكوميرس (WooCommerce) الكامل: لزيادة سرعة مواقع التجارة الإلكترونية على ووردبريس ومعدلات التحويل
- دليل نهائي لتثبيت ووردكامرس (WooCommerce) واختيار القوالب (Themes) لعام 2026
- دليل شامل لإنشاء مواقع التجارة الإلكترونية باستخدام WooCommerce: من الصفر إلى إنشاء موقع تجاري إلكتروني محترف
- معنى وقيمة ووردبريس (WordPress)
- دليل شامل للتعرف على WooCommerce باللغة الصينية: بناء متجرك الإلكتروني من الصفر