);
}
$form->postProcessPremium($premiumParams, $contribution);
- if (is_array($result) && !empty($result['trxn_id'])) {
- $contribution->trxn_id = $result['trxn_id'];
+ if (is_array($result)) {
+ if (!empty($result['trxn_id'])) {
+ $contribution->trxn_id = $result['trxn_id'];
+ }
+ if (!empty($result['payment_status_id'])) {
+ $contribution->contribution_status_id = $result['payment_status_id'];
+ }
}
$membershipResult[1] = $contribution;
}
// Do not send an email if Recurring transaction is done via Direct Mode
// Email will we sent when the IPN is received.
if (!empty($form->_params['is_recur']) && $form->_contributeMode == 'direct') {
- if (!empty($membershipContribution->trxn_id)) {
+ if (!empty($membershipContribution->trxn_id) && !isset($membershipContribution->payment_status_id)
+ || (!empty($membershipContribution->payment_status_id) && $membershipContribution->payment_status_id == 1)) {
try {
civicrm_api3('contribution', 'completetransaction', array(
'id' => $membershipContribution->id,