예제 #1
0
 public function lC_Checkout_Confirmation()
 {
     global $lC_Session, $lC_Services, $lC_Language, $lC_ShoppingCart, $lC_Customer, $lC_MessageStack, $lC_NavigationHistory, $lC_Breadcrumb, $lC_Payment, $lC_Vqmod;
     require $lC_Vqmod->modCheck('includes/classes/address_book.php');
     if ($lC_Customer->isLoggedOn() === false) {
         $lC_NavigationHistory->setSnapshot();
         lc_redirect(lc_href_link(FILENAME_ACCOUNT, 'login', 'SSL'));
     }
     if ($lC_ShoppingCart->hasContents() === false) {
         lc_redirect(lc_href_link(FILENAME_CHECKOUT, null, 'SSL'));
     }
     // if no shipping method has been selected, redirect the customer to the shipping method selection page
     if ($lC_ShoppingCart->hasShippingAddress() == false) {
         if (defined('SKIP_CHECKOUT_SHIPPING_PAGE') && SKIP_CHECKOUT_SHIPPING_PAGE == '1') {
         } else {
             lc_redirect(lc_href_link(FILENAME_CHECKOUT, 'shipping', 'SSL'));
         }
     }
     include $lC_Vqmod->modCheck('includes/classes/order.php');
     $this->_page_title = $lC_Language->get('confirmation_heading');
     $lC_Language->load('order');
     if ($lC_Services->isStarted('breadcrumb')) {
         $lC_Breadcrumb->add($lC_Language->get('breadcrumb_checkout_confirmation'), lc_href_link(FILENAME_CHECKOUT, $this->_module, 'SSL'));
     }
     // added due to bootstrap not having order comments before confirmation page
     $_POST['comments'] = $_POST['comments'];
     ////////////////////////////////////////////
     if (isset($_POST['comments']) && isset($_SESSION['comments']) && empty($_POST['comments'])) {
         unset($_SESSION['comments']);
     } elseif (!empty($_POST['comments'])) {
         $_SESSION['comments'] = lc_sanitize_string($_POST['comments']);
     }
     if (isset($_POST['po_number']) && isset($_SESSION['po_number']) && empty($_POST['po_number'])) {
         unset($_SESSION['po_number']);
     } elseif (!empty($_POST['po_number'])) {
         $_SESSION['po_number'] = lc_sanitize_string($_POST['po_number']);
     }
     // added for payment terms
     if (isset($_POST['payment_terms']) && empty($_POST['payment_terms']) === false) {
         $_SESSION['payment_terms'] = $_POST['payment_terms'];
     }
     // load the selected payment module
     include $lC_Vqmod->modCheck('includes/classes/payment.php');
     $lC_Payment = new lC_Payment(isset($_POST['payment_method']) ? $_POST['payment_method'] : $lC_ShoppingCart->getBillingMethod('id'));
     if (isset($_POST['payment_method'])) {
         $lC_ShoppingCart->setBillingMethod(array('id' => $_POST['payment_method'], 'title' => $GLOBALS['lC_Payment_' . $_POST['payment_method']]->getMethodTitle()));
     }
     if ($lC_Payment->hasActive() && (isset($GLOBALS['lC_Payment_' . $lC_ShoppingCart->getBillingMethod('id')]) === false || isset($GLOBALS['lC_Payment_' . $lC_ShoppingCart->getBillingMethod('id')]) && is_object($GLOBALS['lC_Payment_' . $lC_ShoppingCart->getBillingMethod('id')]) && $GLOBALS['lC_Payment_' . $lC_ShoppingCart->getBillingMethod('id')]->isEnabled() === false)) {
         $lC_MessageStack->add('checkout_payment', $lC_Language->get('error_no_payment_module_selected'), 'error');
     }
     if (isset($_SESSION['SKIP_PAYMENT_PAGE']) && $_SESSION['SKIP_PAYMENT_PAGE'] == '1') {
     } else {
         if ($lC_MessageStack->size('checkout_payment') > 0) {
             lc_redirect(lc_href_link(FILENAME_CHECKOUT, 'payment', 'SSL'));
         }
     }
     if ($lC_Payment->hasActive()) {
         $lC_Payment->pre_confirmation_check();
     }
     // Stock Check
     if (STOCK_CHECK == '1' && AUTODISABLE_OUT_OF_STOCK_PRODUCT == '1') {
         foreach ($lC_ShoppingCart->getProducts() as $product) {
             if (!$lC_ShoppingCart->isInStock($product['item_id'])) {
                 lc_redirect(lc_href_link(FILENAME_CHECKOUT, null, 'AUTO'));
             }
         }
     }
 }
