Esempio n. 1
0
/**
 * Extract cart content from the customer's profile.
 * $type : C - cart, W - wishlist
 *
 * @param array $cart
 * @param integer $user_id
 * @param string $type
 *
 * @return void
 */
function fn_extract_cart_content(&$cart, $user_id, $type = 'C', $user_type = 'R')
{
    $auth =& $_SESSION['auth'];
    $old_session_id = '';
    // Restore cart content
    if (!empty($user_id)) {
        $item_types = fn_get_cart_content_item_types('X');
        $condition = db_quote("user_id = ?i AND type = ?s AND user_type = ?s AND item_type IN (?a)", $user_id, $type, $user_type, $item_types);
        fn_set_hook('pre_extract_cart', $cart, $condition, $item_types);
        $_prods = db_get_hash_array("SELECT * FROM ?:user_session_products WHERE " . $condition, 'item_id');
        if (!empty($_prods) && is_array($_prods)) {
            $cart['products'] = empty($cart['products']) ? array() : $cart['products'];
            foreach ($_prods as $_item_id => $_prod) {
                $old_session_id = $_prod['session_id'];
                $_prod_extra = unserialize($_prod['extra']);
                unset($_prod['extra']);
                $cart['products'][$_item_id] = empty($cart['products'][$_item_id]) ? fn_array_merge($_prod, $_prod_extra, true) : $cart['products'][$_item_id];
            }
        }
    }
    fn_set_hook('extract_cart', $cart, $user_id, $type, $user_type);
    if ($type == 'C') {
        $cart['change_cart_products'] = true;
        fn_calculate_cart_content($cart, $auth, 'S', false, 'I', false);
    }
}
Esempio n. 2
0
*   (c) 2004 Vladimir V. Kalynyak, Alexey V. Vinokurov, Ilya M. Shalnev    *
*                                                                          *
* This  is  commercial  software,  only  users  who have purchased a valid *
* 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.            *
****************************************************************************/
use Tygh\Registry;
if (!defined('BOOTSTRAP')) {
    die('Access denied');
}
if ($mode == 'cart_list') {
    $item_types = fn_get_cart_content_item_types();
    if (empty($_REQUEST['user_id'])) {
        $carts_list = Tygh::$app['view']->getTemplateVars('carts_list');
        if (!empty($carts_list)) {
            $all_wishlist_products = array();
            if (fn_allowed_for('ULTIMATE')) {
                foreach ($carts_list as $key => $cart_data) {
                    $all_wishlist_products[$key] = db_get_array("SELECT COUNT(item_id) as count" . " FROM ?:user_session_products" . " WHERE user_id = ?i AND company_id = ?i AND type = 'W'" . " GROUP BY user_id, company_id", $cart_data['user_id'], $cart_data['company_id']);
                    $carts_list[$key]['wishlist_products'] = !empty($all_wishlist_products[$key][0]['count']) ? $all_wishlist_products[$key][0]['count'] : 0;
                    $carts_list[$key]['user_data'] = empty($carts_list[$key]['user_data']) ? fn_get_user_info($cart_data['user_id'], true) : $carts_list[$key]['user_data'];
                }
            } else {
                foreach ($carts_list as $key => $cart_data) {
                    $all_wishlist_products[$key] = db_get_array("SELECT COUNT(item_id) as count" . " FROM ?:user_session_products" . " WHERE user_id = ?i AND type = 'W'" . " GROUP BY user_id", $cart_data['user_id']);
                    $carts_list[$key]['wishlist_products'] = !empty($all_wishlist_products[$key][0]['count']) ? $all_wishlist_products[$key][0]['count'] : 0;
                    $carts_list[$key]['user_data'] = empty($carts_list[$key]['user_data']) ? fn_get_user_info($cart_data['user_id'], true) : $carts_list[$key]['user_data'];
Esempio n. 3
0
/**
 * Gets products in a particular abandoned or live cart
 *
 * @param  int   $user_id User ID
 * @param  array $params  Params
 * @return array
 */
function fn_get_cart_products($user_id, $params = array())
{
    $fields = array('p.item_id', 'p.item_type', 'p.product_id', 'p.amount', 'p.price', 'p.extra', 'd.product');
    $conditions = array(db_quote("p.user_id = ?i", $user_id), db_quote("p.type = 'C'"), db_quote("p.item_type IN (?a)", fn_get_cart_content_item_types()));
    if (fn_allowed_for('ULTIMATE') && !empty($params['c_company_id'])) {
        $conditions[] = db_quote("p.company_id = ?i", $params['c_company_id']);
    }
    /**
     * Gets products in a particular abandoned or live cart
     *
     * @param int    $user_id    User ID
     * @param array  $params     Params
     * @param array  $fields     SQL fields to be selected in an SQL-query
     * @param string $conditions String containing SQL-query condition possibly prepended with a logical operator (AND or OR)
     */
    fn_set_hook('get_cart_products', $user_id, $params, $fields, $conditions);
    $cart_products = db_get_array("SELECT " . implode(', ', $fields) . " FROM ?:user_session_products p" . " LEFT JOIN ?:product_descriptions d ON p.product_id = d.product_id AND d.lang_code = ?s" . " WHERE " . implode(' AND ', $conditions), DESCR_SL);
    foreach ($cart_products as $key => $product) {
        $cart_products[$key]['extra'] = unserialize($product['extra']);
    }
    /**
     * Actions after getting products in a particular abandoned or live cart
     *
     * @param int    $user_id       User ID
     * @param array  $params        Params
     * @param array  $cart_products Products list in a abandoned or live cart
     * @param array  $fields        SQL fields to be selected in an SQL-query
     * @param string $conditions    String containing SQL-query condition possibly prepended with a logical operator (AND or OR)
     */
    fn_set_hook('get_cart_products_post', $user_id, $params, $cart_products, $fields, $conditions);
    return $cart_products;
}