$subscriptionSynced->subscription->getOriginal('status'), 'gatewayStatus' => $subscriptionSynced->subscription->status, 'currentPeriod' => $subscriptionSynced->subscription->getOriginal('period'), 'gatewayPeriod' => $subscriptionSynced->subscription->period, 'currentCreatedAt' => date($dateTimeFormat, $subscriptionSynced->subscription->getOriginal('createdAt')->getTimestamp()), 'gatewayCreatedAt' => date($dateTimeFormat, $subscriptionSynced->subscription->createdAt->getTimestamp()), ]; $subscriptionSynced->subscription->save(); $missingTransactions = []; foreach ($subscriptionSynced->missingDonations as $missingDonation) { $missingTransactions[] = $this->getTransactionData($missingDonation); } $presentTransactions = []; foreach ($subscriptionSynced->presentDonations as $presentDonation) { $presentTransactions[] = $this->getTransactionData($presentDonation); } return response()->json([ 'details' => $details, 'missingTransactions' => $missingTransactions, 'presentTransactions' => $presentTransactions, 'notice' => $subscriptionSynced->notice, ]); } /** * @since 2.33.0 */ private function getTransactionData(Donation $donation): array { $dateTimeFormat = get_option('date_format') . ' ' . get_option('time_format'); return [ 'id' => $donation->id, 'gatewayTransactionId' => $donation->gatewayTransactionId, 'amount' => $donation->amount->getCurrency()->getCode() . ' ' . $donation->amount->formatToDecimal(), 'createdAt' => date($dateTimeFormat, $donation->createdAt->getTimestamp()), 'status' => $donation->status->getValue(), 'type' => $donation->type->getValue(), ]; } }