| Server IP : 38.190.208.107 / Your IP : 216.73.217.46 Web Server : nginx/1.28.1 System : Linux ht2026040333114 6.1.0-10-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.37-1 (2023-07-03) x86_64 User : root ( 0) PHP Version : 8.2.28 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv,eval,assert,passthru,system,exec,shell_exec,popen,proc_open MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /www/wwwroot/wp.8/wp-content/plugins/fluentform/app/Modules/Payments/Orders/ |
Upload File : |
<?php
namespace FluentForm\App\Modules\Payments\Orders;
if (!defined('ABSPATH')) {
exit; // Exit if accessed directly.
}
use FluentForm\App\Helpers\Helper;
use FluentForm\App\Models\OrderItem;
use FluentForm\App\Models\Subscription;
use FluentForm\App\Models\Transaction;
use FluentForm\App\Modules\Payments\PaymentHelper;
class OrderData
{
public static function getSummary($submission, $form)
{
$orderItems = static::getOrderItems($submission);
$discountItems = static::getDiscounts($submission);
list($subscriptions, $subscriptionPaymentTotal) = static::getSubscriptionsAndPaymentTotal($submission);
return [
'order_items' => $orderItems,
'discount_items' => $discountItems,
'transactions' => static::getTransactions($submission->id),
'refunds' => static::getRefunds($submission->id),
'order_items_subtotal' => static::calculateOrderItemsTotal($orderItems, false, false),
'order_items_total' => static::calculateOrderItemsTotal($orderItems, false, false, $discountItems),
'subscriptions' => $subscriptions,
'subscription_payment_total' => $subscriptionPaymentTotal
];
}
public static function getOrderItems($submission)
{
$items = OrderItem::bySubmission($submission->id)
->products()
->get();
foreach ($items as $item) {
$item->formatted_item_price = PaymentHelper::formatMoney($item->item_price, $submission->currency);
$item->formatted_line_total = PaymentHelper::formatMoney($item->line_total, $submission->currency);
}
return $items;
}
public static function getDiscounts($submission)
{
$items = OrderItem::bySubmission($submission->id)
->discounts()
->get();
foreach ($items as $item) {
$item->formatted_item_price = PaymentHelper::formatMoney($item->item_price, $submission->currency);
$item->formatted_line_total = PaymentHelper::formatMoney($item->line_total, $submission->currency);
}
return $items;
}
public static function getTransactions($submissionId)
{
$transactions = Transaction::bySubmission($submissionId)
->whereIn('transaction_type', ['onetime', 'subscription'])
->orderBy('id', 'ASC')
->get();
$formattedTransactions = [];
foreach ($transactions as $transaction) {
$transaction->payment_note = Helper::safeUnserialize($transaction->payment_note);
$transaction = apply_filters_deprecated(
'fluentform_transaction_data_' . $transaction->payment_method,
[
$transaction
],
FLUENTFORM_FRAMEWORK_UPGRADE,
'fluentform/transaction_data_' . $transaction->payment_method,
'Use fluentform/transaction_data_' . $transaction->payment_method . ' instead of fluentform_transaction_data_' . $transaction->payment_method
);
$transaction = apply_filters('fluentform/transaction_data_' . $transaction->payment_method, $transaction);
if($transaction) {
$formattedTransactions[] = $transaction;
}
}
return $formattedTransactions;
}
public static function getRefunds($submissionId)
{
$transactions = Transaction::bySubmission($submissionId)
->refunds()
->orderBy('id', 'ASC')
->get();
$formattedTransactions = [];
foreach ($transactions as $transaction) {
$transaction->payment_note = Helper::safeUnserialize($transaction->payment_note);
$transaction = apply_filters_deprecated(
'fluentform_transaction_data_' . $transaction->payment_method,
[
$transaction
],
FLUENTFORM_FRAMEWORK_UPGRADE,
'fluentform/transaction_data_' . $transaction->payment_method,
'Use fluentform/transaction_data_' . $transaction->payment_method . ' instead of fluentform_transaction_data_' . $transaction->payment_method
);
$transaction = apply_filters('fluentform/transaction_data_' . $transaction->payment_method, $transaction);
if($transaction) {
$formattedTransactions[] = $transaction;
}
}
return $formattedTransactions;
}
public static function calculateOrderItemsTotal($orderItems, $formatted = false, $currency = false, $discountItems = []) {
$total = 0;
foreach ($orderItems as $item) {
$total += $item->line_total;
}
if(count($discountItems)) {
foreach ($discountItems as $discountItem) {
$total -= $discountItem->line_total;
}
}
if($formatted) {
return PaymentHelper::formatMoney($total, $currency);
}
return $total;
}
public static function getSubscriptionsAndPaymentTotal($submission)
{
$subscriptions = Subscription::bySubmission($submission->id)
->get();
$subscriptionPaymentTotal = 0;
foreach ($subscriptions as $subscription) {
$subscription->original_plan = Helper::safeUnserialize($subscription->original_plan);
$subscription->vendor_response = Helper::safeUnserialize($subscription->vendor_response);
$subscription->initial_amount_formatted = PaymentHelper::formatMoney($subscription->initial_amount, $submission->currency);
$subscription->recurring_amount_formatted = PaymentHelper::formatMoney($subscription->recurring_amount, $submission->currency);
}
return [$subscriptions, $subscriptionPaymentTotal];
}
public static function getSubscriptionTransactions($subscriptionId)
{
$transactions = Transaction::where('subscription_id', $subscriptionId)->get();
foreach ($transactions as $transaction) {
$transaction->payment_note = Helper::safeUnserialize($transaction->payment_note);
$transaction->items = apply_filters_deprecated(
'fluentform_subscription_items_' . $transaction->payment_method,
[
[],
$transaction
],
FLUENTFORM_FRAMEWORK_UPGRADE,
'fluentform/subscription_items_' . $transaction->payment_method,
'Use fluentform/subscription_items_' . $transaction->payment_method . ' instead of fluentform_subscription_items_' . $transaction->payment_method
);
$transaction->items = apply_filters('fluentform/subscription_items_'.$transaction->payment_method, [], $transaction);
}
$transactions = apply_filters_deprecated(
'fluentform_subscription_transactions',
[
$transactions,
$subscriptionId
],
FLUENTFORM_FRAMEWORK_UPGRADE,
'fluentform/subscription_transactions',
'Use fluentform/subscription_transactions instead of fluentform_subscription_transactions.'
);
return apply_filters('fluentform/subscription_transactions', $transactions, $subscriptionId);
}
public static function getTotalPaid($submission)
{
return PaymentHelper::formatMoney($submission->payment_total, $submission->currency);
}
}