PluginProbe ʕ •ᴥ•ʔ
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress / trunk
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress vtrunk
4.16.19 4.16.18 4.16.17 4.16.16 trunk 1.0 1.0.1 1.0.2 1.1 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.5a 1.1.6 1.1.7 1.2 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.3 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.4 1.4.1 1.4.2 1.5 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.7 1.7.1 1.7.2 1.8 1.8.1 1.8.10 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7 1.8.8 1.8.9 1.9 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.1.9 2.2.10 2.2.11 2.2.12 2.2.13 2.2.14 2.2.15 2.2.16 2.2.2 2.2.5 2.2.6 2.2.7 2.2.8 2.2.9 3.0 3.1 3.1.1 3.1.10 3.1.11 3.1.12 3.1.13 3.1.14 3.1.15 3.1.16 3.1.17 3.1.18 3.1.19 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 3.2.0 3.2.1 3.2.10 3.2.11 3.2.12 3.2.13 3.2.14 3.2.15 3.2.16 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7 3.2.8 3.2.9 4.0.0 4.0.1 4.0.2 4.0.3 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.10.0 4.10.1 4.10.2 4.10.3 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.13.3 4.13.4 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.15.0 4.15.1 4.15.10 4.15.11 4.15.12 4.15.13 4.15.14 4.15.15 4.15.16 4.15.17 4.15.18 4.15.19 4.15.2 4.15.20 4.15.20.1 4.15.21 4.15.22 4.15.23 4.15.24 4.15.25 4.15.3 4.15.4 4.15.5 4.15.6 4.15.7 4.15.8 4.15.9 4.16.0 4.16.1 4.16.10 4.16.11 4.16.12 4.16.13 4.16.14 4.16.15 4.16.2 4.16.3 4.16.4 4.16.5 4.16.6 4.16.7 4.16.8 4.16.9 4.2.0 4.3.0 4.3.1 4.3.2 4.4.0 4.4.1 4.5.0 4.5.1 4.5.2 4.5.3 4.5.4 4.5.5 4.6.0 4.7.0 4.8.0 4.9.0
wp-user-avatar / src / Membership / PaymentMethods / Stripe / WebhookHandlers / CustomerSubscriptionCreated.php
wp-user-avatar / src / Membership / PaymentMethods / Stripe / WebhookHandlers Last commit date
ChargeRefunded.php 11 months ago CheckoutSessionAsyncPaymentFailed.php 4 months ago CheckoutSessionAsyncPaymentSucceeded.php 4 months ago CheckoutSessionCompleted.php 4 months ago CustomerSubscriptionCreated.php 2 years ago CustomerSubscriptionDeleted.php 3 years ago CustomerSubscriptionUpdated.php 11 months ago InvoicePaymentSucceeded.php 2 years ago PaymentIntentSucceeded.php 3 years ago index.php 3 years ago
CustomerSubscriptionCreated.php
54 lines
1 <?php
2
3 namespace ProfilePress\Core\Membership\PaymentMethods\Stripe\WebhookHandlers;
4
5 use ProfilePress\Core\Membership\Models\Subscription\SubscriptionStatus;
6 use ProfilePress\Core\Membership\PaymentMethods\WebhookHandlerInterface;
7 use ProfilePress\Core\Membership\Repositories\SubscriptionRepository;
8 use ProfilePressVendor\Carbon\CarbonImmutable;
9
10 class CustomerSubscriptionCreated implements WebhookHandlerInterface
11 {
12 public function handle($event_data)
13 {
14 $subscription_profile_id = $event_data['id'];
15
16 $subscription = SubscriptionRepository::init()->retrieveBy([
17 'profile_id' => $subscription_profile_id
18 ]);
19
20 if (empty($subscription)) return;
21
22 $subscription = $subscription[0];
23
24 switch ($event_data['status']) {
25 case 'active':
26 if ( ! $subscription->is_active()) {
27 $subscription->activate_subscription($subscription_profile_id);
28 } else {
29 $subscription->status = SubscriptionStatus::ACTIVE;
30 }
31 // ensures expiration date is in sync with Stripe
32 $subscription->expiration_date = CarbonImmutable::createFromTimestampUTC($event_data['current_period_end'])->toDateTimeString();
33 break;
34 case 'trialing':
35 if ( ! $subscription->is_active()) {
36 $subscription->enable_subscription_trial($subscription_profile_id);
37 } else {
38 $subscription->status = SubscriptionStatus::TRIALLING;
39 }
40 // ensures expiration date is in sync with Stripe
41 $subscription->expiration_date = CarbonImmutable::createFromTimestampUTC($event_data['trial_end'])->toDateTimeString();
42 break;
43 case 'unpaid':
44 $subscription->expire();
45 break;
46 case 'canceled':
47 $subscription->status = SubscriptionStatus::CANCELLED;
48 break;
49 }
50
51 $subscription->save();
52 }
53 }
54