Прочитать условие правила продвижения – Magento

Мне необходимо прочитать условие правила цены корзины покупок в пурпурно программно.

Mage_SalesRule_Model_Rule имеет метод getConditionsSerialized() который предоставляет условия, но с критической точки getConditionsSerialized() например, следующим образом:

 a:7:{s:4:"type";s:32:"salesrule/rule_condition_combine";s:9:"attribute";N;s:8:"operator";N;s:5:"value";s:1:"1";s:18:"is_value_processed";N;s:10:"aggregator";s:3:"all";s:10:"conditions";a:1:{i:0;a:5:{s:4:"type";s:32:"salesrule/rule_condition_address";s:9:"attribute";s:13:"base_subtotal";s:8:"operator";s:2:">=";s:5:"value";s:1:"1";s:18:"is_value_processed";b:0;}}} 

Кто-нибудь знает, как читать состояние более гуманным способом plz? Я хотел бы иметь возможность читать определенные атрибуты.

Огромное спасибо!

Krt_Malta

Related of "Прочитать условие правила продвижения – Magento"

Вы можете использовать функцию unserialize php, чтобы преобразовать ее в работоспособный массив.

Попробуй это:

 $conditions = unserialize($rule->getConditionsSerialized()); print_r($conditions); 

Ранее я писал о том, как они работают, и хотя мой пост посвящен созданию правил, он все еще немного объясняет, как вы можете понять условия.

Вот мой пост

Надеюсь, поможет!

unserialize($rule->getConditionsSerialized() ) сделал трюк!

Надеюсь, это поможет кому-то еще!

Magento уже реализует функцию для несериализации условий и действий для себя, все, что вам нужно сделать, это использовать ее.

$conditions = Mage::getModel('salesrule/rules')->load($ruleId)->getConditions();

Каждый вызов ->getConditions() приведет к более глубоким условиям выполнения объекта правила.

Например, при первом вызове ->getConditions() он возвращает тип объекта Mage_SalesRule_Model_Rule_Condition_Combine который является оболочкой по умолчанию для всех внутренних условий. Если вы снова вызываете вызов ->getConditions()->getConditions() вы получите массив с [X] объектами условий, каждый из которых будет объявлен при создании через интерфейс adminhtml.

Избегайте использования unserialize() и начинайте использовать встроенные функции Magento.