Magento 2 supprimer "Estimer les frais de port et les taxes" du panier


20

Je souhaite supprimer le bloc "Estimer les frais de livraison et les taxes" du panier. Les devdocs disent que la désactivation d'un composant est la voie à suivre, j'ai donc essayé ce qui suit:

<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>

Aucun effet. A également essayé:

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

De cette façon, mon bloc de totaux est totalement vide.

Quelqu'un a-t-il des suggestions?

Réponses:


57

Je pense que vous avez gâché certaines balises de fermeture / d'ouverture et la quantité de ce code fonctionne:

<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>

Pour supprimer également l'en-tête, remplacez le modèle checkout/cart/shipping.phtmlet commentez / supprimez les éléments suivants:

<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>

En effet, j'ai un peu foiré les nœuds doubles <arguments>. Le titre apparaît toujours cependant, le contenu de la liste déroulante est vide maintenant. Des suggestions pour le supprimer complètement?
Timon de Groot

L'en-tête est spécifié dans le modèle d'expédition du panier: /vendor/magento/module-checkout/view/frontend/templates/cart/shipping.phtml Vous pouvez le déplacer dans votre propre modèle et en supprimer le texte.
Corefix

1
@TimondeGroot Vous ne pouvez supprimer que la partie titre du fichier modèle, sans créer le fichier xml de mise en page. De cette façon, vous pouvez conserver le calcul d'expédition dans le bloc récapitulatif, mais masquer le formulaire "Estimer les frais d'expédition et les taxes".
Andrea

@Andrea Je sais, j'ai essayé de mettre à jour cette réponse en disant cela, mais cela a été refusé ..
Timon de Groot

1
Le plus drôle, c'est qu'il ne supprime pas le HTML. Il n'y a qu'un "affichage: aucun" ajouté. La vraie bonne solution est de réécrire le shipping-estimation.html dans Magento_Checkout / js , et encore mieux, de réécrire le shipping-estimation.js, pour supprimer tout ce qui n'est pas utile du temps CPU utilisé.
Pol Ravalitera

6

J'ai également dû me débarrasser des "Estimation des frais de livraison et des taxes" en raison d'un conflit avec un module de paiement.

Si votre seul objectif est de ne pas afficher le bloc , pourquoi ne pas utiliser CSS ? Cela a fonctionné pour moi:

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

(Version: Magento 2.2.1)

Edit: J'ai testé ce qui précède sur 2.3.3 et il a également supprimé le sous-total et les totaux des chariots. Le CSS ci-dessous masquera uniquement les frais de livraison et les taxes estimés. Pour la version 2.3.3:

.checkout-cart-index # block-shipping {affichage: aucun; }


Où wite ce css ??
Manish

La meilleure façon est d'utiliser un fichier CSS personnalisé qui remplace le code CSS mais ne vous oblige pas à changer le code d'origine. Il existe de nombreux guides sur la façon de procéder.
storepeinture

2
La meilleure solution et optimale serait la voie de mise en page. Si vous appliquez un affichage: aucun, le bloc chargera toujours le js (en utilisant les ressources)
Beto Castillo

3

Vous pouvez simplement ajouter ce qui suit à checkout_cart_index.xml (dans votre thème personnalisé, pas au cœur bien sûr)

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

1
Cela supprime également les totaux, donc n'est pas assez fin pour servir
Robert Egginton

1
Veuillez noter que le code ci-dessus supprimera tous les totaux en raison d'un bogue magento: github.com/magento/magento2/issues/19347
Scriptman
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.