هرمینال
هرمینال

کلاس 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: لیست دیتای آبجکت.

0
در حال بارگزاری نظرات