From f9c25e8a278a6643e9d5d6864c081e2307485f59 Mon Sep 17 00:00:00 2001 From: Seamus Lee Date: Fri, 7 Jul 2023 11:27:37 +1000 Subject: [PATCH] Shift to using executeQuery rather than API to perform upgrade --- CRM/Upgrade/Incremental/php/FiveSixtyThree.php | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/CRM/Upgrade/Incremental/php/FiveSixtyThree.php b/CRM/Upgrade/Incremental/php/FiveSixtyThree.php index e2b74f2a0c..e7825cfc53 100644 --- a/CRM/Upgrade/Incremental/php/FiveSixtyThree.php +++ b/CRM/Upgrade/Incremental/php/FiveSixtyThree.php @@ -9,8 +9,6 @@ +--------------------------------------------------------------------+ */ -use Civi\Api4\PaymentProcessor; - /** * Upgrade logic for the 5.63.x series. * @@ -68,10 +66,16 @@ class CRM_Upgrade_Incremental_php_FiveSixtyThree extends CRM_Upgrade_Incremental * Fix any double json encoding in Payment Processor accepted_credit_cards field */ public static function fixDoubleEscapingPaymentProcessorCreditCards() { - $paymentProcessors = PaymentProcessor::get(FALSE)->addWhere('is_test', 'IS NOT NULL')->addWhere('domain_id', 'IS NOT NULL')->execute(); - foreach ($paymentProcessors as $paymentProcessor) { - if (is_array($paymentProcessor['accepted_credit_cards']) && is_numeric(array_keys($paymentProcessor['accepted_credit_cards'])[0])) { - PaymentProcessor::update(FALSE)->addValue('accepted_credit_cards', json_decode($paymentProcessor['accepted_credit_cards'][0], TRUE))->addWhere('id', '=', $paymentProcessor['id'])->execute(); + $paymentProcessors = CRM_Core_DAO::executeQuery("SELECT id, accepted_credit_cards FROM civicrm_payment_processor"); + while ($paymentProcessors->fetch()) { + if (!empty($paymentProcessors->accepted_credit_cards)) { + $accepted_credit_cards = json_decode($paymentProcessors->accepted_credit_cards, TRUE); + if (is_numeric(array_keys($accepted_credit_cards)[0])) { + CRM_Core_DAO::executeQuery("UPDATE civicrm_payment_processor SET accepted_credit_cards = %1 WHERE id = %2", [ + 1 => [$accepted_credit_cards[0], 'String'], + 2 => [$paymentProcessors->id, 'Positive'], + ]); + } } } return TRUE; -- 2.25.1