function fn_wishlist_sucess_user_login($udata, $auth) { if (AREA == 'C') { if ($cu_id = fn_get_session_data('cu_id')) { fn_clear_cart($cart); fn_save_cart_content($cart, $cu_id, 'W', 'U'); } } }
} } if ($_REQUEST['user_data']['email'] !== $_REQUEST['user_data']['email2']) { fn_set_notification('W', __('warning'), __('error_validator_password', array('[field2]' => __('email'), '[field]' => __('validate_email')))); $is_valid_user_data = false; } fn_restore_processed_user_password($_REQUEST['user_data'], $_POST['user_data']); $res = fn_update_user($auth['user_id'], $_REQUEST['user_data'], $auth, !empty($_REQUEST['ship_to_another']), true); if ($res) { list($user_id, $profile_id) = $res; // Cleanup user info stored in cart if (!empty($_SESSION['cart']) && !empty($_SESSION['cart']['user_data'])) { $_SESSION['cart']['user_data'] = fn_array_merge($_SESSION['cart']['user_data'], $_REQUEST['user_data']); } // Delete anonymous authentication if ($cu_id = fn_get_session_data('cu_id') && !empty($auth['user_id'])) { fn_delete_session_data('cu_id'); } Session::regenerateId(); if (!empty($_REQUEST['return_url'])) { return array(CONTROLLER_STATUS_OK, $_REQUEST['return_url']); } } else { fn_save_post_data('user_data'); fn_delete_notification('changes_saved'); } if (!empty($user_id) && !$is_update) { $redirect_url = "profiles.success_add"; } else { $redirect_url = "profiles." . (!empty($user_id) ? "update" : "add") . "?"; if (Registry::get('settings.General.user_multiple_profiles') == 'Y') {
function fn_ls_check_all_option_variants_inventories($product_id, $product_options = array()) { $options_variants_inventories = fn_product_variants_inventar($product_id, $product_options); $fieldsOptionsVariantsLinksToProducts = "?:product_options.option_id, c.variant_id, d.product_id AS linked_prodict_id, d.product_nr, c.set_by_user, p.amount"; $conditionOptionsVariantsLinksToProducts = db_quote(' (?:product_options.product_id = ?i OR (?:product_options.product_id=0 AND n.product_id = ?i))', $_REQUEST['product_id'], $_REQUEST['product_id']); $joinOptionsVariantsLinksToProducts = db_quote(' LEFT JOIN ?:product_global_option_links n ON ?:product_options.option_id = n.option_id '); $joinOptionsVariantsLinksToProducts .= db_quote(' JOIN ?:product_option_variants c ON ?:product_options.option_id = c.option_id'); $joinOptionsVariantsLinksToProducts .= db_quote(' JOIN ?:product_option_variants_link d ON c.variant_id = d.option_variant_id'); $joinOptionsVariantsLinksToProducts .= db_quote(' JOIN ?:products p ON p.product_id = d.product_id'); $optsVariantsLinksToProducts = db_get_array("SELECT " . $fieldsOptionsVariantsLinksToProducts . " FROM ?:product_options " . $joinOptionsVariantsLinksToProducts . " WHERE " . $conditionOptionsVariantsLinksToProducts . " GROUP BY c.variant_id, ?:product_options.option_id" . " ORDER BY ?:product_options.position, c.position"); $optsVariantsLinksToProductsArray = array(); $optionVariantsToProductArray = array(); $optionVariantsToProductArrayStrings = array(); $options_variants_user_set_array = array(); $linked_product_amount = array(); $cart_user_id = $_SESSION['auth']['user_id']; if (!$cart_user_id) { $cart_user_id = fn_get_session_data('cu_id'); } $cartProductInfo = db_get_array("SELECT extra, amount FROM ?:user_session_products WHERE product_id =?i AND user_id=?i", $product_id, intval($cart_user_id)); //$ordersProductInfo = db_get_array("SELECT ?:order_details.extra, ?:order_details.amount FROM ?:orders JOIN ?:order_details ON ?:order_details.order_id =?:orders.order_id WHERE ?:order_details.product_id =?i AND ?:orders.status IN ('O','B','F','P')", $product_id); $productTransactionsInfoArray = array(); foreach ($cartProductInfo as $cartProductI) { $extraUnserializedInfo = unserialize($cartProductI["extra"]); foreach ($extraUnserializedInfo['product_options'] as $k1 => $v1) { if (isset($productTransactionsInfoArray[$v1])) { $productTransactionsInfoArray[$v1] += $cartProductI["amount"]; } else { $productTransactionsInfoArray[$v1] = $cartProductI["amount"]; } } } //var_dump($productTransactionsInfoArray);echo"<br/>_____<br/>"; // foreach($ordersProductInfo as $orderProductInfo){ // $extraUnserializedInfo = unserialize($orderProductInfo["extra"]); // // foreach($extraUnserializedInfo['product_options'] as $k1=>$v1){ // if(isset($productTransactionsInfoArray[$v1])){ // $productTransactionsInfoArray[$v1] += $orderProductInfo["amount"]; // }else{ // $productTransactionsInfoArray[$v1] = $orderProductInfo["amount"]; // } // } // } //var_dump($productTransactionsInfoArray);echo"<br/>_____<br/>"; foreach ($optsVariantsLinksToProducts as $optVariantsLinksToProduct) { if ($optVariantsLinksToProduct['amount'] >= $optVariantsLinksToProduct['product_nr']) { $options_variants_inventories[$optVariantsLinksToProduct['option_id']][$optVariantsLinksToProduct['variant_id']] = $optVariantsLinksToProduct['amount'] - $productTransactionsInfoArray[$optVariantsLinksToProduct['variant_id']]; } else { $options_variants_inventories[$optVariantsLinksToProduct['option_id']][$optVariantsLinksToProduct['variant_id']] = 0; } } //var_dump($options_variants_inventories); return $options_variants_inventories; }
function fn_save_cart_content(&$cart, $user_id, $type = 'C', $user_type = 'R') { if (empty($user_id)) { if (fn_get_session_data('cu_id')) { $user_id = fn_get_session_data('cu_id'); } else { $user_id = fn_crc32(uniqid(TIME)); fn_set_session_data('cu_id', $user_id, COOKIE_ALIVE_TIME); } $user_type = 'U'; } if (!empty($user_id)) { $condition = db_quote("user_id = ?i AND type = ?s AND user_type = ?s", $user_id, $type, $user_type); if (fn_allowed_for('ULTIMATE')) { $condition .= fn_get_company_condition('?:user_session_products.company_id'); } db_query("DELETE FROM ?:user_session_products WHERE " . $condition); if (!empty($cart['products']) && is_array($cart['products'])) { $_cart_prods = $cart['products']; foreach ($_cart_prods as $_item_id => $_prod) { $_cart_prods[$_item_id]['user_id'] = $user_id; $_cart_prods[$_item_id]['timestamp'] = TIME; $_cart_prods[$_item_id]['type'] = $type; $_cart_prods[$_item_id]['user_type'] = $user_type; $_cart_prods[$_item_id]['item_id'] = $_item_id; $_cart_prods[$_item_id]['item_type'] = 'P'; $_cart_prods[$_item_id]['extra'] = serialize($_prod); $_cart_prods[$_item_id]['amount'] = empty($_cart_prods[$_item_id]['amount']) ? 1 : $_cart_prods[$_item_id]['amount']; $_cart_prods[$_item_id]['session_id'] = Session::getId(); $ip = fn_get_ip(); $_cart_prods[$_item_id]['ip_address'] = fn_ip_to_db($ip['host']); if (fn_allowed_for('ULTIMATE')) { $_cart_prods[$_item_id]['company_id'] = Registry::get('runtime.company_id'); } if (!empty($_cart_prods[$_item_id])) { db_query('REPLACE INTO ?:user_session_products ?e', $_cart_prods[$_item_id]); } } } fn_set_hook('save_cart', $cart, $user_id, $type); } return true; }
protected function getNearPickpoints($pickup_points) { $key = md5($this->_shipping_info['shipping_id'] . implode('_', $this->_shipping_info['service_params']['deliveries']) . trim($this->_shipping_info['package_info']['location']['address']) . trim($this->_shipping_info['package_info']['location']['city'])); $near_pickoints = fn_get_session_data($key); if (empty($near_pickoints)) { $address = preg_split('/[ ,]+/', trim($this->_shipping_info['package_info']['location']['address'])); $address[] = trim($this->_shipping_info['package_info']['location']['city']); $url = "https://geocode-maps.yandex.ru/1.x/"; $data = array('geocode' => implode('+', $address), 'format' => 'json', 'results' => 2, 'sco' => 'longlat'); $response = Http::post($url, $data); $response = json_decode($response, true); $response = $response['response']['GeoObjectCollection']; if ($response['metaDataProperty']['GeocoderResponseMetaData']['found'] > 0) { $object = reset($response['featureMember']); $object = $object['GeoObject']; $ll_address = explode(' ', $object['Point']['pos']); } $lat_pickoints = array(); $lng_pickoints = array(); $near_pickoints = array(); foreach ($pickup_points as $point) { $lat_pickoints[$point['id']] = $point['lat']; $lng_pickoints[$point['id']] = $point['lng']; $near_pickoints[$point['id']] = sqrt(pow($lat_pickoints[$point['id']] - $ll_address[1], 2) + pow($lng_pickoints[$point['id']] - $ll_address[0], 2)); } asort($near_pickoints); fn_set_session_data($key, $near_pickoints, YD_CACHE_SESSION); } return $near_pickoints; }
$fieldsOptionsVariantsLinksToProducts = "?:product_options.option_id, c.variant_id, d.product_id AS linked_prodict_id, c.set_by_user, p.amount"; $conditionOptionsVariantsLinksToProducts = db_quote(' (?:product_options.product_id = ?i OR (?:product_options.product_id=0 AND n.product_id = ?i))', $product_id, $product_id); $joinOptionsVariantsLinksToProducts = db_quote(' LEFT JOIN ?:product_global_option_links n ON ?:product_options.option_id = n.option_id '); $joinOptionsVariantsLinksToProducts .= db_quote(' JOIN ?:product_option_variants c ON ?:product_options.option_id = c.option_id'); $joinOptionsVariantsLinksToProducts .= db_quote(' JOIN ?:product_option_variants_link d ON c.variant_id = d.option_variant_id'); $joinOptionsVariantsLinksToProducts .= db_quote(' JOIN ?:products p ON p.product_id = d.product_id'); $optsVariantsLinksToProducts = db_get_array("SELECT " . $fieldsOptionsVariantsLinksToProducts . " FROM ?:product_options " . $joinOptionsVariantsLinksToProducts . " WHERE " . $conditionOptionsVariantsLinksToProducts . " GROUP BY c.variant_id, ?:product_options.option_id" . " ORDER BY ?:product_options.position, c.position"); $optsVariantsLinksToProductsArray = array(); $optionVariantsToProductArray = array(); $optionVariantsToProductArrayStrings = array(); $optionVariantsToProductArrayStrings = array(); $options_variants_user_set_array = array(); $linked_product_amount = array(); $cart_user_id = $_SESSION['auth']['user_id']; if (!$cart_user_id) { $cart_user_id = fn_get_session_data('cu_id'); } $cartProductInfo = db_get_array("SELECT extra, amount FROM ?:user_session_products WHERE product_id =?i AND user_id=?i", $product_id, intval($cart_user_id)); //$ordersProductInfo = db_get_array("SELECT ?:order_details.extra, ?:order_details.amount FROM ?:orders JOIN ?:order_details ON ?:order_details.order_id =?:orders.order_id WHERE ?:order_details.product_id =?i AND ?:orders.status IN ('O','B','F','P')", $product_id); $productTransactionsInfoArray = array(); foreach ($cartProductInfo as $cartProductI) { $extraUnserializedInfo = unserialize($cartProductI["extra"]); foreach ($extraUnserializedInfo['product_options'] as $k1 => $v1) { if (isset($productTransactionsInfoArray[$v1])) { $productTransactionsInfoArray[$v1] += $cartProductI["amount"]; } else { $productTransactionsInfoArray[$v1] = $cartProductI["amount"]; } } } //var_dump($productTransactionsInfoArray);echo"<br/>_____<br/>";
if ($mode == 'index') { // Check for feedback request if ((!Registry::get('runtime.company_id') || Registry::get('runtime.simple_ultimate')) && (Registry::get('settings.General.feedback_type') == 'auto' || fn_allowed_for('ULTIMATE:FREE')) && fn_is_expired_storage_data('send_feedback', SECONDS_IN_DAY * 30)) { $redirect_url = 'feedback.send?action=auto&redirect_url=' . urlencode(Registry::get('config.current_url')); return array(CONTROLLER_STATUS_REDIRECT, $redirect_url); } $time_periods = array(DateTimeHelper::PERIOD_TODAY, DateTimeHelper::PERIOD_YESTERDAY, DateTimeHelper::PERIOD_THIS_MONTH, DateTimeHelper::PERIOD_LAST_MONTH, DateTimeHelper::PERIOD_THIS_YEAR, DateTimeHelper::PERIOD_LAST_YEAR); $time_period = DateTimeHelper::getPeriod(DateTimeHelper::PERIOD_MONTH_AGO_TILL_NOW); // Predefined period selected if (isset($_REQUEST['time_period']) && in_array($_REQUEST['time_period'], $time_periods)) { $time_period = DateTimeHelper::getPeriod($_REQUEST['time_period']); fn_set_session_data('dashboard_selected_period', serialize(array('period' => $_REQUEST['time_period']))); } elseif (isset($_REQUEST['time_from'], $_REQUEST['time_to'])) { $time_period = DateTimeHelper::createCustomPeriod('@' . $_REQUEST['time_from'], '@' . $_REQUEST['time_to']); fn_set_session_data('dashboard_selected_period', serialize(array('from' => $time_period['from']->format(DateTime::ISO8601), 'to' => $time_period['to']->format(DateTime::ISO8601)))); } elseif ($timeframe = fn_get_session_data('dashboard_selected_period')) { $timeframe = unserialize($timeframe); if (isset($timeframe['period']) && in_array($timeframe['period'], $time_periods)) { $time_period = DateTimeHelper::getPeriod($timeframe['period']); } elseif (isset($timeframe['from'], $timeframe['to'])) { $time_period = DateTimeHelper::createCustomPeriod($timeframe['from'], $timeframe['to']); } } $timestamp_from = $time_period['from']->getTimestamp(); $timestamp_to = $time_period['to']->getTimestamp(); $time_difference = $timestamp_to - $timestamp_from; $is_day = $timestamp_to - $timestamp_from <= SECONDS_IN_DAY ? true : false; $stats = ''; if (!defined('HTTPS')) { $stats .= base64_decode('PGltZyBzcmM9Imh0dHA6Ly93d3cuY3MtY2FydC5jb20vaW1hZ2VzL2JhY2tncm91bmQuZ2lmIiBoZWlnaHQ9IjEiIHdpZHRoPSIxIiBhbHQ9IiIgLz4='); }
function fn_twg_api_customer_login($user_login, $password) { $auth_params = array('user_login' => $user_login, 'password' => $password); list($status, $user_data, $user_login, $password, $salt) = fn_auth_routines($auth_params, array()); if ($status === false) { return false; } if (empty($user_data) || fn_generate_salted_password($password, $salt) != $user_data['password'] || empty($password)) { fn_log_event('users', 'failed_login', array('user' => $user_login)); return false; } $_SESSION['auth'] = fn_fill_auth($user_data); // Set last login time db_query("UPDATE ?:users SET ?u WHERE user_id = ?i", array('last_login' => TIME), $user_data['user_id']); $_SESSION['auth']['this_login'] = TIME; $_SESSION['auth']['ip'] = $_SERVER['REMOTE_ADDR']; // Log user successful login fn_log_event('users', 'session', array('user_id' => $user_data['user_id'])); if ($cu_id = fn_get_session_data('cu_id')) { $cart = array(); fn_clear_cart($cart); fn_save_cart_content($cart, $cu_id, 'C', 'U'); fn_delete_session_data('cu_id'); } fn_init_user_session_data($_SESSION, $user_data['user_id']); return $user_data; }
function fn_save_cart_content(&$cart, $user_id, $type = 'C', $user_type = 'R') { if (empty($user_id)) { if (fn_get_session_data('cu_id')) { $user_id = fn_get_session_data('cu_id'); } else { $user_id = fn_crc32(uniqid(TIME)); fn_set_session_data('cu_id', $user_id, COOKIE_ALIVE_TIME); } $user_type = 'U'; } if (!empty($user_id)) { $condition = db_quote("user_id = ?i AND type = ?s AND user_type = ?s", $user_id, $type, $user_type); if (fn_allowed_for('ULTIMATE')) { $condition .= fn_get_company_condition('?:user_session_products.company_id'); } //var_dump($ls_individual_estimations);die(); db_query("DELETE FROM ?:user_session_products WHERE " . $condition); // $cart_products = $_SESSION['cart']['products']; // //get linked products and its details // fn_ls_get_linked_products($cart_products); // //get common linked products order total // fn_ls_linked_products_order_total($cart_products); //pass here only linked products that are in cart // // fn_linked_products_in_cart_amount($cart_products); // // //$new_estimations = fn_ls_delivery_estimation_total($cart_products); // // //var_dump($new_estimations);echo"<br/>________<br/>";die(); // // $ls_individual_estimations = array(); // // foreach ($cart_products as $combination_hash => $product) { // //shipping estimation for individual products // $ls_individual_estimations[$combination_hash] = fn_ls_delivery_estimation($product, $combination_hash, 0); // //check if the estimation is Sunday // if (date("D", $ls_individual_estimations[$combination_hash]) === 'Sun') { // //add one more day to the estimation // $ls_individual_estimations[$combination_hash] = $ls_individual_estimations[$combination_hash] + (24 * 60 * 60); // } // } // var_dump($ls_individual_estimations); // die(); $ls_individual_estimations = array(); foreach ($cart['products'] as $combination_hash => $product) { if ($cart['new_estimations']['individual_estimations'][$combination_hash]) { $ls_individual_estimations[$combination_hash] = $cart['new_estimations']['individual_estimations'][$combination_hash]; } } if (!empty($cart['products']) && is_array($cart['products'])) { $_cart_prods = $cart['products']; foreach ($_cart_prods as $_item_id => $_prod) { $_cart_prods[$_item_id]['user_id'] = $user_id; $_cart_prods[$_item_id]['timestamp'] = TIME; $_cart_prods[$_item_id]['type'] = $type; $_cart_prods[$_item_id]['user_type'] = $user_type; $_cart_prods[$_item_id]['item_id'] = $_item_id; $_cart_prods[$_item_id]['item_type'] = 'P'; $_cart_prods[$_item_id]['extra'] = serialize($_prod); //$_cart_prods[$_item_id]['price'] = $_prod['price']; $_cart_prods[$_item_id]['amount'] = empty($_cart_prods[$_item_id]['amount']) ? 1 : $_cart_prods[$_item_id]['amount']; $_cart_prods[$_item_id]['session_id'] = Session::getId(); if ($ls_individual_estimations[$_item_id]) { $_cart_prods[$_item_id]['ls_shipping_estimation'] = $ls_individual_estimations[$_item_id]; } $ip = fn_get_ip(); $_cart_prods[$_item_id]['ip_address'] = $ip['host']; if (fn_allowed_for('ULTIMATE')) { $_cart_prods[$_item_id]['company_id'] = Registry::get('runtime.company_id'); } if (!empty($_cart_prods[$_item_id])) { db_query('REPLACE INTO ?:user_session_products ?e', $_cart_prods[$_item_id]); } } } fn_set_hook('save_cart', $cart, $user_id, $type); } return true; }
/** * Init localizations * * @param array $params request parameters * @return boolean true if localizations exists, false otherwise */ function fn_init_localization($params) { if (AREA != 'C') { return array(INIT_STATUS_OK); } $locs = db_get_hash_array("SELECT localization_id, custom_weight_settings, weight_symbol, weight_unit FROM ?:localizations WHERE status = 'A'", 'localization_id'); if (!empty($locs)) { if (!empty($_REQUEST['lc']) && !empty($locs[$_REQUEST['lc']])) { $cart_localization = $_REQUEST['lc']; } elseif (($l = fn_get_session_data('cart_localization')) && !empty($locs[$l])) { $cart_localization = $l; } else { $_ip = fn_get_ip(true); $_country = fn_get_country_by_ip($_ip['host']); $_lngs = db_get_hash_single_array("SELECT lang_code, 1 as 'l' FROM ?:languages WHERE status = 'A'", array('lang_code', 'l')); $_language = fn_get_browser_language($_lngs); $cart_localization = db_get_field("SELECT localization_id, COUNT(localization_id) as c FROM ?:localization_elements WHERE (element = ?s AND element_type = 'C') OR (element = ?s AND element_type = 'L') GROUP BY localization_id ORDER BY c DESC LIMIT 1", $_country, $_language); if (empty($cart_localization) || empty($locs[$cart_localization])) { $cart_localization = db_get_field("SELECT localization_id FROM ?:localizations WHERE status = 'A' AND is_default = 'Y'"); } } if (empty($cart_localization)) { reset($locs); $cart_localization = key($locs); } if ($cart_localization != fn_get_session_data('cart_localization')) { fn_set_session_data('cart_localization', $cart_localization, COOKIE_ALIVE_TIME); } if ($locs[$cart_localization]['custom_weight_settings'] == 'Y') { Registry::set('config.localization.weight_symbol', $locs[$cart_localization]['weight_symbol']); Registry::set('config.localization.weight_unit', $locs[$cart_localization]['weight_unit']); } fn_define('CART_LOCALIZATION', $cart_localization); } return array(INIT_STATUS_OK); }
/** * Process simple request to shipping service server * * @return string Server response */ public function getSimpleRates() { $data = $this->getRequestData(); $key = md5($data['data']); $sdek_data = fn_get_session_data($key); $data_string = json_encode($data['data']); if (empty($sdek_data)) { $response = Http::post($data['url'], $data['data'], array('Content-Type: application/json', 'Content-Length: ' . strlen($data_string))); fn_set_session_data($key, $response); } else { $response = $sdek_data; } return $response; }
/** * Registers block cache * @param string $cache_name Cache name * @param array $block_scheme Block scheme data */ private static function _registerBlockCache($cache_name, $block_scheme) { if (isset($block_scheme['cache'])) { $additional_level = ''; $default_handlers = fn_get_schema('block_manager', 'block_cache_properties'); if (isset($block_scheme['cache']['update_handlers']) && is_array($block_scheme['cache']['update_handlers'])) { $handlers = $block_scheme['cache']['update_handlers']; } else { $handlers = array(); } $cookie_data = fn_get_session_data(); $cookie_data['all'] = $cookie_data; $additional_level .= self::_generateAdditionalCacheLevel($block_scheme['cache'], 'request_handlers', $_REQUEST); $additional_level .= self::_generateAdditionalCacheLevel($block_scheme['cache'], 'session_handlers', $_SESSION); $additional_level .= self::_generateAdditionalCacheLevel($block_scheme['cache'], 'cookie_handlers', $cookie_data); $additional_level .= self::_generateAdditionalCacheLevel($block_scheme['cache'], 'auth_handlers', $_SESSION['auth']); $additional_level .= '|path=' . Registry::get('config.current_path'); $additional_level .= Embedded::isEnabled() ? '|embedded' : ''; $additional_level = !empty($additional_level) ? md5($additional_level) : ''; $handlers = array_merge($handlers, $default_handlers['update_handlers']); $cache_level = isset($block_scheme['cache']['cache_level']) ? $block_scheme['cache']['cache_level'] : Registry::cacheLevel('html_blocks'); Registry::registerCache($cache_name, $handlers, $cache_level . '__' . $additional_level); } }
public function getIndex($address) { $address = preg_split('/[ ,-]+/', trim($address)); $address = implode('+', $address); $key_address = md5($address); $response = fn_get_session_data($key_address); if (empty($response)) { $url = "https://geocode-maps.yandex.ru/1.x/"; $data = array('geocode' => $address, 'format' => 'json', 'results' => 1); $response = Http::post($url, $data); fn_set_session_data($key_address, $response, YD_CACHE_DAY); } $response = json_decode($response, true); $address_line = $this->findElmArray($response, 'AddressLine'); $address_line = reset($address_line); $result = ''; $url = $this->url_api . 'getIndex'; if (!empty($address_line) && !empty($this->client_ids)) { $data = array('client_id' => $this->client_ids['client_id'], 'sender_id' => $this->client_ids['sender_ids'], 'address' => $address_line); $data['secret_key'] = $this->generateSecretKey('getIndex', $data); $result = $this->getStatic($data['secret_key']); if (empty($result)) { $result = $this->request($url, $data); $this->setStatic($data['secret_key'], $result); } } return $result; }
/** * Process simple request to shipping service server * * @return string Server response */ public function getSimpleRates() { $data = $this->getRequestData(); $key = md5(serialize($data['data'])); $pecom_data = fn_get_session_data($key); if (empty($pecom_data)) { $response = Http::get($data['url'], $data['data']); $response = json_decode($response, true); fn_set_session_data($key, $response); } else { $response = $pecom_data; } return $response; }
<?php use Tygh\Registry; if (!defined('AREA')) { die('Access denied'); } if (defined('PAYMENT_NOTIFICATION')) { if ($mode == 'return' && !empty($_REQUEST['merchant_order_id'])) { include_once 'heartland/Hps.php'; $merchant_order_id = heartlandplace_order($_REQUEST['merchant_order_id']); $order_info = fn_get_session_data('order_info'); $config = new HpsServicesConfig(); $config->secretApiKey = fn_get_session_data('secretkey'); $config->versionNumber = '2102'; $config->developerId = '002914'; $chargeService = new HpsCreditService($config); $address = new HpsAddress(); $address->address = $order_info['b_address']; $address->city = $order_info['b_city']; $address->state = $order_info['b_state']; $address->zip = preg_replace('/[^0-9]/', '', $order_info['b_zipcode']); $address->country = $order_info['b_country']; $validCardHolder = new HpsCardHolder(); $validCardHolder->firstName = $order_info['b_firstname']; $validCardHolder->lastName = $order_info['b_lastname']; $validCardHolder->address = $address; $validCardHolder->phoneNumber = preg_replace('/[^0-9]/', '', $order_info['b_phone']); $suToken = new HpsTokenData(); $suToken->tokenValue = $_REQUEST['securesubmit_token']; try { $pp_response = array('reason_text' => '', 'order_status' => 'F');
* license and accept to the terms of the License Agreement can install * * and use this program. * * * **************************************************************************** * PLEASE READ THE FULL TEXT OF THE SOFTWARE LICENSE AGREEMENT IN THE * * "copyright.txt" FILE PROVIDED WITH THIS DISTRIBUTION PACKAGE. * ****************************************************************************/ // [norton] [add_bean_bag_filling] use Tygh\Registry; if (!defined('BOOTSTRAP')) { die('Access denied'); } $cart =& $_SESSION['cart']; //fn_set_notification('I', 'mode', print_r($mode,true)); if ($mode == 'cart') { $current_postcode = fn_get_session_data('postcode'); if (!empty($_REQUEST['postcode']) && $_REQUEST['postcode'] == 'valid' && empty($current_postcode)) { fn_set_session_data('postcode', 'valid', SECONDS_IN_HOUR); } } // if($mode== 'add2') // { // fn_set_notification('I', 'mode', print_r($_REQUEST,true)); // } // // // Delete discount coupon // if ($mode == 'add_bean_bag_filling' or $mode == 'add') { // if (empty($auth['user_id']) && Registry::get('settings.General.allow_anonymous_shopping') != 'Y') { // return array(CONTROLLER_STATUS_REDIRECT, "auth.login_form?return_url=" . urlencode($_SERVER['HTTP_REFERER'])); // }
/** * Log in user using only user id * * @param int $user_id User identifier * @param bool $regenerate_session_id Need regenerate session id. Default false. * @return string * return 0 - we can't find user with provided user_id * return 1 - user was successfully logged * return 2 - user disabled */ function fn_login_user($user_id = 0, $regenerate_session_id = false) { $udata = array(); $auth =& Tygh::$app['session']['auth']; $condition = ''; $result = LOGIN_STATUS_USER_NOT_FOUND; /** * Change parameter for login user * * @param int $user_id User identifier * @param array $udata User data * @param array $auth Authentication data * @param array $condition String containing SQL-query condition possibly prepended with a logical operator (AND or OR) */ fn_set_hook('login_user_pre', $user_id, $udata, $auth, $condition); if (!empty($user_id)) { if ($regenerate_session_id) { Tygh::$app['session']->regenerateID(); $auth =& Tygh::$app['session']['auth']; } if (fn_allowed_for('ULTIMATE')) { if (Registry::get('settings.Stores.share_users') == 'N' && AREA != 'A') { $condition .= fn_get_company_condition('?:users.company_id'); } } $udata = db_get_row("SELECT * FROM ?:users WHERE user_id = ?i AND status = 'A'" . $condition, $user_id); if (empty($udata)) { $udata = db_get_row("SELECT * FROM ?:users WHERE user_id = ?i AND user_type IN ('A', 'V', 'P')", $user_id); } unset(Tygh::$app['session']['status']); $auth = fn_fill_auth($udata, $auth); if (!empty($udata)) { fn_set_hook('sucess_user_login', $udata, $auth); if (AREA == 'C') { if ($cu_id = fn_get_session_data('cu_id')) { fn_clear_cart($cart); fn_save_cart_content($cart, $cu_id, 'C', 'U'); fn_delete_session_data('cu_id'); } fn_init_user_session_data(Tygh::$app['session'], $udata['user_id']); } // Set last login time db_query("UPDATE ?:users SET ?u WHERE user_id = ?i", array('last_login' => TIME), $user_id); // Log user successful login fn_log_event('users', 'session', array('user_id' => $user_id)); $result = LOGIN_STATUS_OK; } else { $result = LOGIN_STATUS_USER_DISABLED; } } else { $auth = fn_fill_auth($udata, $auth); $result = LOGIN_STATUS_USER_NOT_FOUND; } fn_init_user(); /** * Modifies the result after login user * * @param int $user_id User identifier * @param int $cu_id Cart user identifier * @param array $udata User data * @param array $auth Authentication data * @param array $condition String containing SQL-query condition possibly prepended with a logical operator (AND or OR) * @param string $result Result user login */ fn_set_hook('login_user_post', $user_id, $cu_id, $udata, $auth, $condition, $result); return $result; }
/** * Registers block cache * * @param string $cache_name Cache name * @param array $block_schema Block schema data * @param array $block_data Block data from DB * * @return bool Whether cache have been registered or not */ public static function registerBlockCacheIfNeeded($cache_name, $block_schema, $block_data) { // @TODO: remove Registry calls and use RenderManager::$_location instead. This method should be non-static. $dispatch = Registry::get('runtime.controller') . '.' . Registry::get('runtime.mode'); // Use parameters for current dispatch with fallback to common params if (!empty($block_schema['cache_overrides_by_dispatch'][$dispatch])) { $cache_params = $block_schema['cache_overrides_by_dispatch'][$dispatch]; } elseif (!empty($block_schema['cache'])) { $cache_params = $block_schema['cache']; } else { return false; } $cookie_data = fn_get_session_data(); $cookie_data['all'] = $cookie_data; $callable_handlers_variables = compact('block_schema', 'block_data'); $disable_cache = false; // Check conditions that disable block caching if (!empty($cache_params['disable_cache_when'])) { $disable_cache |= self::findHandlerParamsAtData($cache_params['disable_cache_when'], 'request_handlers', $_REQUEST); $disable_cache |= self::findHandlerParamsAtData($cache_params['disable_cache_when'], 'session_handlers', $_SESSION); $disable_cache |= self::findHandlerParamsAtData($cache_params['disable_cache_when'], 'cookie_handlers', $cookie_data); $disable_cache |= self::findHandlerParamsAtData($cache_params['disable_cache_when'], 'auth_handlers', $_SESSION['auth']); // Disable cache if any of callable handlers returns true if (!empty($cache_params['disable_cache_when']['callable_handlers'])) { self::execCallableHandlers(function ($handler_name, $handler_result) use(&$disable_cache) { $disable_cache |= $handler_result; }, (array) $cache_params['disable_cache_when']['callable_handlers'], $callable_handlers_variables); } } if ($disable_cache) { return false; } // Generate suffix to cache key using dependencies specified at schema $cache_key_suffix = ''; $generate_additional_level = function ($param_name, $param_value) use(&$cache_key_suffix) { $cache_key_suffix .= '|' . $param_name . '=' . md5(serialize($param_value)); }; self::findHandlerParamsAtData($cache_params, 'request_handlers', $_REQUEST, $generate_additional_level); self::findHandlerParamsAtData($cache_params, 'session_handlers', $_SESSION, $generate_additional_level); self::findHandlerParamsAtData($cache_params, 'cookie_handlers', $cookie_data, $generate_additional_level); self::findHandlerParamsAtData($cache_params, 'auth_handlers', $_SESSION['auth'], $generate_additional_level); if (!empty($cache_params['callable_handlers'])) { self::execCallableHandlers($generate_additional_level, (array) $cache_params['callable_handlers'], $callable_handlers_variables); } $cache_key_suffix .= '|path=' . Registry::get('config.current_path'); $cache_key_suffix .= Embedded::isEnabled() ? '|embedded' : ''; $cache_key_suffix = empty($cache_key_suffix) ? '' : md5($cache_key_suffix); $default_update_handlers = fn_get_schema('block_manager', 'block_cache_properties'); if (isset($cache_params['update_handlers']) && is_array($cache_params['update_handlers'])) { $handlers = array_merge($cache_params['update_handlers'], $default_update_handlers['update_handlers']); } else { $handlers = $default_update_handlers['update_handlers']; } $cache_level = isset($cache_params['cache_level']) ? $cache_params['cache_level'] : Registry::cacheLevel('html_blocks'); Registry::registerCache($cache_name, $handlers, $cache_level . '__' . $cache_key_suffix); // Check conditions that trigger block cache regeneration $regenerate_cache = false; if (!empty($cache_params['regenerate_cache_when'])) { $regenerate_cache |= self::findHandlerParamsAtData($cache_params['regenerate_cache_when'], 'request_handlers', $_REQUEST); $regenerate_cache |= self::findHandlerParamsAtData($cache_params['regenerate_cache_when'], 'session_handlers', $_SESSION); $regenerate_cache |= self::findHandlerParamsAtData($cache_params['regenerate_cache_when'], 'cookie_handlers', $cookie_data); $regenerate_cache |= self::findHandlerParamsAtData($cache_params['regenerate_cache_when'], 'auth_handlers', $_SESSION['auth']); // Regenerate cache if any of callable handlers returns true if (!empty($cache_params['regenerate_cache_when']['callable_handlers'])) { self::execCallableHandlers(function ($handler_name, $handler_result) use(&$regenerate_cache) { $regenerate_cache |= $handler_result; }, (array) $cache_params['regenerate_cache_when']['callable_handlers'], $callable_handlers_variables); } } if ($regenerate_cache) { Registry::del($cache_name); } return true; }
/** * Log in user using only user id * return 0 - we can't find user with provided user_id * return 1 - user was successfully loggined * return 2 - user disabled * */ function fn_login_user($user_id = '') { $udata = array(); $auth =& $_SESSION['auth']; $condition = ''; $result = LOGIN_STATUS_USER_NOT_FOUND; fn_set_hook('login_user_pre', $user_id, $udata, $auth, $condition); if (!empty($user_id)) { if (fn_allowed_for('ULTIMATE')) { if (Registry::get('settings.Stores.share_users') == 'N' && AREA != 'A') { $condition .= fn_get_company_condition('?:users.company_id'); } } $udata = db_get_row("SELECT * FROM ?:users WHERE user_id = ?i AND status = 'A'" . $condition, $user_id); if (empty($udata)) { $udata = db_get_row("SELECT * FROM ?:users WHERE user_id = ?i AND user_type IN ('A', 'V', 'P')", $user_id); } unset($_SESSION['status']); $auth = fn_fill_auth($udata, $auth); if (!empty($udata)) { fn_set_hook('sucess_user_login', $udata, $auth); if (AREA == 'C') { if ($cu_id = fn_get_session_data('cu_id')) { fn_clear_cart($cart); fn_save_cart_content($cart, $cu_id, 'C', 'U'); fn_delete_session_data('cu_id'); } fn_init_user_session_data($_SESSION, $udata['user_id']); } // Set last login time db_query("UPDATE ?:users SET ?u WHERE user_id = ?i", array('last_login' => TIME), $user_id); // Log user successful login fn_log_event('users', 'session', array('user_id' => $user_id)); $result = LOGIN_STATUS_OK; } else { $result = LOGIN_STATUS_USER_DISABLED; } } else { $auth = fn_fill_auth($udata, $auth); $result = LOGIN_STATUS_USER_NOT_FOUND; } fn_init_user(); fn_set_hook('login_user_post', $user_id, $cu_id, $udata, $auth, $condition, $result); return $result; }
/** * Process simple request to shipping service server * * @return string Server response */ public function getSimpleRates() { $data = $this->getRequestData(); $key = md5(serialize($data['data'])); $edost_data = fn_get_session_data($key); if (empty($edost_data)) { $response = Http::post($data['url'], $data['data'], array('timeout' => $this->_timeout)); fn_set_session_data($key, $response); } else { $response = $edost_data; } return $response; }
function fn_sdek_calculate_cost_by_shipment($order_info, $shipping_info, $shipment_info, $rec_city_code) { $total = $weight = 0; $goods = array(); $length = $width = $height = 20; $sum_rate = 0; $packages = array(); $shipping_info['module'] = $shipment_info['carrier']; foreach ($shipment_info['products'] as $item_id => $amount) { $product = $order_info['products'][$item_id]; $total += $product['subtotal']; $product_extra = db_get_row("SELECT shipping_params, weight FROM ?:products WHERE product_id = ?i", $product['product_id']); if (!empty($product_extra['weight']) && $product_extra['weight'] != 0) { $product_weight = $product_extra['weight']; } else { $product_weight = 0.01; } $p_ship_params = unserialize($product_extra['shipping_params']); $package_length = empty($p_ship_params['box_length']) ? $length : $p_ship_params['box_length']; $package_width = empty($p_ship_params['box_width']) ? $width : $p_ship_params['box_width']; $package_height = empty($p_ship_params['box_height']) ? $height : $p_ship_params['box_height']; $weight_ar = fn_expand_weight($product_weight); $weight = round($weight_ar['plain'] * Registry::get('settings.General.weight_symbol_grams') / 1000, 3); $good['weight'] = $weight; $good['length'] = $package_length; $good['width'] = $package_width; $good['height'] = $package_height; for ($x = 1; $x <= $amount; $x++) { $goods[] = $good; } foreach ($order_info['product_groups'] as $product_groups) { if (!empty($product_groups['products'][$item_id])) { $products[$item_id] = $product_groups['products'][$item_id]; $products[$item_id] = array_merge($products[$item_id], $good); $products[$item_id]['amount'] = $amount; } $shipping_info['package_info'] = $product_groups['package_info']; } } $data_package = Shippings::groupProductsList($products, $shipping_info['package_info']['location']); $data_package = reset($data_package); $shipping_info['package_info_full'] = $data_package['package_info_full']; $shipping_info['package_info'] = $data_package['package_info_full']; $url = 'http://api.edostavka.ru/calculator/calculate_price_by_json.php'; $r_url = 'http://lk.cdek.ru:8080/calculator/calculate_price_by_json.php'; $post['version'] = '1.0'; $post['dateExecute'] = date('Y-m-d'); if (!empty($shipping_info['service_params']['dateexecute'])) { $timestamp = TIME + $shipping_info['service_params']['dateexecute'] * SECONDS_IN_DAY; $dateexecute = date('Y-m-d', $timestamp); } else { $dateexecute = date('Y-m-d'); } $post['dateExecute'] = $dateexecute; if (!empty($shipping_settings['authlogin'])) { $post['authLogin'] = $shipping_info['service_params']['authlogin']; $post['secure'] = !empty($shipping_info['service_params']['authpassword']) ? md5($post['dateExecute'] . "&" . $shipping_info['service_params']['authpassword']) : ''; } $post['authLogin'] = $shipping_info['service_params']['authlogin']; $post['secure'] = md5($post['dateExecute'] . "&" . $shipping_info['service_params']['authpassword']); $post['senderCityId'] = $shipping_info['service_params']['from_city_id']; $post['receiverCityId'] = $rec_city_code; $post['tariffId'] = $shipping_info['service_params']['tariffid']; $post['goods'] = $goods; $post = json_encode($post); $key = md5($post); $sdek_data = fn_get_session_data($key); $content = json_encode($post); if (empty($sdek_data)) { $response = Http::post($url, $post, array('Content-Type: application/json', 'Content-Length: ' . strlen($content)), array('timeout' => SDEK_TIMEOUT)); if (empty($response)) { $response = Http::post($r_url, $post, array('Content-Type: application/json', 'Content-Length: ' . strlen($content)), array('timeout' => SDEK_TIMEOUT)); } fn_set_session_data($key, $response); } else { $response = $sdek_data; } $result = json_decode($response, true); $sum_rate = Shippings::calculateRates(array($shipping_info)); $sum_rate = reset($sum_rate); $result = $sum_rate['price']; return $result; }
/** * Process simple request to shipping service server * * @return string Server response */ public function getSimpleRates() { $data = $this->getRequestData(); // Russian post server works very unstably, that is why we cannot use multithreading. $key = md5(serialize($data['data'])); $response = fn_get_session_data($key); if (empty($response)) { $response = Http::get($data['url'], $data['data']); fn_set_session_data($key, $response); } return $response; }
/** * Gets SQL condition to manipulate with ?:user_session_products table * * @param array $params Params * @return string */ function fn_user_session_products_condition($params = array()) { $params = array_merge(array('user_id' => null, 'session_id' => Tygh::$app['session']->getID(), 'type' => 'C', 'user_type' => '', 'get_session_user_id' => true), $params); if (is_null($params['user_id']) && $params['get_session_user_id']) { if (!empty(Tygh::$app['session']['auth']['user_id'])) { $params['user_id'] = Tygh::$app['session']['auth']['user_id']; // Registereg } else { $params['user_id'] = fn_get_session_data('cu_id'); // Guest } } $conditions = array(); if (!empty($params['user_id'])) { $conditions['user_id'] = db_quote("user_id = ?i", $params['user_id']); } if (!empty($params['session_id'])) { $conditions['session_id'] = db_quote("session_id = ?s", $params['session_id']); } if (!empty($params['type'])) { $conditions['type'] = db_quote("type = ?s", $params['type']); } if (!empty($params['user_type'])) { $conditions['user_type'] = db_quote("user_type = ?s", $params['user_type']); } /** * Process user session products condition * * @param array $params Params * @param array $conditions SQL conditions to manipulate with ?:user_session_products table */ fn_set_hook('user_session_products_condition', $params, $conditions); return implode(' AND ', $conditions); }