Exemple #1
0
     if ($current_state != fn_crc32(serialize($cart['user_data']))) {
         $cart['recalculate'] = true;
     }
 } else {
     $_user_data = fn_restore_post_data('user_data');
     if (!empty($_user_data)) {
         $_SESSION['failed_registration'] = true;
     } else {
         unset($_SESSION['failed_registration']);
     }
     fn_add_user_data_descriptions($cart['user_data']);
     if (!empty($_REQUEST['action'])) {
         Tygh::$app['view']->assign('checkout_type', $_REQUEST['action']);
     }
 }
 fn_get_default_credit_card($cart, !empty($_user_data) ? $_user_data : $cart['user_data']);
 if (!empty($cart['extra_payment_info'])) {
     $cart['payment_info'] = empty($cart['payment_info']) ? array() : $cart['payment_info'];
     $cart['payment_info'] = array_merge($cart['payment_info'], $cart['extra_payment_info']);
 }
 Tygh::$app['view']->assign('user_data', !empty($_user_data) ? $_user_data : $cart['user_data']);
 $contact_info_population = fn_check_profile_fields_population($cart['user_data'], 'E', $profile_fields);
 Tygh::$app['view']->assign('contact_info_population', $contact_info_population);
 $contact_fields_filled = fn_check_profile_fields_population($cart['user_data'], 'C', $profile_fields);
 Tygh::$app['view']->assign('contact_fields_filled', $contact_fields_filled);
 $guest_checkout = !empty($cart['guest_checkout']) || !$display_steps['step_one'];
 // Check fields population on first and second steps
 if (($contact_info_population || $guest_checkout) && empty($_SESSION['failed_registration'])) {
     if (!fn_check_profile_fields_population($cart['user_data'], 'C', $profile_fields)) {
         $recheck_edit_step = false;
         if ($cart['edit_step'] != 'step_one') {
    Registry::get('view')->assign('cart', $cart);
    Registry::get('view')->assign('cart_products', array_reverse($cart_products, true));
    Registry::get('view')->assign('product_groups', $cart['product_groups']);
    // Step 4: Summary
} elseif ($mode == 'summary') {
    if (!empty($_SESSION['shipping_product_groups'])) {
        define('CACHED_SHIPPING_RATES', true);
    }
    list($cart_products, $cart['product_groups']) = fn_calculate_cart_content($cart, $auth, 'E', true, Registry::get('settings.General.checkout_style') != 'multi_page' ? 'F' : 'I');
    // we need this for promotions only actually...
    $profile_fields = fn_get_profile_fields('O');
    if (empty($cart['payment_id']) && floatval($cart['total']) || !fn_allow_place_order($cart)) {
        return array(CONTROLLER_STATUS_REDIRECT, "checkout.checkout");
    }
    fn_checkout_summary($cart);
    fn_get_default_credit_card($cart, empty($cart['user_data']) ? array() : $cart['user_data']);
    Registry::get('view')->assign('product_groups', $cart['product_groups']);
    if (defined('AJAX_REQUEST')) {
        fn_gather_additional_products_data($cart_products, array('get_icon' => true, 'get_detailed' => false, 'get_options' => true, 'get_discounts' => false));
        Registry::get('view')->assign('cart', $cart);
        Registry::get('view')->assign('cart_products', array_reverse($cart_products, true));
        Registry::get('view')->assign('location', 'checkout');
        Registry::get('view')->assign('profile_fields', $profile_fields);
        Registry::get('view')->assign('use_ajax', true);
        if (Registry::get('settings.General.checkout_style') != 'multi_page') {
            Registry::get('view')->assign('edit_step', 'step_four');
            Registry::get('view')->display('views/checkout/components/checkout_steps.tpl');
            Registry::get('view')->display('views/checkout/components/cart_items.tpl');
        } else {
            Registry::get('view')->display('views/checkout/checkout.tpl');
        }