Пример #1
0
 function wppizza_admin_save_metaboxes($item_id, $item_details)
 {
     /** bypass, when doing "quickedit" (ajax) and /or "bulk edit"  as it will otherwsie loose all meta info (i.e prices, additives etc)!!!***/
     if (defined('DOING_AJAX') || isset($_GET['bulk_edit'])) {
         return;
     }
     /**bypass the below when activating plugin as we are installing the default items on first activation via wp_insert_post()**/
     if (!isset($_GET['activate'])) {
         /***as this function gets called when creating a new page, we will also insert some default values (as $_POST will be empty)**/
         // Check post type first
         if (isset($item_details->post_type) && $item_details->post_type == $this->pluginSlug) {
             //**additives array**//
             $itemMeta['additives'] = array();
             if (isset($_POST[$this->pluginSlug]['additives'])) {
                 foreach ($_POST[$this->pluginSlug]['additives'] as $k => $v) {
                     $itemMeta['additives'][$k] = (int) $_POST[$this->pluginSlug]['additives'][$k];
                 }
             }
             /**alt tax rate**/
             $itemMeta['item_tax_alt'] = false;
             if (isset($_POST[$this->pluginSlug]['item_tax_alt'])) {
                 $itemMeta['item_tax_alt'] = true;
             }
             /**set some default values (namely sizes and prices) when adding new page**/
             if (!isset($_POST[$this->pluginSlug]['sizes'])) {
                 $options = $this->pluginOptions;
                 $optionsSizes = wppizza_sizes_available($options['sizes']);
                 /**get no of price input fields of first available size option**/
                 reset($optionsSizes);
                 $first_key = key($optionsSizes);
                 $_POST[$this->pluginSlug]['sizes'] = $first_key;
                 if (isset($optionsSizes[$first_key]['price'])) {
                     $_POST[$this->pluginSlug]['prices'] = $optionsSizes[$first_key]['price'];
                 }
             }
             //**sizes**//
             $itemMeta['sizes'] = (int) $_POST[$this->pluginSlug]['sizes'];
             //**prices array**//
             $itemMeta['prices'] = array();
             if (isset($_POST[$this->pluginSlug]['prices'])) {
                 foreach ($_POST[$this->pluginSlug]['prices'] as $k => $v) {
                     $itemMeta['prices'][$k] = wppizza_validate_float_only($_POST[$this->pluginSlug]['prices'][$k], 2);
                 }
             }
             update_post_meta($item_id, $this->pluginSlug, $itemMeta);
         }
     }
 }