예제 #2
0
 public function lC_Checkout_Payment()
 {
     global $lC_Database, $lC_Session, $lC_ShoppingCart, $lC_Customer, $lC_Services, $lC_Language, $lC_NavigationHistory, $lC_Breadcrumb, $lC_Payment, $lC_MessageStack, $lC_Vqmod;
     require $lC_Vqmod->modCheck('includes/classes/address_book.php');
     if ($lC_Customer->isLoggedOn() === false) {
         $lC_NavigationHistory->setSnapshot();
         lc_redirect(lc_href_link(FILENAME_ACCOUNT, 'login', 'SSL'));
     }
     if ($lC_ShoppingCart->hasContents() === false) {
         lc_redirect(lc_href_link(FILENAME_CHECKOUT, null, 'SSL'));
     }
     // if no shipping method has been selected, redirect the customer to the shipping method selection page
     if ($lC_ShoppingCart->hasShippingMethod() === false) {
         if (defined('SKIP_CHECKOUT_SHIPPING_PAGE') && SKIP_CHECKOUT_SHIPPING_PAGE == '1') {
             if (lC_AddressBook::numberOfEntries() < 1) {
                 lc_redirect(lc_href_link(FILENAME_CHECKOUT, 'payment_address', 'SSL'));
             }
         } else {
             lc_redirect(lc_href_link(FILENAME_CHECKOUT, 'shipping', 'SSL'));
         }
     } else {
         if (defined('SKIP_CHECKOUT_SHIPPING_PAGE') && SKIP_CHECKOUT_SHIPPING_PAGE == '1') {
             if (lC_AddressBook::numberOfEntries() < 1) {
                 lc_redirect(lc_href_link(FILENAME_CHECKOUT, 'payment_address', 'SSL'));
             }
         }
     }
     // Stock Check
     if (STOCK_CHECK == '1' && AUTODISABLE_OUT_OF_STOCK_PRODUCT == '1') {
         foreach ($lC_ShoppingCart->getProducts() as $products) {
             if ($lC_ShoppingCart->isInStock($products['id']) === false) {
                 lc_redirect(lc_href_link(FILENAME_CHECKOUT, 'SSL'));
                 break;
             }
         }
     }
     $this->_page_title = $lC_Language->get('payment_method_heading');
     if ($lC_Services->isStarted('breadcrumb')) {
         $lC_Breadcrumb->add($lC_Language->get('breadcrumb_checkout_payment'), lc_href_link(FILENAME_CHECKOUT, $this->_module, 'SSL'));
     }
     // redirect to the billing address page when no default address exists
     if ($lC_Customer->hasDefaultAddress() === false) {
         $this->_page_title = $lC_Language->get('payment_address_heading');
         $this->_page_contents = 'checkout_payment_address.php';
         $this->addJavascriptPhpFilename('templates/' . $this->getCode() . '/javascript/addressBookDetails.js.php');
     } else {
         // if no billing destination address was selected, use the customers own address as default
         if ($lC_ShoppingCart->hasBillingAddress() == false) {
             $lC_ShoppingCart->setBillingAddress($lC_Customer->getDefaultAddressID());
         } else {
             // verify the selected billing address
             $Qcheck = $lC_Database->query('select address_book_id from :table_address_book where address_book_id = :address_book_id and customers_id = :customers_id limit 1');
             $Qcheck->bindTable(':table_address_book', TABLE_ADDRESS_BOOK);
             $Qcheck->bindInt(':address_book_id', $lC_ShoppingCart->getBillingAddress('id'));
             $Qcheck->bindInt(':customers_id', $lC_Customer->getID());
             $Qcheck->execute();
             if ($Qcheck->numberOfRows() !== 1) {
                 $lC_ShoppingCart->setBillingAddress($lC_Customer->getDefaultAddressID());
                 $lC_ShoppingCart->resetBillingMethod();
             }
         }
         // load all enabled payment modules
         include $lC_Vqmod->modCheck('includes/classes/payment.php');
         $lC_Payment = new lC_Payment();
         $this->addJavascriptBlock($lC_Payment->getJavascriptBlocks());
     }
     if (isset($_GET['payment_error'])) {
         $lC_MessageStack->add('checkout_payment', urldecode($_GET['payment_error']), 'error');
     }
     if (isset($_SESSION['messageToStack']) && !empty($_SESSION['messageToStack'])) {
         $lC_MessageStack->__construct();
     }
     // ppec inject
     if (isset($_GET['skip']) && $_GET['skip'] == 'no' || isset($_GET['payment_error'])) {
         if (isset($_SESSION['SKIP_PAYMENT_PAGE'])) {
             unset($_SESSION['SKIP_PAYMENT_PAGE']);
         }
         if (isset($_SESSION['cartSync'])) {
             unset($_SESSION['cartSync']);
         }
     } else {
         if (isset($_SESSION['SKIP_PAYMENT_PAGE']) && $_SESSION['SKIP_PAYMENT_PAGE'] === TRUE) {
             lc_redirect(lc_href_link(FILENAME_CHECKOUT, 'confirmation', 'SSL'));
         }
     }
 }
