결제 페이지에서 고객의 중간 이니셜 / 이름을 제거하려면 어떻게해야합니까?


19

최신 버전의 Magento로 업그레이드 한 후 고객의 중간 이름 / 초기화를 요청하는 새로운 항목이 결제 페이지에 나타납니다.

결제 페이지에서 "중간 이름 / 초기"항목을 어떻게 제거합니까?

답변:


46

Magento 1.9.2.1 업데이트가 중간 이름에 미치는 영향

첫째, 해결책

에 업데이트 할 때 저도 같은 문제를 가지고 젠토 CE 1.9.2.1 에서 젠토 CE 1.9.2.0 . 업데이트로 중간 이름이 표시되었지만 관리자를 확인했을 때 System > Configuration > Customers > Customer Configuration > Name and Address Options"중간 이름 표시 (초기)"설정에 이미 "아니요"가 표시되었습니다. "설정 저장"을 클릭하기 전에 설정을 "예"로 변경 한 다음 "아니요"로 다시 변경했습니다. 그러면 페이지를 새로 고칠 때 즉시 Checkout에서 중간 이름 / 초기화가 제거되었습니다.

데이터베이스

제 경우에는 Magento 1.8.x에서 Magento 1.9.x로 상점을 업데이트하려고합니다. 개발 환경에서 1.9.2.0에서 1.9.2.1로 업데이트했습니다. 1.8.x에서 1.9.x로 업그레이드를 시작할 때 라이브 사이트를 최신 상태로 유지하려면 쿼리를 사용하여 데이터베이스에서 직접 수행 할 많은 관리자 설정을 업데이트해야합니다. 데이터베이스에서 Magento가 중간 이름 설정을 어떻게 변경하는지 확인할 수 있습니다.

표시된 관리자 설정이 잘못 될 수 있습니다

core_config_data 테이블은 "Show Middle Name (초기)"에 대한 관리자 설정을 where 레코드로 처리 `core_config_data`.`path`='customer/address/middlename_show'합니다.

