PluginProbe
FluentCart A New Era of eCommerce – Faster, Lighter, and Simpler / 1.6.5
FluentCart A New Era of eCommerce – Faster, Lighter, and Simpler v1.6.5
1.6.5 1.6.4 1.6.3 1.6.2 1.6.1 1.6.0 1.5.4 1.5.5 1.5.3 1.5.2 1.5.1 1.5.0 1.4.2 1.4.1 1.4.0 1.3.28 1.3.27 1.3.26 1.3.25 1.3.23 1.3.22 1.3.21 1.3.20 1.3.19 trunk All 48 releases
fluent-cart / app / Events / Subscription / SubscriptionPeriodSkipped.php

SubscriptionPeriodSkipped.php in FluentCart A New Era of eCommerce – Faster, Lighter, and Simpler 1.6.5, at app/Events/Subscription/SubscriptionPeriodSkipped.php

54 lines 1.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace FluentCart\App\Events\Subscription;
4
5 use FluentCart\App\Events\EventDispatcher;
6 use FluentCart\App\Models\Customer;
7 use FluentCart\App\Models\Order;
8 use FluentCart\App\Models\Subscription;
9
10 class SubscriptionPeriodSkipped extends EventDispatcher
11 {
12 public string $hook = 'fluent_cart/subscription_period_skipped';
13 protected array $listeners = [];
14
15 public Subscription $subscription;
16 public ?Order $order;
17 public ?Customer $customer;
18 public ?string $oldNextBillingDate;
19 public ?string $newNextBillingDate;
20
21 public function __construct(Subscription $subscription, ?Order $order = null, ?Customer $customer = null, ?string $oldNextBillingDate = null, ?string $newNextBillingDate = null)
22 {
23 $this->subscription = $subscription;
24 $this->order = $order;
25 $this->customer = $customer;
26 $this->oldNextBillingDate = $oldNextBillingDate;
27 $this->newNextBillingDate = $newNextBillingDate;
28 }
29
30 public function toArray(): array
31 {
32 // Brand-new tag — no prior contract to preserve.
33 return [
34 'subscription' => $this->subscription,
35 'order' => $this->order,
36 'customer' => $this->customer ?? [],
37 'old_next_billing_date' => $this->oldNextBillingDate,
38 'new_next_billing_date' => $this->newNextBillingDate,
39 ];
40 }
41
42 public function getActivityEventModel(): Subscription
43 {
44 return $this->subscription;
45 }
46
47 public function shouldCreateActivity(): bool
48 {
49 // skipNextPeriod() already writes a detailed addLog() entry with the old and
50 // new billing dates. Skipping the generic Activity row keeps the timeline unchanged.
51 return false;
52 }
53 }
54