예제 #3
0
 public function lC_Checkout_Process()
 {
     global $lC_Session, $lC_ShoppingCart, $lC_Customer, $lC_NavigationHistory, $lC_Payment, $lC_Vqmod;
     require $lC_Vqmod->modCheck('includes/classes/address_book.php');
     if (isset($_SESSION['PPEC_TOKEN']) && $_SESSION['PPEC_TOKEN'] != NULL && isset($_GET['token']) && $_GET['token'] == $_SESSION['PPEC_TOKEN']) {
     } else {
         if ($lC_Customer->isLoggedOn() === false) {
             $lC_NavigationHistory->setSnapshot();
             lc_redirect(lc_href_link(FILENAME_ACCOUNT, 'login', 'SSL'));
         }
     }
     if ($lC_ShoppingCart->hasContents() === false) {
         lc_redirect(lc_href_link(FILENAME_CHECKOUT, null, 'SSL'));
     }
     // added for removal of order comments from shipping and payment pages and placed on confirmation page only during checkout
     if (!empty($_POST['comments'])) {
         $_SESSION['comments'] = lc_sanitize_string($_POST['comments']);
     }
     // if no shipping method has been selected, redirect the customer to the shipping method selection page
     if ($lC_ShoppingCart->hasShippingMethod() === false && $lC_ShoppingCart->getContentType() != 'virtual') {
         if (defined('SKIP_CHECKOUT_SHIPPING_PAGE') && SKIP_CHECKOUT_SHIPPING_PAGE == '1') {
         } else {
             lc_redirect(lc_href_link(FILENAME_CHECKOUT, 'shipping', 'SSL'));
         }
     }
     // load selected payment module
     include $lC_Vqmod->modCheck('includes/classes/payment.php');
     /*VQMOD-003*/
     if (isset($_SESSION['PPEC_TOKEN']) && $_SESSION['PPEC_TOKEN'] != NULL && isset($_GET['token']) && $_GET['token'] == $_SESSION['PPEC_TOKEN']) {
         $lC_Payment = new lC_Payment($lC_ShoppingCart->getBillingMethod('id'));
         //$lC_ShoppingCart->setBillingMethod(array('id' => 'paypal_adv', 'title' => $GLOBALS['lC_Payment_paypal_adv']->getMethodTitle()));
         if (isset($_SESSION['cartSync']['cartID']) && $_SESSION['cartSync']['cartID'] != NULL) {
             $_SESSION['cartID'] = $_SESSION['cartSync']['cartID'];
             $_SESSION['prepOrderID'] = $_SESSION['cartSync']['prepOrderID'];
         }
     } else {
         if (isset($_SESSION['cartSync']['paymentMethod']) && $_SESSION['cartSync']['paymentMethod'] != NULL) {
             $lC_Payment = new lC_Payment($_SESSION['cartSync']['paymentMethod']);
             $lC_ShoppingCart->setBillingMethod(array('id' => $_SESSION['cartSync']['paymentMethod'], 'title' => $GLOBALS['lC_Payment_' . $_SESSION['cartSync']['paymentMethod']]->getMethodTitle()));
         } else {
             $lC_Payment = new lC_Payment($lC_ShoppingCart->getBillingMethod('id'));
         }
     }
     if ($lC_Payment->hasActive() && $lC_ShoppingCart->hasBillingMethod() === false) {
         lc_redirect(lc_href_link(FILENAME_CHECKOUT, 'payment', 'SSL'));
     }
     include $lC_Vqmod->modCheck('includes/classes/order.php');
     $lC_Payment->process();
     $lC_ShoppingCart->reset(true);
     // unregister session variables used during checkout
     if (isset($_SESSION['comments'])) {
         unset($_SESSION['comments']);
     }
     if (isset($_SESSION['cartSync'])) {
         unset($_SESSION['cartSync']);
     }
     /*VQMOD-004*/
     if (isset($_SESSION['PPEC_TOKEN'])) {
         unset($_SESSION['PPEC_TOKEN']);
     }
     if (isset($_SESSION['PPEC_PROCESS'])) {
         unset($_SESSION['PPEC_PROCESS']);
     }
     if (isset($_SESSION['PPEC_PAYDATA'])) {
         unset($_SESSION['PPEC_PAYDATA']);
     }
     if (isset($_SESSION['this_handling'])) {
         unset($_SESSION['this_handling']);
     }
     if (isset($_SESSION['this_payment'])) {
         unset($_SESSION['this_payment']);
     }
     if (isset($_SESSION['SelectedShippingMethodCost'])) {
         unset($_SESSION['SelectedShippingMethodCost']);
     }
     lc_redirect(lc_href_link(FILENAME_CHECKOUT, 'success', 'SSL'));
 }