J'ai remplacé le texte "Ajouter au panier" par "Je le veux" en remplaçant " vendor\magento\module-catalog\view\frontend\templates\product\list.phtml
".
Mais, lorsque je clique sur le bouton "Je veux ceci" (c'est-à-dire "Ajouter au panier"), le produit est ajouté au panier, puis à nouveau le texte "Ajouter au panier" apparaît sur le bouton.
Je pense que le produit est ajouté via l'appel ajax, c'est pourquoi un texte nouvellement ajouté ne s'affiche pas après l'appel ajax et le texte "Ajouter au panier" s'affiche.
J'ai essayé ceci:
J'ai créé une extension personnalisée Ved_Mymodule .
J'ai vérifié que l'extension est active.
Après cela, j'ai suivi ces étapes:
app / code / Ved / Mymodule / view / frontend / requirejs-config.js:
var config = {
map: {
'*': {
catalogAddToCart:'Ved_Mymodule/js/customCatalogAddToCart'
}
}
};
app / code / Ved / Mymodule / view / frontend / web / js / customCatalogAddToCart.js:
define([
'jquery',
'mage/translate',
'jquery/ui'
], function($, $t) {
"use strict";
$.widget('Ved_Mymodule.customCatalogAddToCart',$.mage.catalogAddToCart, {
//Override function
disableAddToCartButton: function(form) {
var addToCartButtonTextWhileAdding = this.options.addToCartButtonTextWhileAdding || $t('Adding...');
var addToCartButton = $(form).find(this.options.addToCartButtonSelector);
addToCartButton.addClass(this.options.addToCartButtonDisabledClass);
addToCartButton.find('span').text(addToCartButtonTextWhileAdding);
addToCartButton.attr('title', addToCartButtonTextWhileAdding);
console.log('Hello 1');
},
enableAddToCartButton: function(form) {
var addToCartButtonTextAdded = this.options.addToCartButtonTextAdded || $t('Added');
var self = this,
addToCartButton = $(form).find(this.options.addToCartButtonSelector);
addToCartButton.find('span').text(addToCartButtonTextAdded);
addToCartButton.attr('title', addToCartButtonTextAdded);
setTimeout(function() {
var addToCartButtonTextDefault = 'heya..'; //self.options.addToCartButtonTextDefault || $t('Add to Cart..');
addToCartButton.removeClass(self.options.addToCartButtonDisabledClass);
addToCartButton.find('span').text(addToCartButtonTextDefault);
addToCartButton.attr('title', addToCartButtonTextDefault);
}, 1000);
console.log('Hello 2');
}
});
return $.Ved_Mymodule.customCatalogAddToCart;
});
J'essaie d'imprimer des messages factices dans la console.
Après cela: j'ai exécuté le déploiement de contenu statique. Réindexez les données. Cache nettoyé et vidé.
Mais aucun changement n'apparaît.
requirejs-config.js
et corriger l'emplacementapp/code/Ved/Mymodule/view/frontend/requirejs-config.js
.Réponses:
Vous devez remplacer le fichier js du chemin
À
Vous devez modifier le texte que vous souhaitez à partir de ce fichier.
Faites-moi savoir si vous avez des questions.
la source
vous devez remplacer, catalog-add-to-cart.js à partir du chemin,
Le texte change à partir d'ici après l'appel ajax. vous pouvez changer le texte ici.
la source
Le texte a été modifié par Javascript après l'appel Ajax. Nous pouvons jeter un oeil:
fournisseur / magento / module-catalogue / view / frontend / web / js / catalog-add-to-cart.js
Pour la meilleure pratique, devrait utiliser
mixins
pour "remplacer":Nous pouvons créer un module, puis ajouter ces fichiers:
app / code / Vendor / Module / view / frontend / requirejs-config.js
application / code / fournisseur / module / vue / frontend / web / js / catalog-add-to-cart-mixin.js
la source
Remarque: ce qui suit a été testé en 2.1.7
Remplacer tous les fichiers principaux est considéré comme une mauvaise pratique.
Vous pouvez simplement passer des paramètres dans la fonction catalogAddToCart qui se trouve vers le bas de list.phtml
Si vous regardez (ne modifiez pas ou ne copiez pas) le fichier catalog-add-to-cart.js, vous verrez qu'il accepte les paramètres.
fournisseur / magento / module-catalogue / view / frontend / web / js / catalog-add-to-cart.js
Ouvrez ensuite list.phtml dans votre thème
app / design / frontend / Namespace / theme / Magento_Catalog / template / product / list.phtml
Vers le bas de la page, vous trouverez
Ajoutez simplement des paramètres à la fonction ...
Dans mon cas, j'ai ensuite ajouté une traduction pour «Ajouter au panier» dans en_GB.csv, mais cela pourrait ne pas convenir à votre objectif, alors allez-y et modifiez-le ici directement.
la source
Veuillez essayer ceci ... Pour traduire le texte des réponses "Ajouter au panier", "Ajouter ..." et "Ajouté" par json, suivez les étapes ci-dessous.
Étape 1: Pour les changements nécessaires dans la page Liste des produits. Accédez au chemin du fichier app / design / frontend / Your_Theme_Namespace / Theme_Name / Magento_Catalog / templates / product / list.phtml et remplacez le code ci-dessous en ligne vers 121
Étape 2: Pour les modifications, vous avez besoin de la page d'affichage du produit. Accédez au chemin du fichier app / design / frontend / Your_Theme_Namespace / Theme_Name / Magento_Catalog / templates / product / view / addtocart.phtml et remplacez le code en ligne vers 54
Exécutez les commandes ci-dessous:
configuration de php bin / magento: contenu statique: déployer en_US ja_JP zh_Hans_CN
php bin / magento cache: flush J'ai essayé ceci et ça marche pour moi.
la source
Vous pouvez étendre le catalogue à ajouter au panier au lieu de remplacer le fichier entier. Cela vous permettra de remplacer certaines fonctions et d'ajouter des options personnalisées en fonction de vos besoins - il semble que vous souhaitiez le faire.
Il s'agit d'une meilleure approche car elle utilise la fonctionnalité d'origine, puis vous modifiez ce dont vous avez besoin plutôt que de tout copier.
Assurez-vous simplement de l'exiger dans votre catalogue personnalisé ajouter au panier JS comme indiqué dans cet exemple.
requirejs-config.js
customCatalogAddToCart.js
J'ai utilisé cette solution avec succès pour éditer le panier JS, j'espère que cela vous aidera!
la source
Le faire par fichier CSV est le moyen le plus simple et le plus simple de Magento 2!
Créez le dossier i18n dans votre module personnalisé en tant que:
application / code / fournisseur / module / i18n
Créez ici le fichier en_US.csv et écrivez l'étiquette que vous souhaitez modifier comme:
Vous pouvez modifier un assez bon nombre d'étiquettes de cette façon, comme:
Bon de voir d'autres réponses :)
la source