Ich habe den Text "In den Warenkorb" in "Ich möchte dies" durch Überschreiben "geändert vendor\magento\module-catalog\view\frontend\templates\product\list.phtml
.
Wenn ich jedoch auf die Schaltfläche "Ich möchte dies" (dh "In den Warenkorb") klicke, wird das Produkt in den Warenkorb gelegt und der Text "In den Warenkorb" wird erneut auf der Schaltfläche angezeigt.
Ich denke, das Produkt wird über einen Ajax-Aufruf hinzugefügt. Aus diesem Grund wird nach dem Ajax-Aufruf kein neu hinzugefügter Text und der Text "In den Warenkorb" angezeigt.
Ich habe das versucht:
Ich habe eine benutzerdefinierte Erweiterung Ved_Mymodule erstellt .
Ich habe überprüft, dass die Erweiterung aktiv ist.
Danach folgte ich diesen Schritten:
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;
});
Ich versuche, Dummy-Nachrichten in der Konsole zu drucken.
Danach: Ich habe die Bereitstellung von statischem Inhalt ausgeführt. Indizieren Sie die Daten neu. Cache gereinigt und gespült.
Änderungen werden jedoch nicht angezeigt.
requirejs-config.js
den Ort um und korrigieren Sie ihnapp/code/Ved/Mymodule/view/frontend/requirejs-config.js
.Antworten:
Sie müssen js file from path überschreiben
Zu
Sie müssen den gewünschten Text aus dieser Datei ändern.
Lassen Sie mich wissen, wenn Sie Fragen haben.
quelle
Sie müssen "catalog-add-to-cart.js from path" überschreiben.
Der Text ändert sich von hier nach dem Ajax-Aufruf. Hier können Sie den Text ändern.
quelle
Der Text wurde nach Ajax-Aufruf von Javascript geändert. Wir können einen Blick darauf werfen:
Hersteller / Magento / Modul-Katalog / Ansicht / Frontend / Web / JS / Katalog-Add-to-Cart.JS
Für die beste Vorgehensweise sollte
mixins
für "Überschreiben" verwendet werden:Wir können ein Modul erstellen und dann diese Dateien hinzufügen:
app / code / Vendor / Module / view / frontend / requirejs-config.js
app / code / Vendor / Modul / view / frontend / web / js / catalog-add-to-cart-mixin.js
quelle
Hinweis: Das Folgende wurde in 2.1.7 getestet
Das Überschreiben von Core-Dateien wird als fehlerhaft angesehen.
Sie können einfach Parameter an die Funktion catalogAddToCart übergeben, die sich am Ende der Datei list.phtml befindet
Wenn du schaust die Datei catalog-add-to-cart.js (nicht bearbeiten oder kopieren), werden Sie feststellen, dass sie Parameter akzeptiert.
Hersteller / Magento / Modul-Katalog / Ansicht / Frontend / Web / JS / Katalog-Add-to-Cart.JS
Öffnen Sie als Nächstes die Datei list.phtml in Ihrem Design
app / design / frontend / Namespace / theme / Magento_Catalog / template / product / list.phtml
Am Ende der Seite finden Sie
Fügen Sie der Funktion einfach Parameter hinzu ...
In meinem Fall habe ich dann eine Übersetzung für 'In den Warenkorb' in en_GB.csv hinzugefügt , diese ist jedoch möglicherweise nicht für Ihren Zweck geeignet. Bearbeiten Sie sie also direkt hier.
quelle
Bitte versuchen Sie dies ... Um den Text der Antwort "In den Warenkorb", "Hinzufügen ..." und "Hinzugefügt" von json zu übersetzen, gehen Sie wie folgt vor.
Schritt 1: Für Änderungen in der Produktliste Seite. Gehen Sie zum Dateipfad app / design / frontend / Your_Theme_Namespace / Theme_Name / Magento_Catalog / templates / product / list.phtml und ersetzen Sie den folgenden Code in der Zeile um 121
Schritt 2: Für Änderungen benötigen Sie die Produktansichtsseite. Gehen Sie zum Dateipfad app / design / frontend / Your_Theme_Namespace / Themenname / Magento_Catalog / templates / product / view / addtocart.phtml und ersetzen Sie den Code in der Zeile um 54
Führen Sie die folgenden Befehle aus:
php bin / magento setup: static-content: deploy de_DE ja_JP zh_Hans_CN
PHP bin / Magento Cache: Flush Ich habe dies versucht und es funktioniert für mich.
quelle
Sie können den Katalog zum Warenkorb hinzufügen, anstatt die gesamte Datei zu überschreiben. Auf diese Weise können Sie bestimmte Funktionen außer Kraft setzen und benutzerdefinierte Optionen hinzufügen, die Ihren Anforderungen entsprechen - anscheinend möchten Sie dies tun.
Dies ist ein besserer Ansatz, da die ursprüngliche Funktionalität verwendet wird und Sie dann ändern, was Sie benötigen, anstatt alles zu kopieren.
Stellen Sie einfach sicher, dass es in Ihrem benutzerdefinierten Katalog in den Warenkorb JS erforderlich ist, wie in diesem Beispiel gezeigt.
requirejs-config.js
customCatalogAddToCart.js
Ich habe diese Lösung erfolgreich verwendet, um den Wagen JS zu bearbeiten, hoffe, das hilft!
quelle
In Magento 2 ist es die beste und einfachste Möglichkeit, dies per CSV-Datei zu tun!
Erstellen Sie den Ordner i18n in Ihrem benutzerdefinierten Modul als:
App / Code / Hersteller / Modul / i18n
Erstellen Sie hier die Datei en_US.csv und schreiben Sie ein Label, das Sie ändern möchten als:
Sie können auf diese Weise eine ziemlich gute Anzahl von Bezeichnungen ändern:
Schön, andere Antworten zu sehen :)
quelle