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'); }