دليل أساسي وعملي لتطوير إضافات WooCommerce

قراءة 3 دقائق
2026-03-14
2026-06-04
2,134
أنا أحصل على عمولة عند التسوق عبر الروابط أدناه، ولا يُضاف أي تكلفة عليك.

لماذا نحتاج إلى تطوير إضافات WooCommerce؟

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

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

إنشاء بيئة تطوير لتوسيعات WooCommerce

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

القراءة الموصى بها تحليل متعمق لـ WooCommerce: دليل شامل من التكوين الأساسي إلى العمليات الفعالة

إعداد بيئة التطوير المحلية.

ننصح باستخدام بيئات التكامل المبنية على الخوادم المحلية، مثل Local by Flywheel أو Laragon أو XAMPP. هذه الأدوات تسمح بتهيئة بيئة عمل مناسبة لـ PHP و MySQL وخوادم الويب (مثل Apache أو Nginx) بسرعة على الكمبيوتر الشخصي. من المهم التأكد من أن إصدار PHP متوافق مع إصدارات WordPress و WooCommerce التي تريدها استخدامها؛ يُنصح عمومًا باستخدام إصدار PHP 7.4 أو أحدث. بالإضافة إلى ذلك، من الضروري تثبيت محرر كود على الجهاز المحلي، مثل Visual Studio Code أو PhpStorm، حيث أن هذه المحررات توفر دعمًا ممتازًا لتطوير تطبيقات WordPress و WooCommerce.

خادم ووردبريس من شركة UltaHost
ضمان استرداد المال خلال 30 يومًا، عرض نطاق ترددي وقواعد بيانات غير محدودين، حماية مجانية ضد هجمات DDoS، خصم 50% عند الشراء لمدة 3 سنوات (السعة المتاحة: 501–4 تيرابايت).

تثبيت ووردبريس (WordPress) وووكوميرس (WooCommerce)

في بيئة الخادم المحلي الخاصة بك، قم أولاً بتثبيت نسخة جديدة كليًا من ووردبريس (WordPress). يُنصح بتنزيل أحدث إصدار من موقع WordPress.org. بعد الانتهاء من التثبيت، ادخل إلى صفحة “الإضافات” (Plugins) ثم “تثبيت إضافات” (Install Plugins) في واجهة ووردبريس الخلفية، وابحث عن الإضافة المطلوبة وقم بتثبيتها. WooCommerceقم بإكمال الإعدادات الأساسية باستخدام دليل إعدادات WooCommerce، ثم انشئ منتجًا تجريبيًا وضبط خيارات الدفع والشحن، حتى تتوفر بيئة اختبار حقيقية للتطويرات المستقبلية. بالإضافة إلى ذلك، ننصحك بتفعيل وضع التصحيح (Debug Mode) في WordPress. wp-config.php سيتم تضمين الوثيقة في الملف. WP_DEBUG تم تعيين الثابت على قيمة trueهذا يساعد على اكتشاف الأخطاء بسرعة أثناء عملية التطوير.

قم بإنشاء أول إضافة (plugin) خاصة بك لمنصة WooCommerce.

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

هيكل الملفات الأساسية للإضافات (Plugins)

داخل دليل تثبيت WordPress الخاص بك… wp-content/plugins داخل المجلد، قم بإنشاء مجلد جديد، على سبيل المثال… my-first-woocommerce-extensionداخل هذا المجلد، قم بإنشاء ملف الإضافة الرئيسي، وعادة ما يتم تسميته باسم الإضافة نفسها، مثل… my-first-woocommerce-extension.phpهذا هو نقطة الدخول للإضافة (plugin)، ويجب أن يتضمن تعليقات رأس الإضافة القياسية الخاصة بووردبريس (WordPress).

<?php
/**
 * Plugin Name: My First WooCommerce Extension
 * Plugin URI:  https://yourwebsite.com/
 * Description: 一个简单的 WooCommerce 扩展示例,用于演示开发基础。
 * Version:     1.0.0
 * Author:      Your Name
 * License:     GPL v2 or later
 * Text Domain: my-first-wc-ext
 */

أضف ميزة بسيطة لربط الوظائف (function hook).

