PluginProbe
Fluent Forms – Customizable Contact Forms, Survey, Quiz, & Conversational Form Builder / 6.2.2
Fluent Forms – Customizable Contact Forms, Survey, Quiz, & Conversational Form Builder v6.2.2
6.2.14 6.2.13 6.2.12 6.2.10 6.2.11 6.2.9 6.2.8 6.2.7 6.2.6 6.2.5 6.2.4 6.2.3 6.2.2 3.6.22 3.6.31 3.6.40 3.6.41 3.6.42 3.6.50 3.6.51 3.6.60 3.6.61 3.6.62 3.6.64 3.6.65 All 196 releases
fluentform / app / Modules / Payments / Orders / OrderData.php

OrderData.php in Fluent Forms – Customizable Contact Forms, Survey, Quiz, & Conversational Form Builder 6.2.2, at app/Modules/Payments/Orders/OrderData.php

201 lines 7.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace FluentForm\App\Modules\Payments\Orders;
4
5 if (!defined('ABSPATH')) {
6 exit; // Exit if accessed directly.
7 }
8
9 use FluentForm\App\Helpers\Helper;
10 use FluentForm\App\Models\OrderItem;
11 use FluentForm\App\Models\Subscription;
12 use FluentForm\App\Models\Transaction;
13 use FluentForm\App\Modules\Payments\PaymentHelper;
14
15 class OrderData
16 {
17 public static function getSummary($submission, $form)
18 {
19 $orderItems = static::getOrderItems($submission);
20 $discountItems = static::getDiscounts($submission);
21
22 list($subscriptions, $subscriptionPaymentTotal) = static::getSubscriptionsAndPaymentTotal($submission);
23
24 return [
25 'order_items' => $orderItems,
26 'discount_items' => $discountItems,
27 'transactions' => static::getTransactions($submission->id),
28 'refunds' => static::getRefunds($submission->id),
29 'order_items_subtotal' => static::calculateOrderItemsTotal($orderItems, false, false),
30 'order_items_total' => static::calculateOrderItemsTotal($orderItems, false, false, $discountItems),
31 'subscriptions' => $subscriptions,
32 'subscription_payment_total' => $subscriptionPaymentTotal
33 ];
34 }
35
36 public static function getOrderItems($submission)
37 {
38 $items = OrderItem::bySubmission($submission->id)
39 ->products()
40 ->get();
41
42 foreach ($items as $item) {
43 $item->formatted_item_price = PaymentHelper::formatMoney($item->item_price, $submission->currency);
44 $item->formatted_line_total = PaymentHelper::formatMoney($item->line_total, $submission->currency);
45 }
46
47 return $items;
48 }
49
50 public static function getDiscounts($submission)
51 {
52 $items = OrderItem::bySubmission($submission->id)
53 ->discounts()
54 ->get();
55
56 foreach ($items as $item) {
57 $item->formatted_item_price = PaymentHelper::formatMoney($item->item_price, $submission->currency);
58 $item->formatted_line_total = PaymentHelper::formatMoney($item->line_total, $submission->currency);
59 }
60
61 return $items;
62 }
63
64 public static function getTransactions($submissionId)
65 {
66 $transactions = Transaction::bySubmission($submissionId)
67 ->whereIn('transaction_type', ['onetime', 'subscription'])
68 ->orderBy('id', 'ASC')
69 ->get();
70
71 $formattedTransactions = [];
72 foreach ($transactions as $transaction) {
73 $transaction->payment_note = Helper::safeUnserialize($transaction->payment_note);
74
75 $transaction = apply_filters_deprecated(
76 'fluentform_transaction_data_' . $transaction->payment_method,
77 [
78 $transaction
79 ],
80 FLUENTFORM_FRAMEWORK_UPGRADE,
81 'fluentform/transaction_data_' . $transaction->payment_method,
82 'Use fluentform/transaction_data_' . $transaction->payment_method . ' instead of fluentform_transaction_data_' . $transaction->payment_method
83 );
84
85 $transaction = apply_filters('fluentform/transaction_data_' . $transaction->payment_method, $transaction);
86 if($transaction) {
87 $formattedTransactions[] = $transaction;
88 }
89 }
90
91 return $formattedTransactions;
92 }
93
94 public static function getRefunds($submissionId)
95 {
96 $transactions = Transaction::bySubmission($submissionId)
97 ->refunds()
98 ->orderBy('id', 'ASC')
99 ->get();
100
101 $formattedTransactions = [];
102 foreach ($transactions as $transaction) {
103 $transaction->payment_note = Helper::safeUnserialize($transaction->payment_note);
104
105 $transaction = apply_filters_deprecated(
106 'fluentform_transaction_data_' . $transaction->payment_method,
107 [
108 $transaction
109 ],
110 FLUENTFORM_FRAMEWORK_UPGRADE,
111 'fluentform/transaction_data_' . $transaction->payment_method,
112 'Use fluentform/transaction_data_' . $transaction->payment_method . ' instead of fluentform_transaction_data_' . $transaction->payment_method
113 );
114
115 $transaction = apply_filters('fluentform/transaction_data_' . $transaction->payment_method, $transaction);
116 if($transaction) {
117 $formattedTransactions[] = $transaction;
118 }
119 }
120
121 return $formattedTransactions;
122 }
123
124 public static function calculateOrderItemsTotal($orderItems, $formatted = false, $currency = false, $discountItems = []) {
125 $total = 0;
126 foreach ($orderItems as $item) {
127 $total += $item->line_total;
128 }
129
130 if(count($discountItems)) {
131 foreach ($discountItems as $discountItem) {
132 $total -= $discountItem->line_total;
133 }
134 }
135
136 if($formatted) {
137 return PaymentHelper::formatMoney($total, $currency);
138 }
139
140 return $total;
141 }
142
143 public static function getSubscriptionsAndPaymentTotal($submission)
144 {
145 $subscriptions = Subscription::bySubmission($submission->id)
146 ->get();
147
148 $subscriptionPaymentTotal = 0;
149
150 foreach ($subscriptions as $subscription) {
151 $subscription->original_plan = Helper::safeUnserialize($subscription->original_plan);
152 $subscription->vendor_response = Helper::safeUnserialize($subscription->vendor_response);
153
154 $subscription->initial_amount_formatted = PaymentHelper::formatMoney($subscription->initial_amount, $submission->currency);
155 $subscription->recurring_amount_formatted = PaymentHelper::formatMoney($subscription->recurring_amount, $submission->currency);
156 }
157
158 return [$subscriptions, $subscriptionPaymentTotal];
159 }
160
161 public static function getSubscriptionTransactions($subscriptionId)
162 {
163 $transactions = Transaction::where('subscription_id', $subscriptionId)->get();
164
165 foreach ($transactions as $transaction) {
166 $transaction->payment_note = Helper::safeUnserialize($transaction->payment_note);
167
168 $transaction->items = apply_filters_deprecated(
169 'fluentform_subscription_items_' . $transaction->payment_method,
170 [
171 [],
172 $transaction
173 ],
174 FLUENTFORM_FRAMEWORK_UPGRADE,
175 'fluentform/subscription_items_' . $transaction->payment_method,
176 'Use fluentform/subscription_items_' . $transaction->payment_method . ' instead of fluentform_subscription_items_' . $transaction->payment_method
177 );
178
179 $transaction->items = apply_filters('fluentform/subscription_items_'.$transaction->payment_method, [], $transaction);
180 }
181
182 $transactions = apply_filters_deprecated(
183 'fluentform_subscription_transactions',
184 [
185 $transactions,
186 $subscriptionId
187 ],
188 FLUENTFORM_FRAMEWORK_UPGRADE,
189 'fluentform/subscription_transactions',
190 'Use fluentform/subscription_transactions instead of fluentform_subscription_transactions.'
191 );
192
193 return apply_filters('fluentform/subscription_transactions', $transactions, $subscriptionId);
194 }
195
196 public static function getTotalPaid($submission)
197 {
198 return PaymentHelper::formatMoney($submission->payment_total, $submission->currency);
199 }
200 }
201