Magento 2

Remover todos os itens do carrinho Magento 2

Como remover todos os itens do carrinho no Magento 2

Utilizando Object Manager

 $checkoutSession = $this->_objectManager->create('Magento\Checkout\Model\Session');

$allItems = $checkoutSession->getQuote()->getAllVisibleItems();

foreach ($allItems as $item) {
  $itemId = $item->getItemId();
  $cart->removeItem($itemId)->save();
}

Por Meio de um Controller

use Magento\Checkout\Model\Cart;
use Magento\Checkout\Model\Session as CheckoutSession;
use Magento\Framework\App\Action\Action;
class Clearcart extends Action
{
 protected  $_modelCart;
 protected $ checkoutSession;
 public function __construct(CheckoutSession $checkoutSession,Cart $modelCart)
        {
         $this->checkoutSession = $checkoutSession;
         $this->_modelCart = $modelCart;
        }
 public function execute()
        {
 $cart = $this->_modelCart;
 $quoteItems = $this->checkoutSession->getQuote()->getItemsCollection();
 foreach($quoteItems as $item)
 {
 $cart->removeItem($item->getId())->save(); 
 }
 }
}

Removendo por meio de uma Classe Model

namespace Vendor\Extension\Controller\Index;
use Magento\Checkout\Model\Session as CheckoutSession;
use Magento\Quote\Model\Quote\Item
 
class Clearcart extends Action
{
 protected  $modelCartItem;
 protected $checkoutSession;

 public function __construct(CheckoutSession $checkoutSession,Item $modelCartItem)
        {
         $this->checkoutSession = $checkoutSession;
                $this->_ modelCartItem = $modelCartItem;
        }

 public function execute()
 {
      $checkoutSession = $this->getCheckoutSession();
  $allItems = $checkoutSession->getQuote()->getAllVisibleItems();
  foreach ($allItems as $item) 
  {
       $cartItemId = $item->getItemId();
          $itemObj=$this->getItemModel()->load($cartItemId);
          $itemObj->delete();
  }
   }
}

Post Recentes

YouTube sem cookie: adiar o embed do vídeo e do Maps até o aceite

Seu banner de consentimento está certo, mas o vídeo incorporado grava cookie de terceiro no primeiro carregamento. Troque o domínio…

8 horas atrás

Custom post type dando 404: flush_rewrite_rules na ativação do plugin

A listagem do custom post type abre e o single dá 404 no WordPress 6.9. Entenda o cache das rewrite…

2 dias atrás

systemd timer no lugar do cron: agendar script com log e sem execução dupla

Um par .service e .timer substitui a linha do crontab com log no journal, execução perdida recuperada no boot e…

2 dias atrás

Descrição em massa no WooCommerce: wp eval-file lendo a lista de SKUs

400 produtos importados do fornecedor com a aba Descrição vazia. Um wp eval-file percorre os SKUs sem texto, grava pelo…

2 dias atrás

Frete grátis no WooCommerce: esconder as outras opções de entrega

Some com PAC e SEDEX da lista quando o frete grátis está disponível, usando woocommerce_package_rates, e limpe o cache de…

3 dias atrás

Erro HTTP no WordPress ao enviar imagem para a biblioteca de mídia

A barra de upload chega no fim e o WordPress devolve só "Erro HTTP". Separe as três causas: Imagick barrado…

3 dias atrás