Magento 2 rimuove "Stima costi e tasse di spedizione" dal carrello


20

Voglio eliminare il blocco "Stima costi di spedizione e tasse" nel carrello. I devdocs dicono che disabilitare un componente è la strada da percorrere, quindi ho provato quanto segue:

<body>
    <referenceBlock name="checkout.cart.shipping">
        <arguments>
            <argument name="jsLayout" xsi:type="array">
                <item name="components" xsi:type="array">
                    <item name="block-summary" xsi:type="array">

                        <!-- My custom part: -->
                        <item name="config" xsi:type="array">
                            <item name="componentDisabled" xsi:type="boolean">true</item>
                        </item>

                    </item>
                </item>
            </argument>
        </arguments>
    </referenceBlock>
</body>

Nessun effetto. Ho anche provato:

<referenceBlock name="checkout.cart.shipping" remove="true"/>

In questo modo, il blocco dei miei totali è totalmente vuoto.

Qualcuno ha suggerimenti?

Risposte:


57

Penso che tu abbia incasinato alcuni tag di chiusura / apertura e quanti di questi funzioni questo codice:

<referenceBlock name="checkout.cart.shipping">
    <arguments>
        <argument name="jsLayout" xsi:type="array">
            <item name="components" xsi:type="array">
                <item name="block-summary" xsi:type="array">

                    <!-- My custom part: -->
                    <item name="config" xsi:type="array">
                        <item name="componentDisabled" xsi:type="boolean">true</item>
                    </item>

                </item>
            </item>
        </argument>
    </arguments>
</referenceBlock>

Per rimuovere anche l'intestazione, sovrascrivere il modello checkout/cart/shipping.phtmle commentare / rimuovere quanto segue:

<div class="title" data-role="title">
    <strong id="block-shipping-heading" role="heading" aria-level="2">
        <?php /* @escapeNotVerified */ echo $block->getQuote()->isVirtual() ? __('Estimate Tax') : __('Estimate Shipping and Tax') ?>
    </strong>
</div>

In effetti, ho incasinato i doppi nodi <arguments>. L'intestazione viene comunque visualizzata, i contenuti del menu a discesa sono vuoti ora .. Qualche suggerimento per rimuoverlo completamente?
Timon de Groot,

L'intestazione è specificata nel modello di spedizione del carrello: /vendor/magento/module-checkout/view/frontend/templates/cart/shipping.phtml Puoi spostarlo nel tuo modello e rimuovere il testo da lì.
Corefix,

1
@TimondeGroot È possibile rimuovere solo la parte del titolo dal file modello, senza creare il file xml di layout. In questo modo è possibile conservare il calcolo della spedizione nel blocco di riepilogo, ma nascondere il modulo "Stima costi di spedizione e tasse".
Andrea,

@Andrea lo so, ho provato ad aggiornare questa risposta dicendo che, ma mi è stato negato ..
Timon de Groot

1
La cosa divertente è che non rimuove l'HTML. C'è solo un "display: none" aggiunto. La vera soluzione è quella di riscrivere shipping-estimation.html in Magento_Checkout / js , e ancora meglio, riscrivere shipping-estimation.js, per rimuovere tutto quel tempo CPU non utile.
Pol Ravalitera,

6

Avevo anche bisogno di sbarazzarmi del "Calcolo dei costi e delle tasse di spedizione" a causa di un conflitto con un modulo di pagamento.

Se il tuo unico obiettivo è non mostrare il blocco , perché non usare i CSS ? Questo ha funzionato per me:

.cart-container .cart-summary #block-shipping {
    display: none;
}

(Versione: Magento 2.2.1)

Modifica: ho testato quanto sopra in 2.3.3 e ha rimosso anche il totale parziale dei carrelli e i totali. Il CSS seguente nasconderà solo le spese di spedizione e le imposte stimate. Per la versione 2.3.3:

.checkout-cart-index # block-shipping {display: nessuno; }


Dove abbinare questo css ??
Manish,

Il modo migliore è utilizzare un file CSS personalizzato che sovrascrive il codice css ma non richiede la modifica del codice originale. Ci sono molte guide là fuori su come farlo.
storepeinture,

2
La soluzione migliore e ottimale sarebbe il modo di layout. Se si applica un display: nessuno il blocco caricherà ancora js (utilizzando le risorse)
Beto Castillo

3

Puoi semplicemente aggiungere quanto segue a checkout_cart_index.xml (nel tuo tema personalizzato, ovviamente no core)

<referenceBlock name="checkout.cart.shipping" display="false"/>

1
Questo rimuove anche i totali, quindi non è abbastanza granuloso da servire
Robert Egginton,

1
Si noti che il codice sopra rimuoverà tutti i totali a causa di un bug magento: github.com/magento/magento2/issues/19347
Scriptman
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.