Saya menerapkan pengalih toko khusus dalam tema khusus saya.
Blokir template adalah sebagai berikut:
<?php if (count($block->getStores())>1): ?>
<?php $id = $block->getIdModifier() ? '-' . $block->getIdModifier() : ''?>
<span><?php echo $block->escapeHtml($block->getStoreName()) ?></span>
<span>/</span>
<?php foreach ($block->getStores() as $_lang): ?>
<?php if ($_lang->getId() != $block->getCurrentStoreId()): ?>
<span class="view-<?php echo $block->escapeHtml($_lang->getCode()); ?> switcher-option">
<a href="#" data-post='<?php /* @escapeNotVerified */ echo $block->getTargetStorePostData($_lang); ?>'>
<?php echo $block->escapeHtml($_lang->getName()) ?>
</a>
</span>
<?php endif; ?>
<?php endforeach; ?>
<?php endif; ?>
Tautan ke toko baru ditampilkan dengan benar, jadi saya kira hal-hal xml OK, tetapi pada klik saya menerima kesalahan berikut:
section-config.js: 33 UnEught TypeError: Tidak dapat membaca properti '*' dari undefined (...)
Yang dihasilkan html
terlihat seperti berikut:
<span class="view-it switcher-option">
<a href="#" data-post="{"action":"http:\/\/test.mysite.eu\/stores\/store\/switch\/","data":{"___store":"it","uenc":"aHR0cDovL3Rlc3QuZnJhZ2lhY29tb21pbGFuby5ldS8,"}}">
It
</a>
</span>
magento2
magento-2.1
blocks
javascript
store-switcher
davideghz
sumber
sumber
sudo php bin/magento setup:static-content:deploy
tanpa keberuntungan. Mengapa saya harus menghapusvar
folder? Apa sebenarnya yang harus saya hapus?Jawaban:
Saya memiliki masalah yang sama dan menemukan bahwa dua blok ini tidak dipanggil lagi karena penyesuaian dalam tema.
Dua blok per default ditambahkan di
<referenceContainer name="content">
vendor / magento / module-customer / view / frontend / layout / default.xml.Coba tambahkan kembali blok ini di layout.xml Anda:
sumber
Pada proyek kami, kami memperbaikinya dalam
section-config.js
file dalam metodegetAffectedSections
(yang merupakan tempat kesalahan kami).Kami mengganti baris terakhir:
Dengan yang berikut ini:
Untuk benar-benar mengembalikan array kosong ketika tidak ada bagian yang terpengaruh.
sumber
Berlari melintasi masalah yang sama meskipun
customer.section.config
dancustomer.customer.data
dimuat dengan benar ke halaman.Namun dalam kasus saya itu terjadi karena ekstensi mencoba memicu bagian-reload terlalu dini (sebelum bagian-config.js dimuat dengan konfigurasi yang benar).
Berhasil menyelesaikannya dengan menambahkan breakpoint di
getAffectedSections
bagian-config.js dan memeriksa variabel url. Kemudian, pindahkan JS extension untuk memuat setelah blok customer.section.config:sumber
Dalam kasus kami, ini adalah sedikit kode dalam templat default yang memuat file customer-data.js setelah dipanggil pada halaman sukses.
Kami menemukan file:
vendor/magento/module-checkout/view/frontend/templates/success.phtml
sedang memuat kode ini:
Menghapus kode ini memperbaikinya, yang kami lakukan dengan membuat salinan file ini di direktori templat tema kami dan menghapus potongan kode yang menyinggung.
Anda dapat menggunakan alat Chrome Dev untuk mencari tahu di mana kesalahan itu terjadi dan kemudian sebelum di file itu di dev lokal Anda menambahkan
console.trace();
panggilan untuk menetapkan apa yang memanggil fungsi yang melemparkan kesalahan di konsol. Ikuti rantai ke tempat Anda memuat barang dengan tidak tepat.sumber