장바구니 및 견적 클래스의 코드를 보면 모든 것이 명확 해집니다.
다음은 $ cart-> getItems()에 대한 코드입니다 :
public function getItems()
{
return $this->getQuote()->getAllVisibleItems();
}
평야와 간단한 - 그것은 바로 견적 객체의 메소드를 호출합니다. 이제 질문은 다음과 같습니다. 의 차이점 getAllVisibleItems()과 getAllItems()의 차이점은 무엇입니까?
public function getAllItems()
{
$items = array();
foreach ($this->getItemsCollection() as $item) {
if (!$item->isDeleted()) {
$items[] = $item;
}
}
return $items;
}
public function getAllVisibleItems()
{
$items = array();
foreach ($this->getItemsCollection() as $item) {
if (!$item->isDeleted() && !$item->getParentItemId()) {
$items[] = $item;
}
}
return $items;
}
유일한 차이점 : getAllVisibleItems()은 각 항목에 대한 추가 검사가 있습니다
!$item->getParentItemId()
제품 경우 테스트 두 가지 방법의 코드에서
살펴 보자 부모가 있습니다 (즉, 단순한 제품인지 테스트합니다). 따라서이 메소드의 반환 배열은 getAllItems()과 달리 간단한 제품이 누락됩니다.
다른 방법으로 항목을 검색 할 수 있습니까?
하나는 직접 인용 객체에서 제품 회수를 얻을 수있을 것입니다 :
$productCollection = $cart->getQuote()->getItemsCollection();
와우, 이렇게 아름다운 답변 정말 감사합니다. 많은 감사합니다. –
당신은 오신 것을 환영합니다. 이 답변이 도움이된다면 동의하십시오. – silvo
게시 된 경우 실제로 더 좋은 답변을 기다리고있었습니다. 그러나 그럼에도 불구하고 나는 당신의 대답을 받아 들였습니다. –