オブザーバーが攻撃されていることを確認しましたか?トリガーするイベントに対して、そのイベントの一意の名前が付いていることを確認してください。たとえば、次のコードでは、「catalog_product_set_price」という名前は「catalog_product_load_after」イベントに関して一意である必要があります。私はあなたがオブザーバーに入っていると仮定していますが、念のためです。このリスクは、インスタンスに多数の新しいモジュールを追加した場合に発生する可能性があります。
<catalog_product_load_after>
<observers>
<catalog_product_set_price>
<type>singleton</type>
<class>NamespaceModule_Model_Observer</class>
<method>set_price2</method>
</catalog_product_set_price>
</observers>
</catalog_product_load_after>
次の配列を使用して、現在地を確認できます。
$currentPageArray = array(
'request_string'=> Mage::app()->getFrontController()->getRequest()->getRequestString(),
'uri' => Mage::app()->getFrontController()->getRequest()->getRequestUri(),
'route' => Mage::app()->getFrontController()->getRequest()->getRouteName(),
'action' => Mage::app()->getFrontController()->getRequest()->getActionName(),
'controller' => Mage::app()->getFrontController()->getRequest()->getControllerName()
);
次のように出力されます。
Array
(
[request_string] => /some-category/some-product-page-url.html
[uri] => /catalog/product/view/id/64806/category/17
[route] => catalog
[action] => view
[controller] => product
)
別のオブザーバーを試すことができます。
- controller_action_layout_render_before_catalog_product_view
- controller_action_postdispatch_catalog_product_view