Como removo o nome / nome do meio dos clientes da página de checkout?


19

Desde a atualização para a versão mais recente do Magento, notei que uma nova entrada apareceu na página de checkout solicitando o nome do meio / inicial do cliente.

Como removo a entrada "Nome do meio / inicial" da página de checkout?

Respostas:


46

Como a atualização do Magento 1.9.2.1 afeta o nome do meio

Primeiro, a solução

Eu tive o mesmo problema ao atualizar para o Magento CE 1.9.2.1 a partir do Magento CE 1.9.2.0 . A atualização fez com que o nome do meio System > Configuration > Customers > Customer Configuration > Name and Address Optionsfosse exibido, mas quando verifiquei o administrador, a configuração "Mostrar nome do meio (inicial)" já estava exibindo "Não" - era o que eu queria. Alterei a configuração para "Sim" e depois voltei para "Não" antes de clicar em "Salvar configuração", e isso removeu imediatamente o nome do meio / inicial do Checkout quando atualizei a página.

O banco de dados

No meu caso, estou trabalhando na atualização de uma loja do Magento 1.8.x para o Magento 1.9.x. É no meu ambiente de desenvolvimento que atualizei de 1.9.2.0 para 1.9.2.1. Para atualizar o site ao vivo quando iniciarmos a atualização de 1.8.x para 1.9.x, precisaremos atualizar muitas das configurações de administrador, que planejamos fazer diretamente no banco de dados com uma consulta. No banco de dados, você pode ver como o Magento altera a configuração do nome do meio.

A configuração de administrador exibida pode ser enganosa

A tabela `core_config_data` lida com a configuração de administrador para" Mostrar nome do meio (inicial) com o registro em que `core_config_data`.`path`='customer/address/middlename_show'.

Este registro mantém a configuração no campo `valor` (0 =" Não ", 1 =" Sim "). Este campo não é alterado quando o nome do meio aparece, atualizando para o Magento CE 1.9.2.1 . Se você salvar uma alteração no "Mostrar nome do meio (inicial)" nas configurações administrativas depois que o Magento fizer alterações durante a atualização para 1.9.2.1, ele mudará o valor de `core_config_data` aqui.

A atualização para 1.9.2.1 não alterou o registro em `core_config_data` e, portanto, o que é exibido nas configurações de administrador. Mas, a atualização altera um registro diferente de uma tabela diferente.

A visibilidade real do nome do meio está em `customer_eav_attribute`

Nas minhas muitas instâncias de desenvolvimento do Magento, a tabela `eav_attribute` possui 2" nome do meio "` attribute_code` (s), sendo o `attribute_id` (s) 6 e 21 . A tabela `customer_eav_attribute` define a visibilidade do atributo com um campo` is_visible`.

  • No meu ambiente ao vivo 1.8.x, `attribute_id` (s) 6 e 21 tinham `is_visible` = 0.
  • Após atualizar o dev para o Magento CE 1.9.2.1 a partir do Magento CE 1.9.2.0 , ele se tornou `is_visible` = 1.
  • Depois de alternar e salvar o administrador "Mostrar nome do meio (inicial)" para "Não", `is_visible`=0novamente e o campo Nome do meio / inicial desapareceu do Google Checkout.

Sumário

A atualização do Magento CE 1.9.2.1 inverteu a configuração do nome do meio na tabela `customer_eav_attribute` sem afetar o que é exibido no administrador do Magento na configuração" Mostrar nome do meio (inicial) ". Você pode corrigi-lo da maneira como a configuração é normalmente ajustada no administrador, sem fazer ajustes de modelo de longo alcance, alternando a configuração "Mostrar nome do meio (inicial)".

Nota

Se, por algum motivo, você precisar transferir essa configuração de administrador entre várias cópias de uma loja ou em um lote de atualizações de administrador, como atualizar uma loja para corresponder a um ambiente de desenvolvimento ... Você pode usar a seguinte instrução SQL para esta configuração ( desde que você saiba que "nome do meio" é `attribute_id` 6 e 21. em sua loja. Isso é padrão para o Magento, mas para garantir, verifique primeiro sua tabela` eav_attribute`.).

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


correção em Magento 1.9.2.1 funciona bem para mim
Fra

5

A resposta técnica

A opção de configuração do sistema possui um modelo de back-end ( Mage_Adminhtml_Model_System_Config_Backend_Customer_Show_Customer) cujo _afterSavemétodo faz a mesma alteração no atributo EAV do cliente (tabela:) customer_eav_attribute.

O valor da opção de configuração do sistema e o is_visiblevalor do atributo EAV podem não estar necessariamente sincronizados (devido a uma atualização do Magento ou se a opção de configuração foi alterada programaticamente ou por qualquer outro motivo).

Se você acionar o comutador algumas vezes, será corrigido ou, se você for como eu e usar scripts de instalação / atualização para tudo, poderá fazer o seguinte:

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
Obrigado, trabalhando muito bem. Você também deve adicionar o código para o atributo de endereço do cliente:$attribute = Mage::getSingleton('eav/config') ->getAttribute('customer_address', 'middlename') ->setIsVisible(0) ->save();
Andreas von Studnitz,

2

O jeito mais fácil:

Magento ver. 1.9.2.1

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

Show Middle Name (initial) = No

insira a descrição da imagem aqui


Isso já estava definido.
SR_Magento 30/08/2015

Basta selecionar Sim -> salvar. selecione novamente Não-> salvar. atualize o cache e veja.
Pratik Kamani

0

Remover {{depend middlename}}{{var middlename}}como @sr_magento sugere em sua resposta, na verdade, não remove remover o Show Middle Name (initial)campo da própria página de checkout. Ele o remove apenas das áreas onde as informações do endereço do cliente são renderizadas / impressas, como na área administrativa, nos PDFs e nos modelos de email.

Não há necessidade de remover o campo dos modelos de email. Isso é um exagero e você teria que adicionar essas entradas aos modelos de email novamente, caso decida ativar o recurso Show Middle Name(initial)no futuro.

Também notei essa falha, depois de atualizar o Magento CE 1.9.2.0 para o Magento CE 1.9.2.1 usando o Magento Downloader. A atualização parece ajustar a configuração para Show Middle Name (initial)menos de

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

de "Não" a "Sim" . Isso aconteceu comigo em várias lojas em diferentes servidores.

Para desfazer isso, basta configurá-lo novamente para "Não" e salvar a configuração. O Show Middle Name (initial)campo não será mais exibido na página de checkout.


@sr_magento Seu método pode funcionar (embora não tenha certeza do motivo, suspeito que simplesmente salvar a configuração faça o truque), mas seu raciocínio está incorreto. Alterar o Address Templatesque você sugere não altera os campos de entrada da página do Google Checkout no frontend da loja. Isso afeta apenas os modelos para imprimir endereços. Por favor, leia a seguinte documentação . Você está certo sobre as áreas do cliente no painel de administração. Vou reformular esta parte da minha resposta.
ForMat

0

Se você deseja remover diretamente do arquivo,

Abra o seguinte arquivo

app => design => front-end => base => padrão => modelo => cliente => widget => name.phtml

procure um if ($this->showMiddlename()) comentário ou remova essa instrução if completa

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.