แสดงราคาสินค้า
วิธีการที่กำหนดไว้ในระดับบล็อกgetPriceHtml()
Mage_Catalog_Block_Product_Abstract
วิธีใช้ตัวแสดงราคาซึ่งขึ้นอยู่กับประเภทของผลิตภัณฑ์:
$type_id = $product->getTypeId(); // e.g. simple, configurable, bundle, grouped, ...
$this->_preparePriceRenderer($type_id)
ตัวแสดงราคาเป็นบล็อกที่มีเทมเพลตที่เกี่ยวข้อง ทั้งสองขึ้นอยู่กับประเภทของผลิตภัณฑ์
หากไม่มีการกำหนดบล็อกหรือเทมเพลตสำหรับประเภทผลิตภัณฑ์ที่ระบุจะมีค่าเริ่มต้นเป็นcatalog/product_price
บล็อกและcatalog/product/price.phtml
เทมเพลต
ตัวกำหนดราคาและเทมเพลตสำหรับประเภทผลิตภัณฑ์กำหนดไว้ที่ใด
โดยทั่วไปบล็อกราคาและตัวสร้างภาพจะถูกระบุโดยใช้โครงร่าง XML ดังนั้นโมดูลที่เพิ่มประเภทผลิตภัณฑ์ใหม่สามารถเพิ่มตัวแสดงผลของตัวเองได้อย่างง่ายดายเช่นกัน ตัวอย่างเช่น. ผลิตภัณฑ์ที่รวมเพิ่มเป็นตัวแสดงราคาดังต่อไปนี้ในbundle.xml
ไฟล์เลย์เอาต์:
<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>
เทมเพลตราคาหรือเรนเดอร์ที่กำหนดเอง
การใช้กลไกเดียวกันมันเป็นไปได้ที่จะแทนที่การแสดงผลเริ่มต้น หากคุณต้องการเปลี่ยนเทมเพลตและคงประเภทบล็อกราคาเริ่มต้นเพียงโทรหาaddPriceBlockType
ไฟล์เลย์เอาต์ที่มีบล็อกเริ่มต้น (ดูด้านบน) และเทมเพลตของคุณ
แสดงบล็อกราคา
รหัสที่ใช้ในการเรนเดอร์บล็อกราคามีลักษณะดังนี้:
$this->_preparePriceRenderer($type_id)
->setProduct($product)
->setDisplayMinimalPrice($displayMinimalPrice)
->setIdSuffix($idSuffix)
->toHtml();
$displayMinimalPrice
และ$idSuffix
ตัวแปรข้อโต้แย้งที่ไม่จำเป็นไปที่getPriceHtml
วิธีการ
public function getPriceHtml($product, $displayMinimalPrice = false, $idSuffix = '')
$idSuffix
ถูกนำมาใช้ในแม่แบบราคาให้เสร็จสมบูรณ์รหัส CSS ของ<span>
แท็กโดยรอบราคาที่แท้จริงตัวอย่างเช่น:
<span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">