Changeset 3719064 for fluent-cart/trunk/app/Models/Subscription.php
- Timestamp:
- 09/29/2026 12:49:17 PM (3 weeks ago)
- File:
-
- 1 edited
-
fluent-cart/trunk/app/Models/Subscription.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
fluent-cart/trunk/app/Models/Subscription.php
r3711586 r3719064 1001 1001 Status::SUBSCRIPTION_EXPIRING, 1002 1002 Status::SUBSCRIPTION_PAST_DUE, 1003 ]); 1003 ]) || ( 1004 in_array($this->status, [Status::SUBSCRIPTION_PENDING, Status::SUBSCRIPTION_INTENDED], true) 1005 && $this->hasReactivationAttempt() 1006 && ((int) $this->bill_times === 0 || (int) $this->bill_count < (int) $this->bill_times) 1007 ); 1004 1008 1005 1009 return (bool) apply_filters('fluent_cart/subscription/can_reactivate', $canReactivate, [ 1006 1010 'subscription' => $this 1007 1011 ]); 1012 } 1013 1014 /** 1015 * Pro records `reactivation_order_id` before a reactivation checkout is paid. A first 1016 * purchase awaiting gateway activation is also pending/intended and can already be 1017 * billed, so only this marker separates a retryable reactivation from it. 1018 */ 1019 public function hasReactivationAttempt(): bool 1020 { 1021 return (int) Arr::get($this->config, 'reactivation_order_id', 0) > 0; 1022 } 1023 1024 public function isVisibleToCustomer(): bool 1025 { 1026 return !in_array($this->status, [Status::SUBSCRIPTION_PENDING, Status::SUBSCRIPTION_INTENDED], true) 1027 || (int) $this->bill_count > 0 1028 || $this->hasReactivationAttempt(); 1029 } 1030 1031 public function scopeVisibleToCustomer($query) 1032 { 1033 return $query->where(function ($query) { 1034 $query->whereNotIn('status', [Status::SUBSCRIPTION_PENDING, Status::SUBSCRIPTION_INTENDED]) 1035 ->orWhere('bill_count', '>', 0) 1036 ->orWhere('config', 'LIKE', '%"reactivation_order_id":%'); 1037 }); 1008 1038 } 1009 1039 … … 1415 1445 $invalidStatuses = [ 1416 1446 Status::SUBSCRIPTION_EXPIRED, 1417 Status::SUBSCRIPTION_INTENDED,1418 Status::SUBSCRIPTION_PENDING1419 1447 ]; 1420 1448 1421 if (in_array($this->status, $invalidStatuses)) { 1449 if (in_array($this->status, $invalidStatuses) 1450 || (in_array($this->status, [Status::SUBSCRIPTION_PENDING, Status::SUBSCRIPTION_INTENDED], true) 1451 && !$this->hasReactivationAttempt())) { 1422 1452 return false; 1423 1453 }
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)