PluginProbe ʕ •ᴥ•ʔ
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress / 4.17.1
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress v4.17.1
4.17.1 4.17.0 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 / CheckoutSessionAsyncPaymentSucceeded.php
wp-user-avatar / src / Membership / PaymentMethods / Stripe / WebhookHandlers Last commit date
ChargeRefunded.php 1 year ago CheckoutSessionAsyncPaymentFailed.php 5 months ago CheckoutSessionAsyncPaymentSucceeded.php 5 months ago CheckoutSessionCompleted.php 5 months ago CustomerSubscriptionCreated.php 2 years ago CustomerSubscriptionDeleted.php 4 years ago CustomerSubscriptionUpdated.php 2 weeks ago InvoicePaymentSucceeded.php 2 years ago PaymentIntentSucceeded.php 3 years ago index.php 3 years ago
CheckoutSessionAsyncPaymentSucceeded.php
72 lines
1 <?php
2
3 namespace ProfilePress\Core\Membership\PaymentMethods\Stripe\WebhookHandlers;
4
5 use ProfilePress\Core\Membership\Models\Order\OrderFactory;
6 use ProfilePress\Core\Membership\Models\Subscription\SubscriptionFactory;
7 use ProfilePress\Core\Membership\PaymentMethods\Stripe\APIClass;
8 use ProfilePress\Core\Membership\PaymentMethods\Stripe\PaymentHelpers;
9 use ProfilePress\Core\Membership\PaymentMethods\WebhookHandlerInterface;
10 use ProfilePress\Core\Membership\Repositories\OrderRepository;
11 use ProfilePress\Core\Membership\Services\Calculator;
12
13 class CheckoutSessionAsyncPaymentSucceeded implements WebhookHandlerInterface
14 {
15 public function handle($event_data)
16 {
17 if ( ! in_array($event_data['mode'], ['subscription', 'payment'], true)) return;
18
19 $order = OrderFactory::fromOrderKey($event_data['client_reference_id']);
20
21 $subscription = SubscriptionFactory::fromId($order->subscription_id);
22
23 if ($event_data['mode'] == 'subscription') {
24
25 $stripe_subscription = APIClass::stripeClient()->subscriptions->retrieve($event_data['subscription'], [
26 'expand' => ['latest_invoice']
27 ])->toArray();
28
29 $transaction_id = $stripe_subscription['latest_invoice']['payment_intent'];
30
31 } else {
32 $transaction_id = $event_data['payment_intent'];
33 }
34
35 if ($order->exists() && ! $order->is_completed()) {
36
37 if (isset($event_data['total_details']['amount_tax'])) {
38
39 if (Calculator::init($event_data['total_details']['amount_tax'])->isGreaterThanZero()) {
40
41 $order->tax = PaymentHelpers::stripe_amount_to_ppress_amount($event_data['total_details']['amount_tax']);
42
43 $order->subtotal = PaymentHelpers::stripe_amount_to_ppress_amount($event_data['amount_subtotal']);
44
45 $order->total = PaymentHelpers::stripe_amount_to_ppress_amount($event_data['amount_total']);
46
47 $order->save();
48 }
49 }
50
51 $order->complete_order($transaction_id);
52 }
53
54 if ( $subscription->exists() && ! $subscription->is_active()) {
55
56 if ($event_data['mode'] == 'subscription') {
57
58 $subscription->profile_id = $event_data['subscription'];
59
60 if ($subscription->has_trial()) {
61 $subscription->enable_subscription_trial();
62 } else {
63 $subscription->activate_subscription();
64 }
65
66 } else {
67 $subscription->activate_subscription();
68 }
69 }
70 }
71 }
72