Sejak memutakhirkan ke versi terbaru Magento, saya perhatikan bahwa entri baru telah muncul di halaman checkout yang menanyakan nama tengah pelanggan / inisial.
Bagaimana cara menghapus entri "Nama tengah / inisial" dari halaman checkout?
Saya memiliki masalah yang sama ketika memperbarui ke Magento CE 1.9.2.1 dari Magento CE 1.9.2.0 . Pembaruan menyebabkan Nama Tengah untuk ditampilkan, tetapi ketika saya memeriksa admin System > Configuration > Customers > Customer Configuration > Name and Address Options
pengaturan "Tampilkan Nama Tengah (awal)" sudah menampilkan "Tidak" - itulah yang saya inginkan. Saya mengubah pengaturan menjadi "Ya" dan kemudian kembali ke "Tidak" sebelum mengklik "Simpan Konfigurasi", dan ini segera menghapus Nama Tengah / Awal dari Checkout ketika saya me-refresh halaman.
Dalam kasus saya, saya sedang berupaya memperbarui toko dari Magento 1.8.x ke Magento 1.9.x. Di lingkungan pengembangan saya saya memperbarui dari 1.9.2.0 ke 1.9.2.1. Untuk mendapatkan situs live yang terkini ketika kami meluncurkan pemutakhiran dari 1.8.x ke 1.9.x, kami perlu memperbarui banyak pengaturan admin, yang kami rencanakan untuk dilakukan secara langsung di database dengan kueri. Di database, Anda dapat melihat bagaimana Magento mengubah pengaturan Nama Tengah.
Tabel `core_config_data` menangani pengaturan admin untuk" Tampilkan Nama Tengah (awal) dengan catatan di mana `core_config_data`.`path`='customer/address/middlename_show'
.
Catatan ini menyimpan pengaturan dalam bidang `value` (0 =" Tidak ", 1 =" Ya "). Bidang ini tidak berubah ketika nama tengah muncul dengan memutakhirkan ke Magento CE 1.9.2.1 . Jika Anda menyimpan perubahan ke "Tampilkan Nama Tengah (awal)" di pengaturan admin setelah Magento membuat perubahan selama pembaruan ke 1.9.2.1, itu akan mengubah nilai `core_config_data` di sini.
Pembaruan ke 1.9.2.1 tidak mengubah catatan pada `core_config_data`, dan karenanya apa yang ditampilkan dalam pengaturan admin. Namun, pembaruan tidak mengubah catatan berbeda dari tabel yang berbeda.
Dalam banyak contoh dev saya di Magento, tabel `eav_attribute` memiliki 2" nama tengah "` attribute_code` (s), `attribute_id` (s) menjadi 6 dan 21 . Tabel `customer_eav_attribute` menetapkan visibilitas atribut dengan bidang` is_visible`.
`is_visible` = 0
. `is_visible` = 1
.`is_visible`=0
lagi dan bidang Nama Tengah / Awal menghilang dari Checkout.The Magento CE 1.9.2.1 pembaruan membalik pengaturan Nama Tengah di tabel `customer_eav_attribute` tanpa mempengaruhi apa yang ditampilkan dalam admin Magento bawah "Tampilkan Nama Tengah (Initial)" pengaturan. Anda dapat memperbaikinya seperti pengaturan yang biasanya disesuaikan di admin, tanpa membuat penyesuaian templat yang jauh, dengan mengubah pengaturan "Tampilkan Nama Tengah (Awal)".
Jika karena alasan tertentu Anda perlu mentransfer pengaturan admin ini di beberapa salinan toko, atau dalam batch pembaruan admin, seperti saat meningkatkan toko agar sesuai dengan lingkungan dev ... Anda dapat menggunakan pernyataan SQL berikut untuk pengaturan ini ( asalkan Anda tahu bahwa "nama tengah" adalah `attribute_id` 6 dan 21 di toko Anda. Ini standar untuk Magento, tetapi untuk amannya, periksa dulu tabel` eav_attribute` Anda terlebih dahulu.).
UPDATE customer_eav_attribute SET is_visible = 0 WHERE attribute_id IN (6, 21);
Jawaban teknisnya
Opsi konfigurasi sistem telah mendapatkan model backend (
Mage_Adminhtml_Model_System_Config_Backend_Customer_Show_Customer
) yang_afterSave
metodenya membuat perubahan yang sama pada atribut EAV pelanggan (tabel:)customer_eav_attribute
.Nilai opsi konfigurasi sistem dan nilai atribut EAV
is_visible
mungkin tidak harus disinkronkan (baik karena peningkatan Magento, atau jika opsi konfigurasi diubah secara pemrograman, atau alasan lainnya).Membalik sakelar beberapa kali akan memperbaikinya, atau, jika Anda seperti saya dan menggunakan skrip pasang / pasang untuk semuanya, Anda dapat melakukan hal berikut:
sumber
$attribute = Mage::getSingleton('eav/config') ->getAttribute('customer_address', 'middlename') ->setIsVisible(0) ->save();
Cara termudah:
Magento ver. 1.9.2.1
Show Middle Name (initial)
=No
sumber
Menghapus
{{depend middlename}}{{var middlename}}
seperti @sr_magento menyarankan dalam jawabannya sebenarnya tidak menghapus hapusShow Middle Name (initial)
bidang dari halaman checkout itu sendiri. Ini hanya menghapusnya dari area di mana info alamat pelanggan diberikan / dicetak, seperti di area admin, templat PDF dan email.Tidak perlu menghapus bidang dari template email. Ini berlebihan dan Anda harus menambahkan entri itu ke templat email lagi jika Anda memutuskan untuk mengaktifkannya
Show Middle Name(initial)
di masa mendatang.Saya telah memperhatikan kesalahan ini juga, setelah memperbarui dari Magento CE 1.9.2.0 ke Magento CE 1.9.2.1 menggunakan pengunduh Magento. Pembaruan tampaknya menyesuaikan pengaturan di
Show Middle Name (initial)
bawahdari "Tidak" ke "Ya" . Itu terjadi pada saya di beberapa toko di server yang berbeda.
Untuk membatalkan ini cukup atur kembali ke "Tidak" dan simpan konfigurasi. The
Show Middle Name (initial)
lapangan tidak akan lagi ditampilkan pada halaman checkout.sumber
Address Templates
seperti yang Anda sarankan tidak mengubah bidang input Halaman Checkout di frontend toko. Ini hanya memengaruhi templat untuk alamat pencetakan. Silakan baca dokumentasi berikut . Anda benar tentang area pelanggan di panel admin. Saya akan ulangi bagian dari jawaban saya ini.Jika Anda ingin menghapus langsung dari file, maka
Buka file berikut
mencari
if ($this->showMiddlename())
komentar atau menghapus pernyataan lengkap jikasumber