Alterei o texto "Adicionar ao carrinho" para "Desejo isso" substituindo " vendor\magento\module-catalog\view\frontend\templates\product\list.phtml
".
Mas, quando clico no botão "Quero este" (ou seja, "Adicionar ao carrinho"), o produto é adicionado ao carrinho e, em seguida, novamente o texto "Adicionar ao carrinho" aparece no botão.
Acho que o produto foi adicionado via chamada ajax, é por isso que um texto recém-adicionado não é exibido após a chamada ajax e o texto "Adicionar ao carrinho" é exibido.
Eu tentei isso:
Eu criei uma extensão personalizada Ved_Mymodule .
Eu verifiquei se a extensão está ativa.
Depois disso, segui estas etapas:
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;
});
Estou tentando imprimir mensagens falsas no console.
Depois disso: executei a implantação de conteúdo estático. Reindexar os dados. Cache limpo e liberado.
Mas as mudanças não estão aparecendo.
requirejs-config.js
e corrija o localapp/code/Ved/Mymodule/view/frontend/requirejs-config.js
.Respostas:
Você deve substituir o arquivo js do caminho
Para
Você precisa alterar o texto que deseja deste arquivo.
Deixe-me saber se você tem alguma dúvida.
fonte
você precisa substituir catalog-add-to-cart.js do path,
O texto está mudando daqui após uma chamada ajax. você pode alterar o texto aqui.
fonte
O texto foi alterado por Javascript após a chamada do Ajax. Podemos dar uma olhada:
fornecedor / magento / catalog-module / view / frontend / web / js / catalog-add-to-cart.js
Para as melhores práticas, deve usar
mixins
"overriding":Podemos criar um módulo e adicionar esses arquivos:
app / code / Vendor / Module / view / frontend / requirejs-config.js
app / code / Vendor / Module / view / frontend / web / js / catalog-add-to-cart-mixin.js
fonte
Nota: o abaixo foi testado no 2.1.7
Substituir qualquer arquivo principal é considerado uma má prática.
Você pode simplesmente passar parâmetros para a função catalogAddToCart, que pode ser encontrada na parte inferior do list.phtml
Se você procurar (não edite ou copie) o arquivo catalog-add-to-cart.js, verá que ele aceita parâmetros.
fornecedor / magento / catalog-module / view / frontend / web / js / catalog-add-to-cart.js
Em seguida, abra list.phtml dentro do seu tema
app / design / frontend / Namespace / theme / Magento_Catalog / template / product / list.phtml
Na parte inferior da página, você encontrará
Basta adicionar parâmetros à função ...
No meu caso, adicionei uma tradução para 'Adicionar ao carrinho' em en_GB.csv, mas isso pode não ser adequado para seu objetivo, então vá em frente e edite-a aqui diretamente.
fonte
Por favor, tente isso ... Para traduzir o texto das respostas "Adicionar ao carrinho", "Adicionando ..." e "Adicionado" pela json, siga as etapas abaixo.
Etapa 1: Para as alterações necessárias na página da lista de produtos. Vá para o caminho do arquivo app / design / frontend / Your_Theme_Namespace / Theme_Name / Magento_Catalog / templates / product / list.phtml e substitua o código abaixo on-line em torno de 121
Etapa 2: para alterações, é necessário exibir a página de visualização do produto. Vá para o caminho do arquivo app / design / frontend / Your_Theme_Namespace / Theme_Name / Magento_Catalog / templates / product / view / addtocart.phtml e substitua o código on-line em torno de 54
Execute os comandos abaixo:
php bin / magento setup: static-content: deploy pt_BR ja_JP zh_Hans_CN
php bin / magento cache: flush Eu tentei isso e está funcionando para mim.
fonte
Você pode estender o catálogo ao carrinho, em vez de substituir o arquivo inteiro. Isso permitirá que você substitua certas funções e adicione opções personalizadas para atender às suas necessidades - parece que você deseja fazer isso.
Essa é uma abordagem melhor, pois usa a funcionalidade original e você muda o que precisa, em vez de copiar tudo.
Apenas certifique-se de solicitá-lo em seu catálogo personalizado e adicionar ao carrinho JS, como mostrado neste exemplo.
requirejs-config.js
customCatalogAddToCart.js
Eu usei esta solução com sucesso para editar o carrinho JS, espero que ajude!
fonte
Fazê-lo por arquivo CSV é a melhor e mais simples maneira no Magento 2!
Crie a pasta i18n no seu módulo personalizado como:
app / code / Vendor / Module / i18n
Crie aqui o arquivo en_US.csv e escreva o rótulo que você deseja alterar como:
Você pode alterar um número muito bom de rótulos desta maneira, como:
É bom ver outras respostas :)
fonte