【发布时间】:2014-12-31 10:40:24
【问题描述】:
移至此处:https://magento.stackexchange.com/questions/42434/overwriting-core-shipping-block
我正在从事 Magento 的工作,我已经有一段时间没有涉足黑暗艺术了。我目前正在编写一小段脚本,它将覆盖结帐屏幕上的运输方式。你将不得不原谅我的代码中的任何平庸,因为我说过它已经有一段时间了。
所以我有两个文件:
app/code/local/ClarkStudios/Shipmentfilter/etc/config.xml
<global>
<blocks>
<checkout>
<rewrite>
<onepage_shipping_method_available>ClarkStudios_Shipmentfilter_Block_Onepage_Shipping_Method_Available</onepage_shipping_method_available>
</rewrite>
</checkout>
</blocks>
</global>
app/code/local/ClarkStudios/Shipmentfilter/Block/Onepage/Shipping/Method/Available.php
class ClarkStudios_Shipmentfilter_Block_Onepage_Shipping_Method_Available extends Mage_Checkout_Block_Onepage_Shipping_Method_Available
{
public function getShippingRates()
{
die('HAHAHAHAHAH!');
$rates = parent::getShippingRates();
$two_kg_array = array('AU','US','CA','BR','VE');
$quote = Mage::getSingleton('checkout/session')->getQuote();
$shipping_country = $this->getQuote()->getShippingAddress()->getCountry();
$weight = $quote->getShippingAddress()->getWeight();
if( in_array( $shipping_country, $two_kg_array ) && $weight > 2 ) {
$rates = array();
}
if( !in_array( $shipping_country, $two_kg_array ) && $weight > 30 ) {
$rates = array();
}
return $rates;
}
}
我似乎无法启动骰子,这表明 Magento 无法识别我的块重写。我可能在这里做了一些根本性错误的事情,但如果能握在正确的方向上,我将不胜感激。
我可能应该指出,我正在尝试根据购物车的重量更改单页结帐页面上显示的运输方式。对于初学者,我只希望它触发 die 功能,以便我知道它的工作原理。我也刷新了缓存。
史蒂夫
【问题讨论】:
标签: magento rewrite block shipping