我对magento心愿单有疑问。我的商店有4种不同的语言(DE / EN / FR / IT)。 一切都很好但在愿望清单中,无论商店语言是否设置为英语,法语等,产品名称和描述都以错误的语言显示(在Italien中)。 我知道这里有一个类似的线程 Magento Not Translating Wishlist Product Name and Description
但删除$product = $this->_getData('product');
的建议无法解决问题。它仅将产品名称和描述更改为默认语言,即德语。
//方案//
我终于明白了。我知道这不是最完美的解决方案,但它确实有效。
位于public function getProduct()
的/app/code/core/Mage/Wishlist/Model/Item.php
我删除了这一行$product = $this->_getData('product');
并添加了以下内容:
$store_id = Mage::app()->getStore()->getStoreId();
然后我改变了:$product = Mage::getModel('catalog/product')
->setStoreId($this->getStoreId())
->load($this->getProductId());
到:
$product = Mage::getModel('catalog/product')
->setStoreId($store_id)
->load($this->getProductId());
答案 0 :(得分:0)
感谢您的解决方案。为避免多次重新加载产品,我已将该代码更改为:
public function getProduct() {
$product = null;
$current_store_id = Mage::app()->getStore()->getStoreId();
if (!$this->getProductId()) {
Mage::throwException(Mage::helper('wishlist')->__('Cannot specify product.'));
}
if($this->_getData('last_store_id') != $current_store_id){
$product = Mage::getModel('catalog/product')
->setStoreId($current_store_id)
->load($this->getProductId());
} else {
$product = $this->_getData('product');
}
$this->setData('product', $product);
$this->setData('last_store_id', $current_store_id);
/**
* Reset product final price because it related to custom options
*/
$product->setFinalPrice(null);
$product->setCustomOptions($this->_optionsByCode);
return $product;}