$quotes = $shipping_modules->quote(); // if no shipping method has been selected, automatically select the cheapest method. // if the modules status was changed when none were available, to save on implementing // a javascript force-selection method, also automatically select the cheapest shipping // method if more than one module is now enabled if (!isset($_SESSION['shipping']) || isset($_SESSION['shipping']) && $_SESSION['shipping'] == false && xtc_count_shipping_modules() > 1) { $_SESSION['shipping'] = $shipping_modules->cheapest(); } if ($kein_versand == 1) { $_SESSION['shipping'] = false; } $order = new order(); // load all enabled payment modules require DIR_WS_CLASSES . 'payment.php'; $payment_modules = new payment($_SESSION['payment']); $payment_modules->update_status(); require DIR_WS_CLASSES . 'order_total.php'; // GV Code ICW ADDED FOR CREDIT CLASS SYSTEM $order_total_modules = new order_total(); $order_total_modules->process(); // GV Code Start $order_total_modules->collect_posts(); $order_total_modules->pre_confirmation_check(); // GV Code End if (is_array($payment_modules->modules)) { $payment_modules->pre_confirmation_check(); } $breadcrumb->add(NAVBAR_TITLE_PAYPAL_CHECKOUT, xtc_href_link(FILENAME_PAYPAL_CHECKOUT, '', 'SSL')); require DIR_WS_INCLUDES . 'header.php'; if (SHOW_IP_LOG == 'true') { $smarty->assign('IP_LOG', 'true');
public function prepareConfirmation() { global $messageStack, $template, $breadcrumb, $template_dir_select, $template_dir, $language_page_directory, $currencies, $order, $zco_notifier, $db, $current_page_base, $order_total_modules, $credit_covers; // error_reporting(E_ALL); // ini_set('display_errors', 'on'); $_GET['main_page'] = $current_page_base = $current_page = FILENAME_CHECKOUT_CONFIRMATION; if ($_SESSION['cart']->count_contents() <= 0) { zen_redirect(zen_href_link(FILENAME_TIME_OUT)); } if (!$_SESSION['customer_id']) { $_SESSION['navigation']->set_snapshot(array('mode' => 'SSL', 'page' => FILENAME_CHECKOUT_PAYMENT)); zen_redirect(zen_href_link(FILENAME_LOGIN, '', 'SSL')); } else { // validate customer if (zen_get_customer_validate_session($_SESSION['customer_id']) == false) { $_SESSION['navigation']->set_snapshot(); zen_redirect(zen_href_link(FILENAME_LOGIN, '', 'SSL')); } } // avoid hack attempts during the checkout procedure by checking the internal cartID if (isset($_SESSION['cart']->cartID) && $_SESSION['cartID']) { if ($_SESSION['cart']->cartID != $_SESSION['cartID']) { zen_redirect(zen_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL')); } } // if no shipping method has been selected, redirect the customer to the shipping method selection page if (!isset($_SESSION['shipping'])) { zen_redirect(zen_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL')); } if (isset($_SESSION['shipping']['id']) && $_SESSION['shipping']['id'] == 'free_free' && $_SESSION['cart']->get_content_type() != 'virtual' && defined('MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING') && MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING == 'true' && defined('MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER') && $_SESSION['cart']->show_total() < MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER) { zen_redirect(zen_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL')); } if (isset($_POST['payment'])) { $_SESSION['payment'] = $_POST['payment']; } $_SESSION['comments'] = $_POST['comments']; if (DISPLAY_CONDITIONS_ON_CHECKOUT == 'true') { if (!isset($_POST['conditions']) || $_POST['conditions'] != '1') { $messageStack->add_session('checkout_payment', ERROR_CONDITIONS_NOT_ACCEPTED, 'error'); } } // echo $messageStack->size('checkout_payment'); // load the selected payment module require DIR_WS_CLASSES . 'payment.php'; $payment_modules = new payment($_POST['payment']); $payment_modules->update_status(); if (($_POST['payment'] == '' || !is_object($payment_modules->paymentClass)) && $credit_covers === FALSE) { $messageStack->add_session('checkout_payment', ERROR_NO_PAYMENT_MODULE_SELECTED, 'error'); } $GLOBALS[$_POST['payment']] = $payment_modules->paymentClass; require DIR_WS_CLASSES . 'order.php'; $order = new order(); // load the selected shipping module require DIR_WS_CLASSES . 'shipping.php'; $shipping_modules = new shipping($_SESSION['shipping']); require DIR_WS_CLASSES . 'order_total.php'; $order_total_modules = new order_total(); $order_total_modules->collect_posts(); $order_total_modules->pre_confirmation_check(); if (!isset($credit_covers)) { $credit_covers = FALSE; } // echo 'credit covers'.$credit_covers; if ($credit_covers) { unset($_SESSION['payment']); $_SESSION['payment'] = ''; } // @debug echo ($credit_covers == true) ? 'TRUE' : 'FALSE'; if (is_array($payment_modules->modules)) { $payment_modules->pre_confirmation_check(); } if ($messageStack->size('checkout_payment') > 0) { zen_redirect(zen_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL')); } // Stock Check $flagAnyOutOfStock = false; $stock_check = array(); if (STOCK_CHECK == 'true') { for ($i = 0, $n = sizeof($order->products); $i < $n; $i++) { if ($stock_check[$i] = zen_check_stock($order->products[$i]['id'], $order->products[$i]['qty'])) { $flagAnyOutOfStock = true; } } // Out of Stock if (STOCK_ALLOW_CHECKOUT != 'true' && $flagAnyOutOfStock == true) { zen_redirect(zen_href_link(FILENAME_SHOPPING_CART)); } } // update customers_referral with $_SESSION['gv_id'] if ($_SESSION['cc_id']) { $discount_coupon_query = "SELECT coupon_code\n FROM " . TABLE_COUPONS . "\n WHERE coupon_id = :couponID"; $discount_coupon_query = $db->bindVars($discount_coupon_query, ':couponID', $_SESSION['cc_id'], 'integer'); $discount_coupon = $db->Execute($discount_coupon_query); $customers_referral_query = "SELECT customers_referral\n FROM " . TABLE_CUSTOMERS . "\n WHERE customers_id = :customersID"; $customers_referral_query = $db->bindVars($customers_referral_query, ':customersID', $_SESSION['customer_id'], 'integer'); $customers_referral = $db->Execute($customers_referral_query); // only use discount coupon if set by coupon if ($customers_referral->fields['customers_referral'] == '' and CUSTOMERS_REFERRAL_STATUS == 1) { $sql = "UPDATE " . TABLE_CUSTOMERS . "\n SET customers_referral = :customersReferral\n WHERE customers_id = :customersID"; $sql = $db->bindVars($sql, ':customersID', $_SESSION['customer_id'], 'integer'); $sql = $db->bindVars($sql, ':customersReferral', $discount_coupon->fields['coupon_code'], 'string'); $db->Execute($sql); } else { // do not update referral was added before } } if (isset(${$_SESSION}['payment']->form_action_url)) { $form_action_url = ${$_SESSION}['payment']->form_action_url; } else { $form_action_url = zen_href_link(FILENAME_CHECKOUT_PROCESS, '', 'SSL'); } // if shipping-edit button should be overridden, do so $editShippingButtonLink = zen_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL'); if (method_exists(${$_SESSION}['payment'], 'alterShippingEditButton')) { $theLink = ${$_SESSION}['payment']->alterShippingEditButton(); if ($theLink) { $editShippingButtonLink = $theLink; } } // deal with billing address edit button $flagDisablePaymentAddressChange = false; if (isset(${$_SESSION}['payment']->flagDisablePaymentAddressChange)) { $flagDisablePaymentAddressChange = ${$_SESSION}['payment']->flagDisablePaymentAddressChange; } $current_page_base = FILENAME_CHECKOUT_CONFIRMATION; require_once DIR_WS_LANGUAGES . $_SESSION['language'] . '.php'; require_once DIR_WS_MODULES . zen_get_module_directory('require_languages.php'); require_once DIR_WS_MODULES . zen_get_module_directory('meta_tags.php'); $breadcrumb->add(NAVBAR_TITLE_1, zen_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL')); $breadcrumb->add(NAVBAR_TITLE_2); $breadCrumbHtml = $breadcrumb->trail(BREAD_CRUMBS_SEPARATOR); $body_code = DIR_FS_CATALOG . $template->get_template_dir('tpl_ajax_checkout_confirmation_default.php', DIR_WS_TEMPLATE, $current_page_base, 'templates') . '/tpl_ajax_checkout_confirmation_default.php'; ob_start(); require_once $body_code; $confirmationHtml = ob_get_clean(); ob_flush(); return array('breadCrumbHtml' => $breadCrumbHtml, 'confirmationHtml' => $confirmationHtml, 'pageTitle' => META_TAG_TITLE); }
if ($credit_covers) $_SESSION['payment'] = ''; $oPaymentModules = new payment($_SESSION['payment']); require 'includes/classes/class_order_total.php'; require 'includes/classes/class_order.php'; $oOrder = new order; if ( (isset($_SESSION['shipping'])) && ($_SESSION['shipping']['id'] == 'free_free')) { if ( ($oOrder->info['total'] - $oOrder->info['shipping_cost']) < MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER ) { MyOOS_CoreApi::redirect(oos_href_link($aPages['checkout_shipping'], '', 'SSL')); } } $oPaymentModules->update_status(); $oOrderTotalModules = new order_total; $oOrderTotalModules->collect_posts(); if (isset($_SESSION['cot_gv'])) { $credit_covers = $oOrderTotalModules->pre_confirmation_check(); } if ( (is_array($oPaymentModules->modules)) && (count($oPaymentModules->modules) > 1) && (!is_object($$_SESSION['payment'])) && (!$credit_covers) ) { $_SESSION['error_message'] = $aLang['error_no_payment_module_selected']; MyOOS_CoreApi::redirect(oos_href_link($aPages['checkout_payment'], '', 'SSL')); } if (is_array($oPaymentModules->modules)) {
function osC_Checkout_Confirmation() { global $osC_Session, $osC_Services, $messageStack, $breadcrumb, $order, $cart, $payment_modules, $shipping_modules, $order_total_modules, $any_out_of_stock; if ($cart->count_contents() < 1) { tep_redirect(tep_href_link(FILENAME_CHECKOUT, '', 'SSL')); } // avoid hack attempts during the checkout procedure by checking the internal cartID if (isset($cart->cartID) && $osC_Session->exists('cartID')) { if ($cart->cartID != $osC_Session->value('cartID')) { tep_redirect(tep_href_link(FILENAME_CHECKOUT, 'shipping', 'SSL')); } } // if no shipping method has been selected, redirect the customer to the shipping method selection page if ($osC_Session->exists('shipping') == false) { tep_redirect(tep_href_link(FILENAME_CHECKOUT, 'shipping', 'SSL')); } if ($osC_Services->isStarted('breadcrumb')) { $breadcrumb->add(NAVBAR_TITLE_CHECKOUT_CONFIRMATION, tep_href_link(FILENAME_CHECKOUT, $this->_module, 'SSL')); } if (isset($_POST['payment'])) { $osC_Session->set('payment', $_POST['payment']); } $payment =& $osC_Session->value('payment'); if (isset($_POST['comments']) && $osC_Session->exists('comments') && empty($_POST['comments'])) { $osC_Session->remove('comments'); } else { if (tep_not_null($_POST['comments'])) { $osC_Session->set('comments', tep_sanitize_string($_POST['comments'])); } } if (DISPLAY_CONDITIONS_ON_CHECKOUT == 'true') { if (!isset($_POST['conditions']) || $_POST['conditions'] != '1') { $messageStack->add_session('checkout_payment', ERROR_CONDITIONS_NOT_ACCEPTED, 'error'); } } // load the selected payment module require DIR_WS_CLASSES . 'payment.php'; $payment_modules = new payment($osC_Session->value('payment')); $order = new order(); $payment_modules->update_status(); if (is_array($payment_modules->modules) && sizeof($payment_modules->modules) > 1 && !isset($GLOBALS[$payment]) || isset($GLOBALS[$payment]) && is_object($GLOBALS[$payment]) && $GLOBALS[$payment]->enabled == false) { $messageStack->add_session('checkout_payment', ERROR_NO_PAYMENT_MODULE_SELECTED, 'error'); } if ($messageStack->size('checkout_payment') > 0) { tep_redirect(tep_href_link(FILENAME_CHECKOUT, 'payment', 'SSL')); } if (is_array($payment_modules->modules)) { $payment_modules->pre_confirmation_check(); } // load the selected shipping module require DIR_WS_CLASSES . 'shipping.php'; $shipping_modules = new shipping($osC_Session->value('shipping')); require DIR_WS_CLASSES . 'order_total.php'; $order_total_modules = new order_total(); // Stock Check $any_out_of_stock = false; if (STOCK_CHECK == 'true') { for ($i = 0, $n = sizeof($order->products); $i < $n; $i++) { if (tep_check_stock($order->products[$i]['id'], $order->products[$i]['qty'])) { $any_out_of_stock = true; } } // Out of Stock if (STOCK_ALLOW_CHECKOUT != 'true' && $any_out_of_stock == true) { tep_redirect(tep_href_link(FILENAME_CHECKOUT)); } } }