【发布时间】:2015-04-01 04:44:18
【问题描述】:
我想循环考虑添加到购物车中的所有商品并返回它自己的 ID。
UPDATE1:我已经更新了这样的方法
public function formatPrice($price)
{
$productId=""; // an iterate here
$cart = Mage::getModel('checkout/cart')->getQuote();
foreach ($cart->getAllItems() as $item) {
$productId = $item->getProduct()->getId();
$productPrice = $item->getProduct()->getFinalPrice();
}
return 'ID: '.$productId;
}
现在它返回一行中的所有内容,因此我的结果是这样的,我应该使用“,”来拆分它们吗?
P.S: 我编辑的文件是 Data.php 在 \app\code\core\Mage\Checkout\Helper
下我假设第一个产品的 ID 是 471186,第二个应该是 463089,我需要另一个 foreach 循环吗?
UPDATE2 : 即使我拆分它,它也只会显示为 471186、463089 但我希望它根据当前产品显示,我假设我需要其他东西,magento 库是否提供类似的方法?
UPDATE3:我看到了你最新的方法,它将变量存储在数组中并返回它。经过一些修改取决于您的代码,我有:
$productId =array();
$cart = Mage::getModel('checkout/cart')->getQuote();
foreach($cart->getAllItems() as $item) {
$productId[]= $item->getProduct()->getId();
}
$productId =array_filter($productId);
//remove empty array
foreach($productId as $id){
return $id; //return $productId;
}
如果我使用 return $productId ,它会给我“数组”作为结果的数据类型,这是没有用的,我尝试打印出它只像以前一样给出第一个产品 ID 的 $id。 在这种情况下我会使用 print_r,但它似乎不允许我这样做。
UPDATE4:我尝试了内部 for 循环,我假设它会循环并显示价格,直到它的值小于 $index ,即 0 表示 null。
所以我像这样重构我的代码:
$productId =array();
$cart = Mage::getModel('checkout/cart')->getQuote();
foreach($cart->getAllItems() as $item) {
$productId['id']= $item->getProduct()->getId();
$productId['price'] = $item->getProduct()->getFinalPrice();
}
$productId =array_filter($productId);
for($index=0; $index<count($productId); $index++){
return $productId[$index]['price']; //cannot use echo, printf and print_r
}
但它只返回null,购物车上没有任何显示。
【问题讨论】:
标签: javascript json magento php