本文整理汇总了PHP中Mage_Sales_Model_Quote_Item::setRedeemedPointsHash方法的典型用法代码示例。如果您正苦于以下问题:PHP Mage_Sales_Model_Quote_Item::setRedeemedPointsHash方法的具体用法?PHP Mage_Sales_Model_Quote_Item::setRedeemedPointsHash怎么用?PHP Mage_Sales_Model_Quote_Item::setRedeemedPointsHash使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Mage_Sales_Model_Quote_Item
的用法示例。
在下文中一共展示了Mage_Sales_Model_Quote_Item::setRedeemedPointsHash方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: removeCatalogRedemptionsFromItem
/**
* Removes all applicable rules to the item's rule hash.
* Returns false if no changes were made.
*
* @param Mage_Sales_Model_Quote_Item $item
* @param array $rule_id_list
* @param integer $inst_id redemption instance id (this comes out of the item redemptions hash)
* @return boolean
*/
public function removeCatalogRedemptionsFromItem(&$item, $rule_id_list, $inst_id = 0)
{
//Check to make sure we can load the redeem points hash alright
if (!$item->getRedeemedPointsHash()) {
throw new Exception($this->__("Unable to load the redeem points hash"));
}
$catalog_redemptions = Mage::helper('rewards')->unhashIt($item->getRedeemedPointsHash());
foreach ($catalog_redemptions as $key => $redemption) {
$catalog_redemptions[$key] = (array) $redemption;
}
$doSave = false;
foreach ($rule_id_list as $rule_id) {
$rule = Mage::getModel('rewards/catalogrule_rule')->load($rule_id);
$foundRuleIdIndex = false;
foreach ($catalog_redemptions as $index => $redemption) {
$rule_id_is_same = $redemption[TBT_Rewards_Model_Catalogrule_Rule::POINTS_RULE_ID] == $rule_id;
$inst_id_is_same = $inst_id == 0 ? true : $redemption[TBT_Rewards_Model_Catalogrule_Rule::POINTS_INST_ID] == $inst_id;
if ($rule_id_is_same && $inst_id_is_same) {
$foundRuleIdIndex = $index;
}
}
if ($foundRuleIdIndex === false) {
throw new Exception("The rule entitled '" . $rule->getName() . "' is not applied to this product.");
} else {
unset($catalog_redemptions[$foundRuleIdIndex]);
$item->setRedeemedPointsHash(Mage::helper('rewards')->hashIt($catalog_redemptions));
$doSave = true;
}
}
if ($doSave) {
$item->save();
return true;
} else {
return false;
}
}