Beispiel #1
0
 /**
  * Initialization coupon manager.
  *
  * @param int $mode				Discount manager mode.
  * @param array $params			Initial params (userId, orderId).
  * 		keys are case sensitive:
  * 			<ul>
  * 			<li>int userId		Order owner (for MODE_MANAGER or MODE_ORDER only)
  * 			<li>int orderId		Edit order id (for MODE_ORDER only(!))
  * 			<li>int oldUserId	Old order owner for MODE_MANAGER or MODE_ORDER only)
  * 			</ul>.
  * @param bool $clearStorage	Clear coupon session storage.
  * @return void
  */
 public static function init($mode = self::MODE_CLIENT, $params = array(), $clearStorage = false)
 {
     if (self::$init) {
         return;
     }
     self::$couponTypes = Internals\DiscountCouponTable::getCouponTypes(true);
     self::$couponIndex = 0;
     self::clearErrors();
     self::initUseDiscount();
     self::initUseMode($mode, $params);
     if (!self::isSuccess()) {
         return;
     }
     if (self::$useMode != self::MODE_SYSTEM) {
         self::clear($clearStorage);
         $couponsList = array();
         switch (self::$useMode) {
             case self::MODE_CLIENT:
             case self::MODE_EXTERNAL:
                 if (!empty($_SESSION[self::STORAGE_CLIENT_COUPONS]) && is_array($_SESSION[self::STORAGE_CLIENT_COUPONS])) {
                     $couponsList = $_SESSION[self::STORAGE_CLIENT_COUPONS];
                 }
                 break;
             case self::MODE_MANAGER:
                 if (!empty($_SESSION[self::STORAGE_MANAGER_COUPONS]) && !empty($_SESSION[self::STORAGE_MANAGER_COUPONS][self::$userId]) && is_array($_SESSION[self::STORAGE_MANAGER_COUPONS][self::$userId])) {
                     $couponsList = $_SESSION[self::STORAGE_MANAGER_COUPONS][self::$userId];
                 }
                 break;
             case self::MODE_ORDER:
                 self::load();
                 if (!empty($_SESSION[self::STORAGE_MANAGER_COUPONS]) && !empty($_SESSION[self::STORAGE_MANAGER_COUPONS][self::$userId]) && is_array($_SESSION[self::STORAGE_MANAGER_COUPONS][self::$userId])) {
                     $couponsList = $_SESSION[self::STORAGE_MANAGER_COUPONS][self::$userId];
                 }
                 break;
         }
         if (!empty($couponsList)) {
             self::setCoupons($couponsList);
         }
         unset($couponsList);
         if (self::$useMode == self::MODE_ORDER) {
             self::saveToStorage();
         }
     }
     self::$init = true;
 }