/** * Call on Order Cancell * * Handles to call when order is being cancelled by * customer * * @package Social Deals Engine * @since 1.0.0 */ function wps_deals_order_cancel_by_customer() { global $wps_deals_model; //model class $model = $wps_deals_model; if (isset($_GET['wps_deals_cancel_order']) && !empty($_GET['wps_deals_cancel_order']) && isset($_GET['order_id']) && !empty($_GET['order_id'])) { //order id $orderid = $_GET['order_id']; //get existing order status $paymentstatus = $model->wps_deals_get_ordered_payment_status($orderid, true); //check payment status should be pending or failed if ($paymentstatus == '0' || $paymentstatus == '3') { //update payment status wps_deals_update_payment_status('4', $orderid); //make order cancelled $cancelqrystrargs = array('wps_deals_cancel_order' => false, 'order_id' => $orderid); //send back user to cancel order page wps_deals_send_on_cancel_page($cancelqrystrargs); } //end if to check payment status } //check wps_deals_cancel_order is set and not empty & order_id must set }
$userdata = $model->wps_deals_get_ordered_user_details($orderid); $useremail = isset($userdata['user_email']) ? $userdata['user_email'] : ''; $userid = isset($userdata['user_id']) ? $userdata['user_id'] : ''; if (isset($_POST['wps-deals-order-edit-submit']) && !empty($_POST['wps-deals-order-edit-submit']) && $_POST['wps-deals-order-edit-submit'] == __('Update Order', 'wpsdeals')) { $useremail = isset($_POST['wps-deals-edit-order-email']) && !empty($_POST['wps-deals-edit-order-email']) ? $_POST['wps-deals-edit-order-email'] : ''; // update the value for the user email to post meta update_post_meta($orderid, $prefix . 'payment_user_email', $useremail); $userdata['user_email'] = $useremail; //update userdata to database update_post_meta($orderid, $prefix . 'order_userdetails', $userdata); /*//update payment status update_post_meta($orderid, $prefix.'payment_status',$_POST['wps-deals-edit-order-payment-status']);*/ //update tracking data $newstatus = $_POST['wps-deals-edit-order-payment-status']; //update payment status wps_deals_update_payment_status($newstatus, $orderid); //get order track data $track = get_post_meta($orderid, $prefix . 'order_track', true); //check stored status and new status are not same //or order payment not is set and not empty if ($payment_status != $_POST['wps-deals-edit-order-payment-status'] || isset($_POST['wps-deals-edit-order-payment-note']) && !empty($_POST['wps-deals-edit-order-payment-note'])) { //check payment note is not blank and payment status is changed $comments = ''; if (!empty($_POST['wps-deals-edit-order-payment-note'])) { //order update comment $comments .= $_POST['wps-deals-edit-order-payment-note']; } //if notify custom is checked then send email to user $args = array(); if (isset($_POST['wps-deals-order-edit-notify']) && !empty($_POST['wps-deals-order-edit-notify'])) { $args['order_id'] = $orderid;
/** * Paypal payment validate * * Handles to validate paypal payment * * @package Social Deals Engine * @since 1.0.0 */ function wps_deals_paypal_verfication() { global $wps_deals_paypal, $wps_deals_model; $prefix = WPS_DEALS_META_PREFIX; //paypal class $paypal = $wps_deals_paypal; //model class $model = $wps_deals_model; if (isset($_GET['dealslistner']) && $_GET['dealslistner'] == 'paypalipn') { //check listner value if ($paypal->validate_ipn()) { //check validate ipn //status of paypal transaction $status = $paypal->ipn_data['payment_status']; //get order id $orderid = $_POST['custom']; // update the value for the paypal data to the post meta box update_post_meta($orderid, $prefix . 'order_ipn_data', $paypal->ipn_data); // ipn data /************** Code For Buy Now Start ( Signle Purchase ) **************/ // get the value of payment user email from the post meta $payment_user_email = get_post_meta($orderid, $prefix . 'payment_user_email', true); // ipn data if (empty($payment_user_email)) { $user_email = isset($paypal->ipn_data['payer_email']) ? $paypal->ipn_data['payer_email'] : ''; $ordered_deal_userdetails = array('user_id' => '0', 'user_name' => '', 'user_email' => $user_email, 'first_name' => isset($paypal->ipn_data['first_name']) ? $paypal->ipn_data['first_name'] : __('Guest', 'wpsdeals'), 'last_name' => isset($paypal->ipn_data['last_name']) ? $paypal->ipn_data['last_name'] : ''); // update the value for the user details to the post meta box update_post_meta($orderid, $prefix . 'order_userdetails', $ordered_deal_userdetails); // update the value for the user email to post meta update_post_meta($orderid, $prefix . 'payment_user_email', $user_email); } /************** Code For Buy Now End ( Signle Purchase ) **************/ //update payment status $payment_status = $model->wps_deals_paypal_status_to_value($status); //order details $orderdata = $model->wps_deals_get_post_meta_ordered($orderid); //user details $userdetails = $model->wps_deals_get_ordered_user_details($orderid); switch ($status) { case 'Completed': //update payments status wps_deals_update_payment_status($payment_status, $orderid); //order tracking data update $trackargs = array('orderid' => $orderid, 'payment_status' => $payment_status, 'notify' => '1'); wps_deals_update_order_track($trackargs); break; case 'Reversed': case 'Chargeback': $args = array(); $args['order_id'] = $orderid; $args['email'] = $userdetails['user_email']; $args['status'] = $status; //send email to buyer $model->wps_deals_send_order_status_email($args); $adminargs = array('subject' => sprintf(__('Payment for order %s refunded/reversed', 'wpsdeals'), $orderid), 'message' => sprintf(__('Order %s has been marked as refunded - PayPal reason code: %s', 'wpsdeals'), $orderid, $_POST['reason_code'])); //send email to admin $model->wps_deals_send_order_status_email_admin($adminargs); //update payment status wps_deals_update_payment_status($payment_status, $orderid); //order tracking data update $trackargs = array('orderid' => $orderid, 'payment_status' => $payment_status, 'notify' => '1'); wps_deals_update_order_track($trackargs); break; case 'Refunded': if ($orderdata['order_total'] == $_POST['mc_gross'] * -1) { $args = array(); $args['order_id'] = $orderid; $args['email'] = $userdetails['user_email']; $args['status'] = $status; //send email to buyer $model->wps_deals_send_order_status_email($args); $adminargs = array('subject' => sprintf(__('Payment for order %s refunded/reversed', 'wpsdeals'), $orderid), 'message' => sprintf(__('Order %s has been marked as refunded - PayPal reason code: %s', 'wpsdeals'), $orderid, $_POST['reason_code'])); //send email to admin $model->wps_deals_send_order_status_email_admin($adminargs); //update payment status wps_deals_update_payment_status($payment_status, $orderid); //order tracking data update $trackargs = array('orderid' => $orderid, 'payment_status' => $payment_status, 'notify' => '1'); wps_deals_update_order_track($trackargs); } break; default: //update payment status wps_deals_update_payment_status($payment_status, $orderid); //order tracking data update $trackargs = array('orderid' => $orderid, 'payment_status' => $payment_status, 'notify' => '0'); wps_deals_update_order_track($trackargs); break; } //do action when paypal ipn is being verified do_action('wps_deals_verify_paypal_ipn', $orderid); } //end if to check ipn data is valid or not } //end if to check ipnlistner is set and it must be 'paypalipn' }