تابع register_activation_hook در افزونه ووکامرس

تاریخ: 09 آبان 1397

در مطلب قبلی پیرامون نحوه استفاده از تابع register_activation_hook صحبت نمودیم و جزئیات آن را بررسی کردیم. همانطور که می دانید برای شخصی سازی ووکامرس باید به تمام جزئیات آن اشراف داشته باشیم تا بتوانیم تغییرات دلخواه را انجام دهیم.

ووکامرس در هنگام فعال شدن کارهای مختلفی را انجام می دهد که بعضی از آن ها عبارتند از: ایجاد تنظیمات خاص، ایجاد جدول های موردنیاز، ایجاد چند رول یا نقش کاربری، ایجاد پست تایپ جدید و …

این کارها در هنگام فعال شدن افزونه و با تابع register_activation_hook انجام می شود. چنانچه در بخش قبل گفتیم روش صحیح استفاده از این تابع در یک کلاس و در فایلی جداگانه می باشد.

موارد مطرح شده در این صفحه مربوط به نسخه 3.5.0 افزونه ووکامرس می باشد.

در ووکامرس دو برگه برای تعریف تابع register_activation_hook استفاده می شود. برگه اول برگه اصلی کلاس ووکامرس به آدرس زیر است:

woocommerce/includes/class-woocommerce.php

و برگه دوم برگه کلاس نصب ووکامرس به آدرس زیر می باشد که تمام توابع مربوط به نصب ووکامرس در این کلاس قرار دارد:

woocommerce/includes/class-wc-install.php

تابع register_activation_hook در کلاس اصلی ووکامرس و در تابع سازنده construct__ ولی توابع اجرایی آن در کلاس نصب ووکامرس تعریف می شود.

در کد زیر می توانیم نحوه تعریف تابع سازنده construct__ در کلاس اصلی ووکامرس را مشاهده نماییم: (موارد اضافی حذف شده اند)

class woocommerce{
public function __construct() {
$this->init_hooks();
}
private function init_hooks() {
register_activation_hook( WC_PLUGIN_FILE, array( 'WC_Install', 'install' ) );
}
}

پارامتر اول این تابع یک ثابت است که به فایل اصلی افزونه اشاره دارد و در فایل اصلی به صورت زیر تعریف شده است:

if ( ! defined( 'WC_PLUGIN_FILE' ) ) {
define( 'WC_PLUGIN_FILE', __FILE__ );
}

پارامتر دوم به کلاس نصب وردپرس و تابع install درون این کلاس اشاره دارد که در فایل کلاس نصب وردپرس به صورت زیر تعریف شده است:

class WC_Install{
public static function install() {	
//statemants	
}
}

دیدگاهتان را بنویسید

طراحی افزونه وردپرس