Hiển thị giá sản phẩm
Phương thức getPriceHtml()
được định nghĩa trong lớp khối Mage_Catalog_Block_Product_Abstract
.
Phương pháp sử dụng trình kết xuất giá phụ thuộc vào loại sản phẩm:
$type_id = $product->getTypeId(); // e.g. simple, configurable, bundle, grouped, ...
$this->_preparePriceRenderer($type_id)
Trình kết xuất giá là một khối có mẫu liên quan. Cả hai đều phụ thuộc vào loại sản phẩm.
Nếu không có khối hoặc mẫu được xác định cho loại sản phẩm được chỉ định, nó sẽ mặc định cho catalog/product_price
khối và catalog/product/price.phtml
mẫu.
Đâu là trình kết xuất giá và mẫu cho các loại sản phẩm được xác định?
Các khối giá và trình kết xuất thường được chỉ định bằng cách sử dụng XML bố cục, do đó, các mô-đun thêm loại sản phẩm mới cũng có thể dễ dàng thêm trình kết xuất của riêng chúng. Ví dụ. sản phẩm đi kèm thêm trình kết xuất giá của nó như sau trong bundle.xml
tệp bố cục:
<default>
<reference name="catalog_product_price_template">
<action method="addPriceBlockType">
<type>bundle</type>
<block>bundle/catalog_product_price</block>
<template>bundle/catalog/product/price.phtml</template>
</action>
</reference>
</default>
Mẫu giá hoặc trình kết xuất tùy chỉnh
Sử dụng cùng một cơ chế, nó cũng có thể ghi đè các trình kết xuất mặc định. Nếu bạn chỉ muốn thay đổi mẫu và giữ loại khối giá mặc định, chỉ cần gọi addPriceBlockType
tệp bố cục với khối mặc định (xem bên trên) và mẫu của bạn.
Kết xuất khối giá
Mã để thực sự kết xuất khối giá trông như thế này:
$this->_preparePriceRenderer($type_id)
->setProduct($product)
->setDisplayMinimalPrice($displayMinimalPrice)
->setIdSuffix($idSuffix)
->toHtml();
Các biến $displayMinimalPrice
và $idSuffix
là các đối số tùy chọn cho getPriceHtml
phương thức.
public function getPriceHtml($product, $displayMinimalPrice = false, $idSuffix = '')
Ví dụ, $idSuffix
được sử dụng trong mẫu giá để hoàn thành id CSS của <span>
thẻ xung quanh giá thực tế, ví dụ:
<span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">