Kể từ khi nâng cấp lên phiên bản Magento mới nhất, tôi nhận thấy rằng một mục mới đã xuất hiện trên trang thanh toán hỏi tên đệm / chữ cái đầu của khách hàng.
Làm cách nào để xóa mục "Tên đệm / tên ban đầu" khỏi trang thanh toán?
Kể từ khi nâng cấp lên phiên bản Magento mới nhất, tôi nhận thấy rằng một mục mới đã xuất hiện trên trang thanh toán hỏi tên đệm / chữ cái đầu của khách hàng.
Làm cách nào để xóa mục "Tên đệm / tên ban đầu" khỏi trang thanh toán?
Câu trả lời:
Tôi gặp vấn đề tương tự khi cập nhật lên Magento CE 1.9.2.1 từ Magento CE 1.9.2.0 . Bản cập nhật khiến Middle Name hiển thị, nhưng khi tôi kiểm tra quản trị viênSystem > Configuration > Customers > Customer Configuration > Name and Address Options
, cài đặt "Hiển thị tên đệm (ban đầu)" đã hiển thị "Không" - đó là điều tôi muốn. Tôi đã thay đổi cài đặt thành "Có" và sau đó quay lại "Không" trước khi nhấp vào "Lưu cấu hình" và điều này ngay lập tức xóa Tên đệm / Tên gốc khỏi Checkout khi tôi làm mới trang.
Trong trường hợp của tôi, tôi đang làm việc để cập nhật một cửa hàng từ Magento 1.8.x lên Magento 1.9.x. Chính trong môi trường phát triển của tôi, tôi đã cập nhật từ 1.9.2.0 đến 1.9.2.1. Để cập nhật trang web trực tiếp khi chúng tôi khởi chạy nâng cấp từ 1.8.x lên 1.9.x, chúng tôi sẽ cần cập nhật nhiều cài đặt quản trị viên mà chúng tôi dự định thực hiện trực tiếp trong cơ sở dữ liệu bằng truy vấn. Trong cơ sở dữ liệu, bạn có thể thấy Magento thay đổi cài đặt Tên đệm.
Bảng `core_config_data` xử lý cài đặt quản trị viên cho" Hiển thị tên đệm (ban đầu) với bản ghi trong đó `core_config_data`.`path`='customer/address/middlename_show'
.
Bản ghi này giữ cài đặt trong trường `value` (0 =" Không ", 1 =" Có "). Trường này không thay đổi khi tên đệm xuất hiện bằng cách nâng cấp lên Magento CE 1.9.2.1 . Nếu bạn lưu thay đổi thành "Hiển thị tên đệm (ban đầu)" trong cài đặt quản trị viên sau khi Magento thay đổi trong quá trình cập nhật lên 1.9.2.1, nó sẽ thay đổi giá trị `core_config_data` tại đây.
Bản cập nhật lên 1.9.2.1 không thay đổi bản ghi trên `core_config_data`, và do đó, những gì được hiển thị trong cài đặt quản trị viên. Nhưng, bản cập nhật không thay đổi một bản ghi khác của một bảng khác.
Trong nhiều phiên bản dev của Magento, bảng `eav_attribution` có 2" tên đệm "` property_code` (s), `property_id` (s) là 6 và 21 . Bảng `customer_eav_attribution` đặt mức độ hiển thị của thuộc tính với một trường` is_visible`.
`is_visible` = 0
. `is_visible` = 1
.`is_visible`=0
một lần nữa và trường Tên đệm / Trường ban đầu biến mất khỏi Checkout.Bản cập nhật Magento CE 1.9.2.1 đã lật cài đặt Tên đệm trong bảng `customer_eav_attribution` mà không ảnh hưởng đến những gì được hiển thị trong quản trị viên Magento trong cài đặt" Hiển thị tên đệm (ban đầu) ". Bạn có thể sửa nó theo cách cài đặt thường được điều chỉnh trong quản trị viên, mà không cần điều chỉnh mẫu sâu rộng, bằng cách chuyển đổi cài đặt "Hiển thị tên đệm (ban đầu)".
Nếu vì lý do nào đó, bạn cần chuyển cài đặt quản trị viên này qua nhiều bản sao của cửa hàng hoặc trong một loạt các cập nhật quản trị viên, như trong khi nâng cấp cửa hàng để phù hợp với môi trường nhà phát triển ... Bạn có thể sử dụng câu lệnh SQL sau cho cài đặt này ( miễn là bạn biết rằng "tên đệm" là `property_id` 6 và 21 trong cửa hàng của bạn. Đây là tiêu chuẩn của Magento, nhưng để an toàn, hãy kiểm tra kỹ bảng` eav_attribution` của bạn trước.).
UPDATE customer_eav_attribute SET is_visible = 0 WHERE attribute_id IN (6, 21);
Tùy chọn cấu hình hệ thống đã có một mô hình phụ trợ ( Mage_Adminhtml_Model_System_Config_Backend_Customer_Show_Customer
) có _afterSave
phương thức thực hiện cùng một thay đổi trong thuộc tính EAV của khách hàng (bảng customer_eav_attribute
:).
Giá trị tùy chọn cấu hình hệ thống và giá trị thuộc tính EAV is_visible
có thể không nhất thiết phải đồng bộ hóa (do nâng cấp Magento hoặc nếu tùy chọn cấu hình được thay đổi theo chương trình hoặc vì bất kỳ lý do nào khác).
Lật công tắc một vài lần sẽ sửa nó, hoặc, nếu bạn giống tôi và sử dụng các tập lệnh cài đặt / nâng cấp cho mọi thứ, bạn có thể làm như sau:
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;
}
$attribute = Mage::getSingleton('eav/config') ->getAttribute('customer_address', 'middlename') ->setIsVisible(0) ->save();
Cách dễ nhất:
Magento ver. 1.9.2.1
System > Configuration > Customers > Customer configuration > Name and Address Options
Show Middle Name (initial)
= = No
Việc xóa {{depend middlename}}{{var middlename}}
như @sr_magento cho thấy trong câu trả lời của anh ta thực sự không xóa Show Middle Name (initial)
trường khỏi trang thanh toán. Nó chỉ xóa nó khỏi các khu vực nơi thông tin địa chỉ khách hàng được hiển thị / in, như trong khu vực quản trị, các mẫu PDF và email.
Không cần phải xóa trường khỏi các mẫu email. Điều này là quá mức cần thiết và bạn sẽ phải thêm các mục đó vào các mẫu email một lần nữa trong trường hợp bạn quyết định kích hoạt Show Middle Name(initial)
trong tương lai.
Tôi cũng nhận thấy sự cố này, sau khi cập nhật từ Magento CE 1.9.2.0 lên Magento CE 1.9.2.1 bằng trình tải xuống Magento. Bản cập nhật dường như điều chỉnh cài đặt cho Show Middle Name (initial)
bên dưới
System > Configuration > Customers > Customer Configuration > Name and Address Options
từ "Không" đến "Có" . Nó đã xảy ra với tôi trong một số cửa hàng trên các máy chủ khác nhau.
Để hoàn tác việc này, chỉ cần đặt lại thành "Không" và lưu cấu hình. Các Show Middle Name (initial)
lĩnh vực sẽ không còn được hiển thị trên trang thanh toán.
Address Templates
giống như bạn đề xuất không thay đổi các trường nhập Trang Thanh toán ở lối vào của cửa hàng. Nó chỉ ảnh hưởng đến các mẫu để in địa chỉ. Xin vui lòng đọc các tài liệu sau đây . Bạn nói đúng về các lĩnh vực khách hàng trong bảng quản trị. Tôi sẽ viết lại phần này trong câu trả lời của tôi.