コード例 #1
0
 /**
  * Returns the link or the Link to the OrderConfirmationPage page on this site
  * @return String (URLSegment)
  */
 public static function find_link()
 {
     if ($page = DataObject::get_one('OrderConfirmationPage', "\"ClassName\" = 'OrderConfirmationPage'")) {
         return $page->Link();
     } elseif ($page = DataObject::get_one('OrderConfirmationPage')) {
         return $page->Link();
     }
     return CartPage::find_link();
 }
コード例 #2
0
 public function save($data, $form)
 {
     $selectionsfield = $form->Fields()->fieldByName("Selections");
     $totalqty = $selectionsfield->getSumQuantities();
     //add quantities of selected products
     $quantities = $selectionsfield->getQuantities();
     $selectables = $this->getProductMenu()->ProductSelections();
     foreach ($quantities as $id => $quantity) {
         $selection = $selectables->byID($id);
         if ($selection && ($buyable = $selection->Product())) {
             //restrict order item to given selection
             $filter = array("MenuProductSelectionID" => $selection->ID);
             $item = ShoppingCart::singleton()->setQuantity($buyable, $quantity, $filter);
             if (!$item) {
                 //TODO: errors
                 //ShoppingCart::singleton()->getMessage();
             }
         } else {
             //selection not found!
         }
     }
     return $this->redirect(CartPage::find_link());
 }
コード例 #3
0
 public function getCartLink()
 {
     return CartPage::find_link();
 }
コード例 #4
0
 /**
  * loads an order
  *
  */
 public function loadorder($request)
 {
     $this->cart->loadOrder(intval($request->param('ID')));
     $cartPageLink = CartPage::find_link();
     if ($cartPageLink) {
         Director::redirect($cartPageLink);
     } else {
         Director::redirect("/");
     }
 }
コード例 #5
0
 /**
  * This is used here and in VariationForm and AddProductForm
  * @param bool|string $status
  * @return bool
  */
 public static function direct($status = true)
 {
     if (Director::is_ajax()) {
         return $status;
     }
     if (self::config()->direct_to_cart_page && ($cartlink = CartPage::find_link())) {
         Controller::curr()->redirect($cartlink);
         return;
     } else {
         Controller::curr()->redirectBack();
         return;
     }
 }
コード例 #6
0
 /**
  * loads an order
  * @param SS_HTTPRequest
  * @return REDIRECT
  */
 public function loadorder(SS_HTTPRequest $request)
 {
     $this->cart->loadOrder(intval($request->param('ID')));
     $cartPageLink = CartPage::find_link();
     if ($cartPageLink) {
         return $this->redirect($cartPageLink);
     } else {
         return $this->redirect(Director::baseURL());
     }
 }
コード例 #7
0
 /**
  * Returns the link or the Link to the OrderConfirmationPage page on this site
  * @return String (URLSegment)
  */
 public static function find_link()
 {
     if ($page = OrderConfirmationPage::get()->filter(array("ClassName" => "OrderConfirmationPage"))->First()) {
         return $page->Link();
     } elseif ($page = OrderConfirmationPage::get()->First()) {
         return $page->Link();
     }
     return CartPage::find_link();
 }