BossBey File Manager
PHP:
8.2.30
OS:
Linux
User:
imagivibe
Root
/
home
/
imagivibe
/
www
/
app.imagivibe.com
/
app
/
Listeners
📤 Upload
📝 New File
📁 New Folder
Close
Editing: IyzicoLifetimeListener.php
<?php namespace App\Listeners; use App\Actions\CreateActivity; use App\Enums\Plan\FrequencyEnum; use App\Events\IyzicoLifetimeEvent; use App\Models\UserOrder; use App\Services\PaymentGateways\Contracts\CreditUpdater; use Exception; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Support\Facades\Log; use Laravel\Cashier\Subscription as Subscriptions; class IyzicoLifetimeListener implements ShouldQueue { use CreditUpdater; use InteractsWithQueue; public bool $afterCommit = true; public ?string $queue = 'default'; public int $delay = 0; /** * Create the event listener. */ public function __construct() { // } /** * Handle the event. */ public function handle(IyzicoLifetimeEvent $event): void { try { $status = $event->status; $order_ids = $event->orderIds; // 1. iyzico_approved if ($status === 'iyzico_approved') { $orders = UserOrder::whereIn('order_id', $order_ids)->get(); foreach ($orders as $order) { switch ($order->plan->frequency) { case FrequencyEnum::LIFETIME_MONTHLY->value : Subscriptions::where('stripe_id', $order->order_id)->update(['stripe_status' => $status, 'ends_at' => \Carbon\Carbon::now()->addMonths(1)]); $msg = __('Subscription renewed for 1 month.'); break; case FrequencyEnum::LIFETIME_YEARLY->value : Subscriptions::where('stripe_id', $order->order_id)->update(['stripe_status' => $status, 'ends_at' => \Carbon\Carbon::now()->addYears(1)]); $msg = __('Subscription renewed for 1 year.'); break; default: // FrequencyEnum::LIFETIME_MONTHLY->value Subscriptions::where('stripe_id', $order->order_id)->update(['stripe_status' => $status, 'ends_at' => \Carbon\Carbon::now()->addMonths(1)]); $msg = __('Subscription renewed for 1 month.'); break; } self::creditIncreaseSubscribePlan($order->user, $order->plan); CreateActivity::for($order->user, $msg, $order->plan->name . ' ' . __('Plan')); } } } catch (Exception $ex) { Log::error("IyzicoLifetimeListener::handle()\n" . $ex->getMessage()); } } }
Save
Cancel