function fn_gift_certificates_extract_cart(&$cart, &$user_id, &$type, &$user_type) { if (!empty($user_id)) { $_cart_gift_cert = db_get_hash_array("SELECT * FROM ?:user_session_products WHERE user_id = ?i AND type = ?s AND item_type = 'G' AND user_type = ?s", 'item_id', $user_id, $type, $user_type); if (!empty($cart['gift_certificates']) && fn_allowed_for('MULTIVENDOR')) { foreach ($cart['products'] as $cart_id => $product) { if (empty($product['extra']['parent']['certificate'])) { fn_delete_cart_product($cart, $cart_id); fn_set_notification('W', 'Warning', __('gift_cert_with_products')); } } } if (!empty($_cart_gift_cert) && is_array($_cart_gift_cert)) { $other_products = false; foreach ($cart['products'] as $product) { if (empty($product['extra']['parent']['certificate'])) { $other_products = true; break; } } if (fn_allowed_for('MULTIVENDOR') && $other_products) { fn_set_notification('W', 'Warning', __('gift_cert_with_products')); foreach ($_cart_gift_cert as $_item_id => $_gift_cert) { fn_delete_cart_gift_certificate($cart, $_item_id); } } else { $cart['gift_certificates'] = empty($cart['gift_certificates']) ? array() : $cart['gift_certificates']; foreach ($_cart_gift_cert as $_item_id => $_gift_cert) { $_gift_cert_extra = unserialize($_gift_cert['extra']); unset($_gift_cert['extra']); $cart['gift_certificates'][$_item_id] = empty($cart['gift_certificates'][$_item_id]) ? fn_array_merge($_gift_cert, $_gift_cert_extra, true) : $cart['gift_certificates'][$_item_id]; } } } } }
return array(CONTROLLER_STATUS_REDIRECT, 'wishlist.view'); } if ($mode == 'update') { if (!empty($_REQUEST['gift_cert_data']) && !empty($_REQUEST['gift_cert_id']) && $_REQUEST['type'] == 'W') { fn_delete_wishlist_gift_certificate($wishlist, $_REQUEST['gift_cert_id']); list($gift_cert_id, $gift_cert) = fn_add_gift_certificate_to_wishlist($wishlist, $_REQUEST['gift_cert_data']); if (!empty($gift_cert_id)) { $wishlist['gift_certificates'][$gift_cert_id] = $gift_cert; } fn_save_cart_content($wishlist, $auth['user_id'], $_REQUEST['type']); return array(CONTROLLER_STATUS_REDIRECT, 'wishlist.view'); } } if ($mode == 'wishlist_delete') { if (isset($_REQUEST['gift_cert_wishlist_id'])) { fn_delete_cart_gift_certificate($_SESSION['wishlist'], $_REQUEST['gift_cert_wishlist_id']); } return array(CONTROLLER_STATUS_REDIRECT, 'wishlist.view'); } } if ($mode == 'update') { if (!empty($_REQUEST['gift_cert_wishlist_id'])) { $gift_cert_data = fn_get_gift_certificate_info($_REQUEST['gift_cert_wishlist_id'], 'W'); if (!empty($gift_cert_data['extra']['exclude_from_calculate'])) { return array(CONTROLLER_STATUS_NO_PAGE); } Registry::get('view')->assign('gift_cert_data', $gift_cert_data); Registry::get('view')->assign('gift_cert_id', $_REQUEST['gift_cert_wishlist_id']); Registry::get('view')->assign('type', 'W'); } }
$_SESSION['cart']['gift_certificates'][$gift_cert_id] = $gift_cert; } fn_save_cart_content($_SESSION['cart'], $auth['user_id'], $_REQUEST['type']); } } if ($mode == 'preview') { if (!empty($_REQUEST['gift_cert_data'])) { fn_correct_gift_certificate($_REQUEST['gift_cert_data']); fn_show_postal_card($_REQUEST['gift_cert_data']); exit; } } if ($mode == 'delete') { if (isset($_REQUEST['gift_cert_id'])) { $cart =& $_SESSION['cart']; fn_delete_cart_gift_certificate($cart, $_REQUEST['gift_cert_id']); if (fn_cart_is_empty($cart) == true) { fn_clear_cart($cart); } fn_save_cart_content($cart, $auth['user_id']); $cart['recalculate'] = true; fn_calculate_cart_content($cart, $auth, 'A', true, 'F', true); return array(CONTROLLER_STATUS_REDIRECT); } } return array(CONTROLLER_STATUS_OK, 'checkout.cart'); } if ($mode == 'verify') { fn_add_breadcrumb(__('gift_certificate_verification')); $verify_id = db_get_field("SELECT gift_cert_id FROM ?:gift_certificates WHERE gift_cert_code = ?s ?p", $_REQUEST['verify_code'], fn_get_gift_certificate_company_condition('?:gift_certificates.company_id')); if (!empty($verify_id)) {
return array(CONTROLLER_STATUS_REDIRECT, 'wishlist.view'); } if ($mode == 'update') { if (!empty($_REQUEST['gift_cert_data']) && !empty($_REQUEST['gift_cert_id']) && $_REQUEST['type'] == 'W') { fn_delete_wishlist_gift_certificate($wishlist, $_REQUEST['gift_cert_id']); list($gift_cert_id, $gift_cert) = fn_add_gift_certificate_to_wishlist($wishlist, $_REQUEST['gift_cert_data']); if (!empty($gift_cert_id)) { $wishlist['gift_certificates'][$gift_cert_id] = $gift_cert; } fn_save_cart_content($wishlist, $auth['user_id'], $_REQUEST['type']); return array(CONTROLLER_STATUS_REDIRECT, 'wishlist.view'); } } if ($mode == 'wishlist_delete') { if (isset($_REQUEST['gift_cert_wishlist_id'])) { fn_delete_cart_gift_certificate($wishlist, $_REQUEST['gift_cert_wishlist_id']); fn_save_cart_content($wishlist, $auth['user_id'], 'W'); } return array(CONTROLLER_STATUS_REDIRECT, 'wishlist.view'); } } if ($mode == 'update') { if (!empty($_REQUEST['gift_cert_wishlist_id'])) { $gift_cert_data = fn_get_gift_certificate_info($_REQUEST['gift_cert_wishlist_id'], 'W'); if (!empty($gift_cert_data['extra']['exclude_from_calculate'])) { return array(CONTROLLER_STATUS_NO_PAGE); } Tygh::$app['view']->assign('gift_cert_data', $gift_cert_data); Tygh::$app['view']->assign('gift_cert_id', $_REQUEST['gift_cert_wishlist_id']); Tygh::$app['view']->assign('type', 'W'); }