当前位置: 首页>>代码示例>>PHP>>正文


PHP Mage_SalesRule_Model_Rule::validate方法代码示例

本文整理汇总了PHP中Mage_SalesRule_Model_Rule::validate方法的典型用法代码示例。如果您正苦于以下问题:PHP Mage_SalesRule_Model_Rule::validate方法的具体用法?PHP Mage_SalesRule_Model_Rule::validate怎么用?PHP Mage_SalesRule_Model_Rule::validate使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Mage_SalesRule_Model_Rule的用法示例。


在下文中一共展示了Mage_SalesRule_Model_Rule::validate方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: validate

 public function validate(Varien_Object $object)
 {
     if (substr($this->getCouponCode(), 0, 6) != 'points') {
         return parent::validate($object);
     }
     $customerId = Mage::getModel('customer/session')->getCustomerId();
     $reward_model = Mage::getModel('rewardpoints/stats');
     $current = $reward_model->getPointsCurrent($customerId, Mage::app()->getStore()->getId());
     if ($current < $this->getPointsAmt()) {
         Mage::getSingleton('checkout/session')->addError('Not enough points available.');
         Mage::helper('checkout/cart')->getCart()->getQuote()->setRewardpointsQuantity(NULL)->setRewardpointsDescription(NULL)->setBaseRewardpoints(NULL)->setRewardpoints(NULL)->save();
         return false;
     }
     $step_apply = Mage::getStoreConfig('rewardpoints/default/step_apply', Mage::app()->getStore()->getId());
     $step = Mage::getStoreConfig('rewardpoints/default/step_value', Mage::app()->getStore()->getId());
     if ($step > $this->getPointsAmt() && $step_apply) {
         Mage::getSingleton('checkout/session')->addError('The minimum required points is not reached.');
         return false;
     }
     if ($step_apply) {
         if ($this->getPointsAmt() % $step != 0) {
             Mage::getSingleton('checkout/session')->addError('Amount of points wrongly used.');
             return false;
         }
     }
     return true;
 }
开发者ID:xiaoguizhidao,项目名称:devfashion,代码行数:27,代码来源:Rule.php

示例2: _canProcessRule

 /**
  * Check if rule can be applied for specific address/quote/customer
  *
  * @param   Mage_SalesRule_Model_Rule $rule
  * @param   Mage_Sales_Model_Quote_Address $address
  * @return  bool
  */
 protected function _canProcessRule($rule, $address)
 {
     if ($rule->hasIsValidForAddress($address) && !$address->isObjectNew()) {
         return $rule->getIsValidForAddress($address);
     }
     /**
      * check per coupon usage limit
      */
     if ($rule->getCouponType() != Mage_SalesRule_Model_Rule::COUPON_TYPE_NO_COUPON) {
         $couponCode = $address->getQuote()->getCouponCode();
         if (strlen($couponCode)) {
             $coupon = Mage::getModel('salesrule/coupon');
             $coupon->load($couponCode, 'code');
             if ($coupon->getId()) {
                 // check entire usage limit
                 if ($coupon->getUsageLimit() && $coupon->getTimesUsed() >= $coupon->getUsageLimit()) {
                     $rule->setIsValidForAddress($address, false);
                     return false;
                 }
                 // check per customer usage limit
                 $customerId = $address->getQuote()->getCustomerId();
                 if ($customerId && $coupon->getUsagePerCustomer()) {
                     $couponUsage = new Varien_Object();
                     Mage::getResourceModel('salesrule/coupon_usage')->loadByCustomerCoupon($couponUsage, $customerId, $coupon->getId());
                     if ($couponUsage->getCouponId() && $couponUsage->getTimesUsed() >= $coupon->getUsagePerCustomer()) {
                         $rule->setIsValidForAddress($address, false);
                         return false;
                     }
                 }
             }
         }
     }
     /**
      * check per rule usage limit
      */
     $ruleId = $rule->getId();
     if ($ruleId && $rule->getUsesPerCustomer()) {
         $customerId = $address->getQuote()->getCustomerId();
         $ruleCustomer = Mage::getModel('salesrule/rule_customer');
         $ruleCustomer->loadByCustomerRule($customerId, $ruleId);
         if ($ruleCustomer->getId()) {
             if ($ruleCustomer->getTimesUsed() >= $rule->getUsesPerCustomer()) {
                 $rule->setIsValidForAddress($address, false);
                 return false;
             }
         }
     }
     $rule->afterLoad();
     /**
      * quote does not meet rule's conditions
      */
     if (!$rule->validate($address)) {
         $rule->setIsValidForAddress($address, false);
         return false;
     }
     /**
      * passed all validations, remember to be valid
      */
     $rule->setIsValidForAddress($address, true);
     return true;
 }
开发者ID:chucky515,项目名称:Magento-CE-Mirror,代码行数:68,代码来源:Validator.php

示例3: _canProcessRule

 /**
  * Check if rule can be applied for specific address/quote/customer
  *
  * @param   Mage_SalesRule_Model_Rule $rule
  * @param   Mage_Sales_Model_Quote_Address $address
  * @return  bool
  */
 protected function _canProcessRule($rule, $address)
 {
     if (!$rule->hasIsValid()) {
         /**
          * too many times used in general
          */
         if ($rule->getUsesPerCoupon() && $rule->getTimesUsed() >= $rule->getUsesPerCoupon()) {
             $rule->setIsValid(false);
             return false;
         }
         /**
          * too many times used for this customer
          */
         $ruleId = $rule->getId();
         if ($ruleId && $rule->getUsesPerCustomer()) {
             $customerId = $address->getQuote()->getCustomerId();
             $ruleCustomer = Mage::getModel('salesrule/rule_customer');
             $ruleCustomer->loadByCustomerRule($customerId, $ruleId);
             if ($ruleCustomer->getId()) {
                 if ($ruleCustomer->getTimesUsed() >= $rule->getUsesPerCustomer()) {
                     $rule->setIsValid(false);
                     return false;
                 }
             }
         }
         $rule->afterLoad();
         /**
          * quote does not meet rule's conditions
          */
         if (!$rule->validate($address)) {
             $rule->setIsValid(false);
             return false;
         }
         /**
          * passed all validations, remember to be valid
          */
         $rule->setIsValid(true);
     }
     return $rule->getIsValid();
 }
开发者ID:hunnybohara,项目名称:magento-chinese-localization,代码行数:47,代码来源:Validator.php


注:本文中的Mage_SalesRule_Model_Rule::validate方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。