dev/translation#15 Fix backend CC contributions left pending if statuses are localised
authorMathieu Lutfy <mathieu@bidon.ca>
Wed, 24 Oct 2018 12:22:45 +0000 (08:22 -0400)
committerMathieu Lutfy <mathieu@bidon.ca>
Wed, 24 Oct 2018 12:22:45 +0000 (08:22 -0400)
CRM/Contribute/Form/Contribution.php

index f7919150da8780b012aae948a256ecf918a037d9..732c366e24eb12b058221f19d7f1691cc469ffd2 100644 (file)
@@ -1156,7 +1156,7 @@ class CRM_Contribute_Form_Contribution extends CRM_Contribute_Form_AbstractEditP
       // NOTE - I expect this is obsolete.
       $payment = Civi\Payment\System::singleton()->getByProcessor($this->_paymentProcessor);
       try {
-        $statuses = CRM_Contribute_BAO_Contribution::buildOptions('contribution_status_id');
+        $completeStatusId = CRM_Core_PseudoConstant::getKey('CRM_Contribute_BAO_Contribution', 'contribution_status_id', 'Completed');
         $result = $payment->doPayment($paymentParams, 'contribute');
         $this->assign('trxn_id', $result['trxn_id']);
         $contribution->trxn_id = $result['trxn_id'];
@@ -1170,7 +1170,7 @@ class CRM_Contribute_Form_Contribution extends CRM_Contribute_Form_AbstractEditP
          * as historically we have had to guess from the context - ie doDirectPayment
          * = error or success, unless it is a recurring contribution in which case it is pending.
          */
-        if ($result['payment_status_id'] == array_search('Completed', $statuses)) {
+        if ($result['payment_status_id'] == $completeStatusId) {
           try {
             civicrm_api3('contribution', 'completetransaction', array(
               'id' => $contribution->id,