Это не совсем ответ на вопрос о том, как использовать события для атаки на вспомогательные классы, но это действительно решает мою проблему.Я был неправ в том, что мне нужно было изменить вывод JSON для getRegionJson.Поправьте меня, если я ошибаюсь, но это используется только в том случае, если вы выбираете другую страну, и тогда изменится раскрывающийся список состояния / услуги.Так как мне нужно было только удалить опции из меню выбора, этот вывод JSON может остаться таким, какой он есть, потому что, если я удаляю опцию страны, у пользователя никогда не будет возможности выбрать его для использования этого javascript.
Итак, я нашелспособ изменить этот раскрывающийся список с помощью наблюдателя, настроив наблюдатель события, как показано ниже:
<core_block_abstract_to_html_before>
<observers>
<modify_country_dropdown>
<type>singleton</type>
<class>module/observer</class>
<method>modifyCountryDropDown</method>
</modify_country_dropdown>
</observers>
</core_block_abstract_to_html_before>
Итак, вы можете видеть, что я наблюдатель события core_block_abstract_to_html_before
, а затем в своем коде я увидел, что блокMage_Core_Block_Html_Select
в этом блоке вы можете искать имя, подобное следующему
if($observer->getBlock()->getName() == 'country_id' || $observer->getBlock()->getName() == 'billing[country_id]' || $observer->getBlock()->getName() == 'shipping[country_id]'){
$options = $observer->getBlock()->getOptions();
code here
}
Где опции - это все различные опции меню выбора, с которыми я могу делать все, что захочу.
Хотя я и сделал это, было бы неплохо знать, что если бы мы захотели изменить строку json, которая выводится из вспомогательного класса, с помощью наблюдателя.