#laravel
#laravel
Вопрос:
Я схожу с ума, тестируя логику ограничений через подписки с помощью Stripe.
Переходя к сути, я хотел бы управлять контентом с помощью подписок, которые имеют эту логику:
- [Если пользователь вошел в систему и имеет подписку] [Если пользователь отменил подписку, но все еще находится в пробном периоде]
- [Если у пользователя истекла или прекращена подписка с немедленным истечением срока действия]
- [Наконец, если он посетитель]
Я сделал небольшой черновик, чтобы дать представление, но кажется, что если я немедленно прекращу подписку для пользователя (следовательно, с немедленным истечением срока действия, который поэтому следует считать истекшим), он не показывает предупреждение о том, что срок его действия истек.
@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 () -> подписка («по умолчанию») -> завершено () после отмены подписки пользователя с указанием немедленной даты, но это не работает, ничего не сообщается.