Пример #2
0
/*******************************************************************************************************
*
*
*	[tip added ]
*
*
*******************************************************************************************************/
if (isset($_POST['vars']['type']) && $_POST['vars']['type'] == 'add_tips') {
    /***************************************************************
    		[get and parse all user post variables and save in session and return parsed $params
    	***************************************************************/
    $params = $this->wppizza_sessionise_userdata($_POST['vars']['data'], $options['order_form']);
    /*****************************************
    		[sanitize gratuity]
    	*****************************************/
    $tips = wppizza_validate_float_only($params['ctips'], 2);
    global $wpdb;
    /*might as well delete the previously initialized order. So we do not delete arbitrary stuff when messing with the hash, restrict to INITIALIZED and orders of 3 minutes or less. Ought to be reasonably safe**/
    $res = $wpdb->query($wpdb->prepare("DELETE FROM " . $wpdb->prefix . $this->pluginOrderTable . " WHERE hash=%s AND payment_status='INITIALIZED' AND order_date > TIMESTAMPADD(MINUTE,-3,NOW()) ", $params['wppizza_hash']));
    /**add tips distincly to session*/
    $_SESSION[$this->pluginSession]['tips'] = $tips;
    /*****************************************
    		[parse and add all get variables
    	*****************************************/
    $getParameters = array();
    if ($_POST['vars']['urlGetVars'] != '') {
        parse_str(substr($_POST['vars']['urlGetVars'], 1), $getParameters);
        /*loose the '?'  */
    }
    /*********build the location url making sure permalinks are taken care of too**/
    $location = $this->wppizza_set_redirect_url($_POST['vars']['locHref'], $getParameters);
function wppizza_surchargestoarray($str)
{
    $str = explode("|", $str);
    $array = array();
    foreach ($str as $s) {
        $keyVal = explode(":", $s);
        $key = wppizza_validate_string($keyVal[0]);
        /**this should definitely be a float/number**/
        $val = '0';
        if (isset($keyVal[1])) {
            $val = wppizza_validate_float_only($keyVal[1]);
            /**add percentage sign if required**/
            $hasPc = strpos($keyVal[1], '%');
            if ($hasPc !== false) {
                $val .= '%';
            }
        }
        $array[$key] = $val;
    }
    return $array;
}
        }
    }
}
/**validate sizes settings***/
if (isset($_POST['' . $this->pluginSlug . '_sizes'])) {
    $options['sizes'] = array();
    //initialize array
    if (isset($input['sizes'])) {
        foreach ($input['sizes'] as $a => $b) {
            $i = 0;
            foreach ($b as $c => $d) {
                if ($i == 0) {
                    $options['sizes'][$a][$c]['lbladmin'] = wppizza_validate_string($d['lbladmin']);
                }
                $options['sizes'][$a][$c]['lbl'] = wppizza_validate_string($d['lbl']);
                $options['sizes'][$a][$c]['price'] = wppizza_validate_float_only($d['price'], 2);
                $i++;
            }
        }
    }
}
/**validate additives ***/
if (isset($_POST['' . $this->pluginSlug . '_additives'])) {
    $options['additives'] = array();
    //initialize array
    if (isset($input['additives'])) {
        foreach ($input['additives'] as $a => $b) {
            if (trim($b['name']) != '') {
                $sort = $b['sort'] != '' ? wppizza_validate_int_only($b['sort']) : '';
                $options['additives'][$a] = array('sort' => $sort, 'name' => wppizza_validate_string($b['name']));
            }
Пример #5
0
 function wppizza_gateway_order_details($addVars = array())
 {
     $gatewayOrder = array();
     $cartDetails = wppizza_order_summary($_SESSION[$this->pluginSession], $this->pluginOptions, 'orderdetails');
     $gatewayOrder['currencyiso'] = $cartDetails['currencyiso'];
     $gatewayOrder['currency'] = $cartDetails['currency'];
     foreach ($cartDetails['items'] as $k => $v) {
         $gatewayOrder['item'][$k]['postId'] = '' . $v['postId'] . '';
         $gatewayOrder['item'][$k]['name'] = '' . $v['name'] . '';
         $gatewayOrder['item'][$k]['size'] = '' . $v['size'] . '';
         $gatewayOrder['item'][$k]['count'] = '' . $v['count'] . '';
         $gatewayOrder['item'][$k]['quantity'] = '' . $v['count'] . '';
         /*legacy some customised templates may use this*/
         $gatewayOrder['item'][$k]['price'] = '' . wppizza_validate_float_only($v['price']) . '';
         $gatewayOrder['item'][$k]['pricetotal'] = '' . wppizza_validate_float_only($v['pricetotal']) . '';
         $gatewayOrder['item'][$k]['categories'] = $v['categories'];
         /**add any additional info to name*/
         $addInfo = array();
         if (is_array($v['additionalinfo']) && count($v['additionalinfo']) > 0) {
             foreach ($v['additionalinfo'] as $additionalInfo) {
                 $addInfo[] = '' . $additionalInfo . '';
             }
         }
         //$gatewayOrder['item'][$k]['additionalinfo']=implode("",$addInfo);
         $gatewayOrder['item'][$k]['additionalinfo'] = $addInfo;
         $gatewayOrder['item'][$k]['additionalInfo'] = implode(" ", $addInfo);
         /*legacy paypal and order thank you page (note upper case I)*/
         $gatewayOrder['item'][$k]['extend'] = $v['extend'];
         $gatewayOrder['item'][$k]['extenddata'] = $v['extenddata'];
         /**to store data (keys, id's count, prices  etc) in the db to maybe retrieve later, put it in this key**/
         $gatewayOrder['item'][$k]['catIdSelected'] = wppizza_validate_int_only($v['catIdSelected']);
         /**store selected category.**/
     }
     $gatewayOrder['total_price_items'] = wppizza_validate_float_only($cartDetails['order_value']['total_price_items']['val']);
     $gatewayOrder['discount'] = wppizza_validate_float_only($cartDetails['order_value']['discount']['val']);
     $gatewayOrder['taxrate'] = wppizza_validate_float_only($cartDetails['taxrate']);
     $gatewayOrder['item_tax'] = wppizza_validate_float_only($cartDetails['order_value']['item_tax']['val']);
     $gatewayOrder['taxes_included'] = wppizza_validate_float_only($cartDetails['order_value']['taxes_included']['val']);
     $gatewayOrder['delivery_charges'] = !empty($cartDetails['order_value']['delivery_charges']['val']) ? wppizza_validate_float_only($cartDetails['order_value']['delivery_charges']['val']) : '';
     $gatewayOrder['tips'] = !empty($cartDetails['tips']['val']) ? wppizza_validate_float_only($cartDetails['tips']['val']) : '';
     $gatewayOrder['selfPickup'] = !empty($cartDetails['selfPickup']) ? wppizza_validate_int_only($cartDetails['selfPickup']) : 0;
     $gatewayOrder['total'] = wppizza_validate_float_only($cartDetails['order_value']['total']['val']);
     /**add any additional variables are set we want to pass/hash*/
     foreach ($addVars as $k => $v) {
         $gatewayOrder[$k] = $v;
     }
     /****add a filter for adding other data to order_ini****/
     $gatewayOrder = apply_filters('wppizza_filter_order_ini_add_vars', $gatewayOrder);
     /*****created and return checkable hash**/
     $cartHash = wppizza_mkHash($gatewayOrder);
     /*make unique hash*/
     $gatewayOrder['hash'] = $cartHash['hash'];
     /*add hash to array*/
     $gatewayOrder['order_ini'] = $cartHash['order_ini'];
     /*add orig hash string to array*/
     return $gatewayOrder;
 }