function fre_process_escrow($payment_type, $data) { $payment_return = array('ACK' => false); if ($payment_type == 'paypaladaptive') { $ppadaptive = AE_PPAdaptive::get_instance(); $response = $ppadaptive->PaymentDetails($data['payKey']); $payment_return['payment_status'] = $response->responseEnvelope->ack; // email confirm if (strtoupper($response->responseEnvelope->ack) == 'SUCCESS') { $payment_return['ACK'] = true; // UPDATE order $paymentInfo = $response->paymentInfoList->paymentInfo; if ($paymentInfo[0]->transactionStatus == 'COMPLETED') { wp_update_post(array('ID' => $data['order_id'], 'post_status' => 'publish')); // assign project $bid_action = Fre_BidAction::get_instance(); $bid_action->assign_project($data['bid_id']); } if ($paymentInfo[0]->transactionStatus == 'PENDING') { //pendingReason $payment_return['pending_msg'] = $ppadaptive->get_pending_message($paymentInfo[0]->pendingReason); $payment_return['msg'] = $ppadaptive->get_pending_message($paymentInfo[0]->pendingReason); } } if (strtoupper($response->responseEnvelope->ack) == 'FAILURE') { $payment_return['msg'] = $response->error[0]->message; } } return apply_filters('fre_process_escrow', $payment_return, $payment_type, $data); }
/** * finish project, send money when freelancer review project * @param int $project_id * @since 1.3 * @author Dakachi */ function fre_finish_escrow($project_id) { if (ae_get_option('use_escrow')) { $bid_id_accepted = get_post_meta($project_id, 'accepted', true); if (!ae_get_option('manual_transfer')) { // cho nay co the dung action // execute payment and send money to freelancer $pay_key = get_post_meta($bid_id_accepted, 'fre_paykey', true); if ($pay_key) { $ppadaptive = AE_PPAdaptive::get_instance(); $response = $ppadaptive->executePayment($pay_key); if (strtoupper($response->responseEnvelope->ack) == 'SUCCESS') { // success update order data $order = get_post_meta($bid_id_accepted, 'fre_bid_order', true); if ($order) { wp_update_post(array('ID' => $order, 'post_status' => 'finish')); $mail = Fre_Mailing::get_instance(); $mail->alert_transfer_money($project_id, $bid_id_accepted); } } } } else { $mail = Fre_Mailing::get_instance(); $mail->alert_transfer_money($project_id, $bid_id_accepted); } } }