+ // if the payment processor returns a contribution_status_id -> use it!
+ if (isset($result['contribution_status_id'])) {
+ $params['contribution_status_id'] = $result['contribution_status_id'];
+ }
+ // do what used to happen previously
+ else {
+ $params['contribution_status_id'] = !empty($paymentParams['is_recur']) ? 2 : 1;
+ }
+ if ($params['contribution_status_id'] != array_search('Completed', $allContributionStatus)) {
+ $params['status_id'] = array_search('Pending', $allMemberStatus);
+ $params['skipStatusCal'] = TRUE;
+ // unset send-receipt option, since receipt will be sent when ipn is received.
+ unset($this->_params['send_receipt'], $formValues['send_receipt']);
+ //as membership is pending set dates to null.
+ $memberDates = array(
+ 'join_date' => 'joinDate',
+ 'start_date' => 'startDate',
+ 'end_date' => 'endDate',
+ );
+ foreach ($memberDates as $dp => $dv) {
+ $$dv = NULL;
+ foreach ($this->_memTypeSelected as $memType) {
+ $membershipTypeValues[$memType][$dv] = NULL;
+ }
+ }
+ }