لضمان أن تعمل عمليات التوسيع الخاصة بنا فقط عند تفعيل ووردبريس (WooCommerce)، ولإضافة الميزات بشكل آمن، نحتاج إلى استخدام “خطافات الإجراءات” (Action Hooks) أو “خطافات المرشحات” (Filter Hooks). فيما يلي مثال على كيفية إضافة نص مخصص بعد عنوان صفحة المنتج الفردية. نستخدم… woocommerce_single_product_summary هذا هو خطاف الإجراء (Action Hook).

القراءة الموصى بها ما هو WooCommerce وما هي مكوناته الأساسية؟

// 防止文件被直接访问
if ( ! defined( 'ABSPATH' ) ) {
    exit;
}

// 检查 WooCommerce 是否激活
if ( in_array( 'woocommerce/woocommerce.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) ) {

add_action( 'woocommerce_single_product_summary', 'my_custom_product_message', 6 );

function my_custom_product_message() {
        echo '<p class="my-custom-text">هذا النص تم إضافته من خلال توسيعات مخصصة.</p>';
    }
}

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

التعمق في الجوهر: استخدام خيوط الأفعال (Actions) والمرشحات (Filters)

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

مثال على خطافات الأفعال الشائعة الاستخدام (Common Action Hooks Examples)

تسمح “خطافات الإجراءات” (Action Hooks) بتنفيذ الكود الخاص بك في أوقات محددة. على سبيل المثال، قد ترغب في تنفيذ عملية إرسال بيانات إلى نظام خارجي عندما يتغير حالة الطلب إلى “مكتمل”. ويمكن تحقيق ذلك عن طريق… woocommerce_order_status_completed تنفيذ الخطاف (Hook Implementation).

استضافة.كوم استضافة مشتركة
أداء عالٍ مع وحدات المعالجة المركزية AMD EPYC، ووحدات تخزين NVMe SSD وLiteSpeed، ودعم داخلي متخصص على مدار الساعة طوال أيام الأسبوع، وتدابير أمنية متقدمة بما في ذلك SSL، وقوة الغاشمة، والحماية من البرامج الضارة والحماية من DDoS، وتوفير ما يصل إلى 731 تيرابايت 4 تيرابايت
add_action( 'woocommerce_order_status_completed', 'send_order_to_erp' );

function send_order_to_erp( $order_id ) {
    $order = wc_get_order( $order_id );
    // 编写你的逻辑,例如获取订单数据并调用外部 API
    // error_log( "订单 #{$order_id} 已完成,准备同步至ERP。" );
}

من المشاهد الشائعة الأخرى إضافة حقول مخصصة إلى صفحة الدفع. يمكن استخدام هذه الحقول لتوفير معلومات إضافية أو تسهيل عملية الدفع للمستخدمين. woocommerce_after_order_notes Action Hook.

أمثلة على خطافات المرشحات الشائعة الاستخدام (Common Filter Hooks)

تسمح خيوط الفلاتر (filter hooks) بـ“تعديل” البيانات الموجودة مسبقًا. على سبيل المثال، إذا أردت إضافة رسوم إضافية ثابتة إلى أسعار جميع المنتجات، أو تغيير نتائج حساب تكاليف الشحن، فيمكنك استخدام هذه الخيوط لتنفيذ ذلك. كما يمكنك استخدامها لتعدي woocommerce_product_get_price مرشحات.

add_filter( 'woocommerce_product_get_price', 'increase_price_by_ten', 10, 2 );

function increase_price_by_ten( $price, $product ) {
    // 只对特定产品ID为 99 的产品生效
    if ( 99 === $product->get_id() ) {
        $price = $price + 10;
    }
    return $price;
}

تعديل حقول الدفع هو مثال نموذجي على استخدام خاصية “hook” في أداة التصفية (filtering tool)، حيث يتم استخدام هذه الخاصية لتنفيذ تغييرات معينة على البيانات قبل عملية الدفع. woocommerce_checkout_fields يمكن إضافة المرشحات (الفلاتر) أو إزالتها أو إعادة ترتيب الحقول (الفيلدات) بسهولة.

القراءة الموصى بها تحليل متعمق لـ WooCommerce: دليل كامل لبناء موقع تجارة إلكترونية عالي الأداء من الصفر.

توسيع الممارسة العملية: إنشاء علامات تبويب منتجات مخصصة

لتقديم مثال عملي أكثر شمولاً، سنقوم بإنشاء ميزة تسمح بإضافة تبويب مخصص يُدعى “مواصفات المنتج” إلى صفحات المنتجات.

قم بتسجيل علامة تبويب المنتج الجديدة.

أولاً، نحن بحاجة إلى استخدام woocommerce_product_tabs نستخدم مرشحات لإضافة علامات تبويب خاصة بنا إلى مجموعة المنتجات الموجودة مسبقًا (مثل “الوصف”، “التقييمات”).

الاستضافة المشتركة InterServer
استضافة مشتركة $2.50 دولار أمريكي في الشهر، الشهر الأول $0.1 دولار أمريكي الرمز الترويجي tryinterserver، 461 نص برمجي للتطبيقات السحابية، تثبيت بنقرة واحدة.
add_filter( 'woocommerce_product_tabs', 'add_custom_specification_tab' );
function add_custom_specification_tab( $tabs ) {
    // 添加新选项卡
    $tabs['specification_tab'] = array(
        'title'    => __( '规格参数', 'my-first-wc-ext' ),
        'priority' => 50,
        'callback' => 'display_custom_specification_tab_content'
    );
    return $tabs;
}

تعريف دالة عرض محتوى العلامات التبويبية

بعد ذلك، نحتاج إلى تعريف الدالة الاستدعائية (callback function) المذكورة أعلاه. display_custom_specification_tab_contentيُستخدم هذا الكود لعرض محتوى HTML داخل تلك العلامة التبويبية. في هذا المثال، نقوم بعرض نص مُكتوب يدويًا بشكل بسيط، ولكن في المشاريع الحقيقية، قد تحتاج إلى استخدام البيانات المأخوذة من الحقول المخصصة للمنتج (custom fields). Advanced Custom Fields يتم الحصول على البيانات بشكل ديناميكي إما من الإضافات (plugins) أو من خصائص المنشورات الأصلية (post meta).

function display_custom_specification_tab_content() {
    // 这里可以编写从数据库获取数据的逻辑
    echo '<h2>مواصفات المنتج التفصيلية</h2>'echo '<p>هنا تجد المواصفات التقنية التفصيلية للمنتج، بالإضافة إلى معلومات عن المواد المستخدمة والأبعاد وغيرها. يمكن للمطورين ربط حقول مخصصة لعرض المحتوى بشكل ديناميكي.</p>'echo '<ul>'echo '<li>المادة: سبيكة ألومنيوم عالية الجودة</li>'echo '<li>الأبعاد: 30 سم × 20 سم × 10 سم</li>'echo '<li>الوزن: 1.5 كيلوغرام</li>'echo '</ul>';
}

أضف هذا الكود إلى ملف الإضافة الرئيسي الخاص بك، ثم قم بتحديث صفحة المنتج. يجب أن تلاحظ ظهور علامة تبويب جديدة تسمى “مواصفات المنتج” بجانب علامة تبويب “الوصف”. يستخدم هذا المثال العملي معايير الفلترة (filter hooks) لتعديل هيكل بيانات WooCommerce، ويقوم بعرض المحتوى من خلال دوال الاستدعاء الراجعة (callback functions)، وهو نموذج شائع جدًا في بناء الإضافات المختلفة.

الملخصات

تطوير إضافات (Extensions) لمنصة WooCommerce يعد عملية قوية تسمح بتحويل منصة التجارة الإلكترونية العامة إلى حل تجاري مخصص. بدأنا بفهم الحاجة إلى تطوير إضافات مخصصة، ثم أنشأنا بيئة تطوير محلية متخصصة، وتدريجياً قمنا بإنشاء قاعدة من الإضافات الأساسية ذات التنسيق الموحد. من خلال الاستكشاف العميق لنظام الأحداث (Events) ومخالب التصفية (Filters) في WooCommerce، تمكنا من إتقان الطرق الأساسية لإضافة أو تعديل الوظائف في نقاط محورية من عملية التطوير. وقد أكملت التمارين العملية الأخيرة، والتي تمثلت في إنشاء علامات تبويب منتجات مخصصة، رابطة كاملة لعملية التطوير بدءاً من استخدام مخالب التصفية وحتى عرض المحتوى على الواجهة الأمامية. تذكر دائماً أنه يجب أولاً استخدام مخالب التصفية بدلاً من تعديل الملفات الأساسية مباشرة، وهذا سيضمن توافق إضافتك بشكل جيد مع منصة WooCommerce، وسهولة صيانتها، وقدرتها على التحديث بسلاسة مع تحديثات المنصة نفسها.

الأسئلة الشائعة الأسئلة المتداولة

كيف يمكن تحديد ما إذا كان يجب استخدام خطاف إجراء (action hook) أو خطاف فلتر (filter hook) لميزة معينة؟

طريقة بسيطة للحكم على ذلك هي: إذا كان يتطلب من كودك أن “يقوم بشيء ما” في وقت معين (مثل إرسال بريد إلكتروني، تسجيل سجل، أو عرض نص HTML)، فعادةً ما يتم استخدام “خطافات الإجراءات” (action hooks).add_actionإذا كان يتطلب كودك “تعديل قيمة موجودة مسبقًا” (مثل تغيير السعر، تعديل تكلفة الشحن، تحرير نص ما)، فيجب استخدام خيوط الفلتر (filter hooks) في هذه الحالة.add_filterفي جوهر الأمر، يعتبر المرشح (filter) نوعًا خاصًا من الكائنات أو الدوال التي تتطلب إرجاع قيمة معينة كنتيجة لتنفيذها.

يتطلب امتدادي أن يكون متوافقًا مع عدة إصدارات من WooCommerce، ما الذي يجب أن أنتبه إليه؟

المبدأ الأساسي هو تجنب استخدام الدوال والطرق المهجورة (التي لم تعد مدعومة من قبل المطورين). أثناء عملية التطوير، يجب الرجوع إلى الوثائق الرسمية للمطورين المتوافقة مع أقل إصدار من WooCommerce يتم استخدامه. استخدم شروط التحقق للتأكد من وجود الدوال أو الكلاسات المطلوبة. على سبيل المثال، قبل استدعاء أي دالة، قم بالتحق wc_get_order مسبقًا، يمكن أولاً التحقق مما إذا كانت الدالة موجودة أم لا؛ إذا لم تكن موجودة، فيتم العودة إلى استخدام النسخة الأقدم منها. get_order استخدم بشكل فعال ثوابت الإصدارات المتاحة في WordPress وWooCommerce لإجراء اختبارات الخصائص (feature tests).

كيف يمكن تصحيح الأخطاء في الكود بكفاءة أثناء عملية التطوير؟

تفعيل وضع التصحيح (Debugging Mode) في ووردبريس هو الخطوة الأولى، ثم… wp-config.php إعدادات في المنتصف. define( 'WP_DEBUG', true );استخدمه. error_log() تقوم الدالة بتسجيل معلومات المتغيرات في سجل الأخطاء على الخادم، وهو أمر مفيد للغاية لتتبع تدفق التنفيذ الخوارزمي. بالإضافة إلى ذلك، يمكن تثبيت إضافات مطورين مثل Query Monitor، والتي تعرض في الوقت الفعلي الأحداث المتعلقة بتنفيذ الكود (مثل الاستدعاءات المختلفة)، واستعلامات قواعد البيانات، وأخطاء PHP وتحذيراتها، مما يجعلها أداة مساعدة قوية لتطوير إضافات WooCommerce.

هل يمكنني تقديم الإضافة (التوسعة) التي طورتها إلى متجر الإضافات الرسمي لـ WooCommerce؟

نعم، لكن العملية والمتطلبات صارمة نسبيًا. يجب أن يتبع تطويرك معايير البرمجة الخاصة بـ WordPress وWooCommerce، وأن يقدم كودًا عالي الجودة خاليًا من الأخطاء، بالإضافة إلى دعم جيد للترجمة (التدويل). كما يتعين عليك تقديم طلبك من خلال موقع WooCommerce.com، حيث سيقوم فريقهم بمراجعة التطوير من ناحية الأمان وجودة الكود والوظائف. بالنسبة للمطورين الأفراد أو الفرق الصغيرة، يمكنك أيضًا اختيار نشر تطويرك في مكتبة الإضافات الخاصة بـ WordPress.org أو في أسواق خارجية مثل CodeCanyon.