Làm cách nào để xóa tên khách hàng / tên đệm trung gian khỏi trang thanh toán?


19

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:


46

Bản cập nhật Magento 1.9.2.1 ảnh hưởng đến tên đệm như thế nào

Đầu tiên, giải pháp

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.

Kho dữ liệu

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.

Cài đặt quản trị được hiển thị có thể gây hiểu nhầ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.

Khả năng hiển thị tên đệm thực tế là trong `customer_eav_attribution`

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

  • Trong môi trường 1.8.x trực tiếp của tôi, `property_id` (s) 6 và 21 đã có `is_visible` = 0.
  • Sau khi cập nhật dev lên Magento CE 1.9.2.1 từ Magento CE 1.9.2.0 , nó đã trở thành `is_visible` = 1.
  • Sau khi tôi bật và lưu quản trị viên "Hiển thị tên đệm (ban đầu)" thành "Không", `is_visible`=0một lần nữa và trường Tên đệm / Trường ban đầu biến mất khỏi Checkout.

Tóm lược

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

Lưu ý bên

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


sửa lỗi trên magento 1.9.2.1 hoạt động tốt với tôi
Fra

5

Câu trả lời kỹ thuật

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ó _afterSavephươ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_visiblecó 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;
}

1
Cảm ơn, làm việc tuyệt vời. Bạn cũng nên thêm mã cho thuộc tính địa chỉ khách hàng:$attribute = Mage::getSingleton('eav/config') ->getAttribute('customer_address', 'middlename') ->setIsVisible(0) ->save();
Andreas von Studnitz

2

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

nhập mô tả hình ảnh ở đây


Điều này đã được thiết lập.
SR_Magento

Chỉ cần chọn Có -> lưu. một lần nữa chọn Không-> lưu. làm mới bộ nhớ cache và xem.
Pratik Kamani

0

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.


@sr_magento Phương pháp của bạn có thể hoạt động (mặc dù tôi không chắc tại sao, tôi nghi ngờ chỉ đơn giản là lưu cấu hình thực hiện thủ thuật) nhưng lý do của bạn không chính xác. Thay đổi Address Templatesgiố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.
ForMat

0

Nếu bạn muốn xóa trực tiếp khỏi tập tin thì

Mở tập tin sau

ứng dụng => thiết kế => frontend => cơ sở => mặc định => mẫu => khách hàng => widget => name.phtml

tìm kiếm if ($this->showMiddlename()) bình luận hoặc loại bỏ hoàn thành nếu tuyên bố

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.