Проверьте полосу истечения срока действия подписки пользователя

#laravel

#laravel

Вопрос:

Я схожу с ума, тестируя логику ограничений через подписки с помощью Stripe.

Переходя к сути, я хотел бы управлять контентом с помощью подписок, которые имеют эту логику:

  1. [Если пользователь вошел в систему и имеет подписку] [Если пользователь отменил подписку, но все еще находится в пробном периоде]
  2. [Если у пользователя истекла или прекращена подписка с немедленным истечением срока действия]
  3. [Наконец, если он посетитель]

Я сделал небольшой черновик, чтобы дать представление, но кажется, что если я немедленно прекращу подписку для пользователя (следовательно, с немедленным истечением срока действия, который поэтому следует считать истекшим), он не показывает предупреждение о том, что срок его действия истек.

 @if(Auth::check() amp;amp; Auth::user()->subscribed('default') || Auth::user()->subscription('default')->onGracePeriod())

[If the user is logged in and has a subscription] 
[If the user has canceled his subscription but is still in the trial period]

@elseif(Auth::check() amp;amp; Auth::user()->subscribed('default') amp;amp; Auth::user()->subscription('default')->ended())

[If the user has an expired or terminated subscription with immediate expiry]

@else

[guest]

@endif
 

Комментарии:

1. Возможно, вы можете немного упростить свою логику, если вы определите переменную $user and / or $subscription или вспомогательные функции в своей User.php модели, например public function isSubscribed() , или public function isOnGracePeriod() и т. Д. , Тогда @if($user amp;amp; $user->isOnGracePeriod()) . Кроме того, вам нужно будет отладить каждую из @if() инструкций, чтобы увидеть текущее состояние пользователя и / или подписки.

2. В частности, как восстановить, если срок действия подписки пользователя истек? -> завершено?

3. Выглядит так ended() , или cancelled() : laravel.com/docs/8.x/billing#cancelled-subscription-status — но я не совсем понимаю, о чем ты спрашиваешь.

4. Я хотел бы проверить, истек ли срок действия подписки пользователя. (Так что дата его продления истекла) Я хотел бы проверить, истек ли срок действия подписки пользователя. В принципе, я хотел бы показывать контент пользователю, у которого есть подписка, показывать его, если у него есть отмененная подписка, но все еще в льготном периоде, и вместо этого скрывать контент, если срок его подписки истек.

5. Обновление: я пробую Auth :: user () -> подписка («по умолчанию») -> завершено () после отмены подписки пользователя с указанием немедленной даты, но это не работает, ничего не сообщается.