이 레코드는`value` 필드 (0 = "No", 1 = "Yes")의 설정을 유지합니다. Magento CE 1.9.2.1 로 업그레이드하여 중간 이름이 나타나면이 필드는 변경되지 않습니다 . Magento가 1.9.2.1로 업데이트하는 동안 변경 한 후 관리자 설정에서 "중간 이름 표시 (초기)"에 대한 변경 사항을 저장하면 여기에서`core_config_data '값이 변경됩니다.

1.9.2.1로 업데이트해도`core_config_data`의 레코드가 변경되지 않아 관리자 설정에 표시되는 내용이 변경되었습니다. 그러나 업데이트는 다른 테이블의 다른 레코드를 변경합니다.

실제 중간 이름 가시성은`customer_eav_attribute`에 있습니다.

Magento의 많은 dev 인스턴스에서 테이블`eav_attribute`는 2 개의 "중간 이름"`attribute_code` (s)를 가지며`attribute_id`는 621 입니다. `customer_eav_attribute`의 표는 필드`is_visible`와 속성의 가시성을 설정합니다.

  • 내 라이브 1.8.x 환경에서`attribute_id` (s) 6과 21은 `is_visible` = 0.
  • 에 dev에 업데이트 한 후 젠토 CE 1.9.2.1 에서 젠토 CE 1.9.2.0 , 그것은되었다 `is_visible` = 1.
  • 관리자 "중간 이름 표시 (초기)"를 "아니요"로 전환하고 저장 한 후 `is_visible`=0다시 중간 이름 / 초기 필드가 Checkout에서 사라졌습니다.

개요

젠토 CE 1.9.2.1 업데이트는 "연락처보기 중간 이름 (초기)"설정 아래에있는 젠토 관리자에 표시되는 내용에 영향을주지 않고`customer_eav_attribute` 테이블의 중간 이름 설정을 튀 겼다. "중간 이름 표시 (초기)"설정을 토글하여 광범위한 템플릿을 조정하지 않고도 관리자에서 설정이 정상적으로 조정되는 방식으로 수정할 수 있습니다.

사이드 노트

어떤 이유로 든 상점 환경과 일치하도록 상점을 업그레이드하는 경우와 같이 상점의 여러 사본 또는 일괄 업데이트로이 관리 설정을 전송해야하는 경우 ... 이 설정에 다음 SQL 문을 사용할 수 있습니다 ( 상점에서 "중간 이름"이`attribute_id` 6 및 21이라는 것을 알고 있다면 이것은 마젠 토의 표준이지만 안전하려면`eav_attribute` 테이블을 먼저 다시 확인하십시오.)

UPDATE customer_eav_attribute SET is_visible = 0 WHERE attribute_id IN (6, 21);


magento 1.9.2.1의 수정은 저에게 잘 작동합니다
Fra

5

기술적 답변

시스템 구성 옵션 에 고객 EAV 속성 (표 :)이 동일하게 변경 되는 백엔드 모델 ( Mage_Adminhtml_Model_System_Config_Backend_Customer_Show_Customer)이 _afterSave있습니다 customer_eav_attribute.

시스템 구성 옵션 값과 EAV 속성 is_visible값이 반드시 동기화되어있을 필요는 없습니다 (마 젠토 업그레이드로 인해 또는 구성 옵션이 프로그래밍 방식으로 변경되었거나 다른 이유로 인해).

스위치를 두 번 뒤집 으면 스위치가 고쳐 지거나 나처럼 설치 / 업그레이드 스크립트를 사용하는 경우 다음을 수행 할 수 있습니다.

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
고마워요 당신은뿐만 아니라 고객의 주소 속성에 대한 코드를 추가해야합니다 :$attribute = Mage::getSingleton('eav/config') ->getAttribute('customer_address', 'middlename') ->setIsVisible(0) ->save();
안드레아스 폰 Studnitz에게

2

가장 쉬운 방법 :

마 젠토 ver. 1.9.2.1

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

Show Middle Name (initial) = No

여기에 이미지 설명을 입력하십시오


이것은 이미 설정되었습니다.
SR_Magento

예-> 저장을 선택하십시오. 다시 No-> save를 선택하십시오. 캐시를 새로 고치고 참조하십시오.
Pratik Kamani

0

제거 {{depend middlename}}{{var middlename}}@sr_magento처럼하면 삭제하지 않습니다 실제로 그의 대답에 제안 Show Middle Name (initial)체크 아웃 페이지 자체에서 필드. 관리 영역, PDF 및 전자 메일 템플릿과 같이 고객 주소 정보가 렌더링 / 인쇄되는 영역에서만 정보를 제거합니다.

이메일 템플릿에서 필드를 제거 할 필요가 없습니다. 이것은 과잉이며 Show Middle Name(initial)나중에 사용하도록 결정한 경우 해당 항목을 전자 메일 템플릿에 다시 추가해야합니다 .

나는에서 업데이트 한 후도이 결함을 발견했습니다 젠토 CE 1.9.2.0젠토 CE 1.9.2.1 젠토 다운로더를 사용하여. 업데이트가 Show Middle Name (initial)아래 설정을 조정하는 것 같습니다

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

에서 "아니오""예" . 다른 서버의 여러 상점에서 나에게 일어났습니다.

이를 취소하려면 간단히 "아니오"로 설정하고 구성을 저장하십시오. 이 Show Middle Name (initial)필드는 더 이상 결제 페이지에 표시되지 않습니다.


@ sr_magento 귀하의 방법이 효과가있을 수 있지만 (왜 구성을 저장하면 트릭을 수행한다고 생각하는지 확실하지 않지만) 추론이 잘못되었습니다. Address Templates제안한대로 변경해도 상점 프론트 엔드의 결제 페이지 입력 필드는 변경되지 않습니다. 주소 인쇄용 템플릿에만 영향을줍니다. 다음 문서를 읽으 십시오 . 관리자 패널의 고객 영역이 맞습니다. 나는 내 대답의이 부분을 다시 말할 것이다.
ForMat

0

파일에서 직접 제거하려면

다음 파일 열기

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

if ($this->showMiddlename()) 주석을 검색 하거나 완전한 if 문을 제거하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.