Saya telah mengubah teks "Tambahkan ke troli" menjadi "Saya ingin ini" dengan menimpa " vendor\magento\module-catalog\view\frontend\templates\product\list.phtml
".
Tetapi, ketika saya mengklik tombol "Saya ingin ini" (yaitu "Tambahkan ke troli"), produk ditambahkan ke troli dan kemudian lagi "Tambahkan ke troli" teks muncul pada tombol.
Saya pikir produk ditambahkan melalui panggilan ajax, itu sebabnya teks yang baru ditambahkan tidak muncul setelah panggilan ajax dan teks "Tambahkan ke troli" ditampilkan.
Saya sudah mencoba ini:
Saya telah membuat ekstensi khusus Ved_Mymodule .
Saya telah memeriksa ekstensi yang aktif.
Setelah itu saya ikuti langkah-langkah ini:
app / code / Ved / Mymodule / view / frontend / requireejs-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;
});
Saya mencoba mencetak pesan tiruan di konsol.
Setelah ini: Saya telah menjalankan penyebaran konten statis. Reindex data. Cache dibersihkan dan disiram.
Tetapi perubahan tidak muncul.
requirejs-config.js
dan perbaiki lokasiapp/code/Ved/Mymodule/view/frontend/requirejs-config.js
.Jawaban:
Anda harus mengganti file js dari path
Untuk
Anda harus mengubah teks yang Anda inginkan dari file ini.
Beri tahu saya jika Anda memiliki pertanyaan.
sumber
Anda perlu mengganti, katalog-tambahkan-ke-cart.js dari path,
Teks berubah dari sini setelah panggilan ajax. Anda dapat mengubah teks di sini.
sumber
Teks diubah oleh Javascript setelah panggilan Ajax. Kita bisa melihatnya:
vendor / magento / module-catalog / view / frontend / web / js / catalog-add-to-cart.js
Untuk praktik terbaik, sebaiknya gunakan
mixins
untuk "mengganti":Kita dapat membuat modul, dan kemudian menambahkan file-file ini:
app / code / Vendor / Module / view / frontend / requireejs-config.js
app / code / Vendor / Module / view / frontend / web / js / catalog-add-to-cart-mixin.js
sumber
Catatan: di bawah ini telah diuji di 2.1.7
Meng-override file inti dianggap praktik buruk.
Anda cukup mengirimkan parameter ke fungsi catalogAddToCart yang dapat ditemukan di bagian bawah list.phtml
Jika Anda melihat (jangan mengedit atau menyalin) pada file catalog-add-to-cart.js Anda akan melihat bahwa ia menerima parameter.
vendor / magento / module-catalog / view / frontend / web / js / catalog-add-to-cart.js
Selanjutnya buka list.phtml di dalam tema Anda
app / design / frontend / Namespace / theme / Magento_Catalog / template / produk / list.phtml
Ke bagian bawah halaman Anda akan menemukan
Cukup tambahkan parameter ke fungsi ...
Dalam kasus saya, saya kemudian menambahkan terjemahan untuk 'Tambahkan ke Troli' dalam en_GB.csv tetapi ini mungkin tidak sesuai untuk tujuan Anda jadi silakan mengeditnya di sini secara langsung.
sumber
Silakan coba ini ... Untuk menerjemahkan teks dari "Tambahkan ke troli", "Menambahkan ..." dan "Ditambahkan" oleh json, ikuti langkah-langkah di bawah ini.
Langkah 1: Untuk Perubahan perlu di halaman Daftar produk. Buka file path app / design / frontend / Your_Theme_Namespace / Theme_Name / Magento_Catalog / templates / product / list.phtml dan ganti kode di bawah ini secara online sekitar 121
Langkah 2: Untuk perubahan perlu halaman tampilan Produk. Buka file path app / design / frontend / Your_Theme_Namespace / Theme_Name / Magento_Catalog / templates / product / view / addtocart.phtml dan ganti kode on line sekitar 54
Jalankan perintah di bawah ini:
setup php bin / magento: static-content: deploy en_US ja_JP zh_Hans_CN
php bin / magento cache: flush Saya telah mencoba ini dan ini berfungsi untuk saya.
sumber
Anda dapat memperluas katalog tambah ke keranjang alih-alih mengganti seluruh file. Ini akan memungkinkan Anda untuk menimpa fungsi tertentu dan menambahkan opsi khusus yang sesuai dengan kebutuhan Anda - sepertinya Anda ingin melakukan ini.
Ini adalah pendekatan yang lebih baik karena menggunakan fungsi asli dan kemudian Anda mengubah apa yang Anda butuhkan daripada menyalin semuanya.
Pastikan untuk mengharuskannya di katalog khusus Anda, tambahkan ke keranjang JS seperti yang ditunjukkan dalam contoh ini.
requireejs-config.js
customCatalogAddToCart.js
Saya telah menggunakan solusi ini dengan sukses untuk mengedit keranjang JS, semoga ini membantu!
sumber
Melakukannya dengan file CSV adalah cara terbaik dan paling sederhana di Magento 2!
Buat folder i18n di modul khusus Anda sebagai:
app / code / Vendor / Module / i18n
Buat di sini file en_US.csv dan tulis Label yang ingin Anda ubah sebagai:
Anda dapat mengubah jumlah label yang cukup baik dengan cara ini seperti:
Bagus melihat jawaban lain :)
sumber