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); } } }
/******************************************************************************************************* * * * [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'])); }
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; }