カートが空の場合はカートページにブロックを非表示
-
16-10-2019 - |
質問
Checkout.xmlではわかります
<action method="setCartTemplate"><value>checkout/cart.phtml</value></action>
<action method="setEmptyTemplate"><value>checkout/cart/noItems.phtml</value></action>
<action method="chooseTemplate"/>
カートにアイテムがあるが、空の場合ではなく、ブロックが表示されようとしています。これを達成するにはどうすればよいですか?
解決
通常、ブロックを広告し、ディスプレイHTMLを条件付きでラップし、カートアイテムをチェックします。
これは機能します、
Mage::helper('checkout/cart')->getCart()->getItemsCount();
コアブロックを書き換えたり、独自のブロックを作成したりする必要はありません。
PHTMLブロックは、テンプレートでさらにカートロジックが必要な場合を除き、コアテンプレートブロックにすぎない可能性があります。コアカートの抽象ブロックを独自のブロックから拡張する必要があります(独自のブロックから拡張する必要があります(Mage_Checkout_Block_Cart_Abstract
)これにより、すべてのコアカートメソッドにアクセスできます。
次に、ブロックをXMLに追加するだけで、アイテムがある場合にのみコードを出力します。
意図したディスプレイが何であるかに応じて、これらのコアブロックリストの子としてブロックを追加できます。ベースを変更する必要はありません cart.phtml
ブロックをエコーするためのファイル
<block type="core/text_list" name="checkout.cart.top_methods" as="top_methods" translate="label">
[ add your block here ]
</block>
<block type="core/text_list" name="checkout.cart.methods" as="methods" translate="label">
[ add your block here ]
</block>
所属していません magento.stackexchange