کلاس VIP وودیجی وردپرس
کلاس VIP در فضای نام Woodigi قرار دارد.
کاربرد کلاس VIP وودیجی
جهت مدیریت سرویس پرمیوم یا اشتراک ویژهی یک کاربر به کار برده میشود. برای مثال از طریق آن میتوان متوجه وضعیت فعال بودن یا نبودن اشتراک کاربر شده و آن را افزایش یا کاهش داد.
نمونهسازی از کلاس VIP وودیجی
روش اول: متد new، دریافت آبجکت vip هر کاربر دلخواهی
$vip = \Woodigi\VIP::new($user);
ورودیها:
- user: کاربر که قصد مدیریت سرویس اشتراک ویژه آن را داریم.
میتواند یکی از موارد WP_User|string|int|false را شامل شود. false بهمعنی کاربر فعلی است.
نکته: false یعنی کاربر فعلی.
خروجی:
- آبجکت Woodigi\VIP
- null (در صورت لاگین نبودن)
روش دوم: متد me، دریافت آبجکت vip کاربر فعلی
$vip = \Woodigi\VIP::me();
خروجی:
- آبجکت Woodigi\VIP
- null (در صورت لاگین نبودن)
نکته: این متد دارای کش است.
نکته: روش سریع برای دریافت آبجکت vip، استفاده از تابع woodigi_vip است. این تابع علاوه براینکه آبجکت vip یا null را برمیگرداند، در ورودی خود میتواند یک کالبک دریافت کرده و اگر آبجکت وجود داشته باشد، ان را اجرا کند. (اجرای کال بک به معنی فعال بودن سرویس اشتراک ویژه نیست)
فیلدهای کلاس VIP وودیجی
نکته: تمام فیلدهای زیر فقط خواندنی هستند و تغییر مستقیم آنها توصیه نمیشود.
فیلد user_ID
نوع int | شناسه کاربر
فیلد expire_at
نوع string | تاریخ انقضا
فیلد expire_at_jalali
نوع string | تاریخ انقضا (شمسی)
فیلد remaining_days
نوع int | روزهای مانده تا انقضا
کمترین مقدار ممکن برابر 0 است.
فیلد first_charge_at
نوع string | تاریخ اولین شارژ سرویس
فیلد last_charge_at
نوع string | تاریخ آخرین شارژ سرویس
فیلد total_charged_days
نوع int | تعداد کل روزهای شارژ شده تابحال
کمترین مقدار ممکن برابر 0 است.
فیلد charged_count
نوع int | تعداد دفعات شارژ یا افزایش اشتراک
فیلد charged_count_by_admin
تعداد دفعات شارژ یا افزایش اشتراک (توسط ادمین)
فیلد discharged_count
از نوع int | تعداد دفعات تخلیه شارژ یا کاهش اشتراک
متدهای کلاس VIP وودیجی
متد is_active
$vip->is_active(): bool
برای بررسی وضعیت فعال بودن و نبودن اشتراک ویژه استفاده میشود.
خروجی از نوع bool: مقدار true در صورت فعال بودن، false در غیر اینصورت.
متد refresh
$vip->refresh();
دیتای موجود در آبجکت را از دیتابیس بروزرسانی میکند؛ یعنی بهطور مجدد آن را بارگیری میکند.
متد charge
$vip->charge( int $days, bool $by_admin = false ): bool
سرویس اشتراک ویژه را شارژ کرده و یا افزایش میدهد.
ورودیها:
- days از نوع int: تعداد روزهایی که قرار است اضافه گردد. باید بزرگتر از 0 باشد، در غیر اینصورت ValueErrror پرتاب میشود.
- by_admin از نوع bool با پیشفرض false: مشخص میکند که آیا این شارژ از طرف ادمین است یا از طرف خود کاربر.
خروجی از نوع bool: مقدار true یعنی موفق و false یعنی ناموفق.
هوکها:
do_action( 'Woodigi\VIP::charge', $success, $days, $expire_at, $vip );
متد discharge
$vip->discharge( int $days ): bool
ورودیها:
- days از نوع int: تعداد روزهایی که قرار است اضافه گردد. باید بزرگتر از 0 باشد، در غیر اینصورت ValueErrror پرتاب میشود.
do_action( __METHOD__, $success, $days, $expire_at, $this );
متد to_array
$vip->to_array( $detailed = false ): array
دیتای آبجکت را بهصورت یک آرایه برمیگرداند. این دیتا همان فیلدهای ذکر شده در بالا است؛ بههمراه is_active.
ورودیها:
- detailed از نوع bool: آیا جزئیات دقیق و تکیلی نیز ارائه شود؟ فعلا فقط expire_at_redable را شامل میشود که شکل خواناتر expire_at است.
خروجی از نوع aray: لیست دیتای آبجکت.