Beispiel #1
0
/**
 * 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'
}