Bagaimana cara menghapus inisial / nama tengah pelanggan dari halaman checkout?

19

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?

SR_Magento
sumber

Jawaban:

46

Bagaimana pembaruan Magento 1.9.2.1 memengaruhi Nama Tengah

Pertama, solusinya

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 Optionspengaturan "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.

Data

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.

Pengaturan Admin yang ditampilkan dapat menyesatkan

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.

Visibilitas nama tengah sebenarnya ada di `customer_eav_attribute`

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`.

  • Di lingkungan 1.8.x langsung saya, `atribut_id` (s) 6 dan 21 miliki `is_visible` = 0.
  • Setelah memperbarui dev ke Magento CE 1.9.2.1 dari Magento CE 1.9.2.0 , itu menjadi `is_visible` = 1.
  • Setelah saya beralih dan menyimpan admin "Tampilkan Nama Tengah (awal)" ke "Tidak", `is_visible`=0lagi dan bidang Nama Tengah / Awal menghilang dari Checkout.

Ringkasan

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)".

Catatan samping

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);

pengguna31617
sumber
memperbaiki magento 1.9.2.1 bekerja dengan baik untuk saya
Fra
5

Jawaban teknisnya

Opsi konfigurasi sistem telah mendapatkan model backend ( Mage_Adminhtml_Model_System_Config_Backend_Customer_Show_Customer) yang _afterSavemetodenya membuat perubahan yang sama pada atribut EAV pelanggan (tabel:) customer_eav_attribute.

Nilai opsi konfigurasi sistem dan nilai atribut EAV is_visiblemungkin 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:

Mage::getModel('core/config')
    ->saveConfig('customer/address/middlename_show', 0);    

try {

    $attribute = Mage::getSingleton('eav/config')
        ->getAttribute('customer', 'middlename')
        ->setIsVisible(0)
        ->save();

    $attribute = Mage::getSingleton('eav/config')
        ->getAttribute('customer_address', 'middlename')
        ->setIsVisible(0)
        ->save();

} catch (Exception $e) {
    Mage::logException($e);
    throw $e;
}
Erfan
sumber
1
Terima kasih, bekerja dengan baik. Anda harus menambahkan kode untuk atribut alamat pelanggan juga:$attribute = Mage::getSingleton('eav/config') ->getAttribute('customer_address', 'middlename') ->setIsVisible(0) ->save();
Andreas von Studnitz
2

Cara termudah:

Magento ver. 1.9.2.1

System > Configuration > Customers > Customer configuration > Name and Address Options

Show Middle Name (initial) = No

masukkan deskripsi gambar di sini

Ricardo Meza
sumber
Ini sudah diatur.
SR_Magento
Cukup pilih Ya -> simpan. lagi pilih No-> save. menyegarkan cache dan lihat.
Pratik Kamani
0

Menghapus {{depend middlename}}{{var middlename}}seperti @sr_magento menyarankan dalam jawabannya sebenarnya tidak menghapus hapus Show 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)bawah

System > Configuration > Customers > Customer Configuration > Name and Address Options

dari "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.

Format
sumber
@ sr_magento Metode Anda mungkin berhasil (walaupun saya tidak yakin mengapa, saya menduga hanya menyimpan konfigurasi yang melakukan trik) tetapi alasan Anda salah. Mengubah Address Templatesseperti 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.
ForMat
0

Jika Anda ingin menghapus langsung dari file, maka

Buka file berikut

app => design => frontend => base => default => template => customer => widget => name.phtml

mencari if ($this->showMiddlename()) komentar atau menghapus pernyataan lengkap jika

Alam Zaib
sumber