Я хочу, чтобы петля подумала о всех элементах, которые добавлены в корзину и вернули свой собственный идентификатор.
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; }
Теперь он возвращает все в одной строке, поэтому у меня есть такой результат, я должен использовать «,», чтобы разделить их?
PS: Редактирование файла i – это Data.php в \ app \ code \ core \ Mage \ Checkout \ Helper
Я предполагаю, что идентификатор первого продукта – 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 , он дает мне «Array» тип данных в качестве результата, который бесполезен, и я попробовал распечатать идентификатор $ id, который дает первый идентификатор продукта только по-прежнему. Я буду использовать print_r в этой ситуации, но, похоже, это не позволяет мне это делать.
UPDATE4: Я пробовал внутренний цикл for, и я предполагаю, что он будет зацикливаться и отображать цену до тех пор, пока она не станет меньше $ index, которая равна нулю.
Поэтому я переставляю свои коды следующим образом:
$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, ничего не отображается в корзине покупок.