Come rimuovo l'iniziale / nome secondario dei clienti dalla pagina di pagamento?


19

Dall'aggiornamento all'ultima versione di Magento, ho notato che una nuova voce è apparsa sulla pagina di checkout chiedendo il secondo nome / iniziale dei clienti.

Come rimuovo la voce "Secondo nome / iniziale" dalla pagina di pagamento?

Risposte:


46

In che modo l'aggiornamento Magento 1.9.2.1 influisce sul secondo nome

Innanzitutto, la soluzione

Ho avuto lo stesso problema durante l'aggiornamento a Magento CE 1.9.2.1 da Magento CE 1.9.2.0 . L'aggiornamento ha causato la visualizzazione di Secondo nome, ma quando ho controllato l'amministratore System > Configuration > Customers > Customer Configuration > Name and Address Optionsl'impostazione "Mostra secondo nome (iniziale)" visualizzava già "No", che è quello che volevo. Ho cambiato l'impostazione su "Sì" e poi di nuovo su "No" prima di fare clic su "Salva configurazione", e questo ha immediatamente rimosso il secondo nome / iniziale dal checkout quando ho aggiornato la pagina.

Il database

Nel mio caso, sto lavorando per aggiornare un negozio da Magento 1.8.x a Magento 1.9.x. È nel mio ambiente di sviluppo che ho aggiornato da 1.9.2.0 a 1.9.2.1. Per aggiornare il sito live all'avvio dell'aggiornamento da 1.8.xa 1.9.x, dovremo aggiornare molte delle impostazioni di amministrazione, che prevediamo di eseguire direttamente nel database con una query. Nel database, puoi vedere come Magento modifica l'impostazione del secondo nome.

L'impostazione dell'amministratore visualizzata può essere fuorviante

La tabella `core_config_data` gestisce le impostazioni dell'amministratore per" Mostra secondo nome (iniziale) con il record dove `core_config_data`.`path`='customer/address/middlename_show'.

Questo record contiene l'impostazione nel campo `value` (0 =" No ", 1 =" Sì "). Questo campo non viene modificato quando appare il secondo nome aggiornando a Magento CE 1.9.2.1 . Se salvi una modifica a "Mostra secondo nome (iniziale)" nelle impostazioni di amministrazione dopo che Magento ha apportato modifiche durante l'aggiornamento a 1.9.2.1, cambierà qui il valore `core_config_data`.

L'aggiornamento a 1.9.2.1 non ha modificato il record su `core_config_data`, e quindi ciò che viene visualizzato nelle impostazioni di amministrazione. Tuttavia, l'aggiornamento modifica un record diverso di una tabella diversa.

La visibilità effettiva del secondo nome è in `customer_eav_attribute`

Nelle mie numerose istanze di sviluppo di Magento, la tabella `eav_attribute` ha 2" secondo nome "` attributi_code` (s), gli attributi_id` sono 6 e 21 . La tabella `customer_eav_attribute` imposta la visibilità dell'attributo con un campo` is_visible`.

  • Nel mio ambiente live 1.8.x, avevano "stats_id" (s) 6 e 21 `is_visible` = 0.
  • Dopo aver aggiornato lo sviluppatore in Magento CE 1.9.2.1 da Magento CE 1.9.2.0 , è diventato `is_visible` = 1.
  • Dopo aver attivato e salvato l'amministratore "Mostra secondo nome (iniziale)" su "No", di `is_visible`=0nuovo e il campo Secondo nome / Iniziale è scomparso dalla cassa.

Sommario

L' aggiornamento Magento CE 1.9.2.1 ha capovolto l'impostazione del secondo nome nella tabella `customer_eav_attribute` senza influire su ciò che viene visualizzato nell'amministratore Magento sotto l'impostazione" Mostra secondo nome (iniziale) ". Puoi risolverlo nel modo in cui l'impostazione viene normalmente regolata nell'amministratore, senza apportare modifiche di vasta portata al modello, attivando l'impostazione "Mostra secondo nome (iniziale)".

Nota a margine

Se per qualche motivo è necessario trasferire questa impostazione dell'amministratore su più copie di un negozio o in un batch di aggiornamenti dell'amministratore, ad esempio durante l'aggiornamento di un negozio in modo che corrisponda a un ambiente di sviluppo ... Per questa impostazione è possibile utilizzare la seguente istruzione SQL ( purché tu sappia che "secondo nome" è "attributo_id" 6 e 21. nel tuo negozio. Questo è standard per Magento, ma per sicurezza, controlla prima la tua tabella "eav_attribute`.).

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


correzione su magento 1.9.2.1 funziona bene per me
Fra

5

La risposta tecnica

L'opzione di configurazione del sistema ha un modello di backend ( Mage_Adminhtml_Model_System_Config_Backend_Customer_Show_Customer) il cui _afterSavemetodo apporta la stessa modifica all'attributo EAV del cliente (tabella:) customer_eav_attribute.

Il valore dell'opzione di configurazione del sistema e il is_visiblevalore dell'attributo EAV potrebbero non essere necessariamente sincronizzati (a causa di un aggiornamento di Magento o se l'opzione di configurazione è stata modificata a livello di codice o per qualsiasi altro motivo).

Lanciando l'interruttore un paio di volte lo risolverai o, se sei come me e usi gli script di installazione / aggiornamento per tutto, puoi fare quanto segue:

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
Grazie, funziona benissimo. Dovresti aggiungere anche il codice per l'attributo dell'indirizzo cliente:$attribute = Mage::getSingleton('eav/config') ->getAttribute('customer_address', 'middlename') ->setIsVisible(0) ->save();
Andreas von Studnitz,

2

La via più facile:

Magento ver. 1.9.2.1

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

Show Middle Name (initial) = No

inserisci qui la descrizione dell'immagine


Questo era già impostato.
SR_Magento,

Basta selezionare Sì -> salva. seleziona nuovamente No-> salva. aggiorna la cache e vedi.
Pratik Kamani

0

Rimuovere {{depend middlename}}{{var middlename}}come suggerisce @sr_magento nella sua risposta non rimuove effettivamente il Show Middle Name (initial)campo dalla pagina di pagamento stessa. Lo rimuove solo dalle aree in cui le informazioni sull'indirizzo del cliente vengono visualizzate / stampate, come nell'area di amministrazione, i modelli di PDF e e-mail.

Non è necessario rimuovere il campo dai modelli e-mail. Questo è eccessivo e dovresti aggiungere di nuovo quelle voci ai modelli di e-mail nel caso in cui decidi di abilitarle Show Middle Name(initial)in futuro.

Ho notato anche questo problema tecnico , dopo l'aggiornamento da Magento CE 1.9.2.0 a Magento CE 1.9.2.1 utilizzando il downloader di Magento. L'aggiornamento sembra regolare l'impostazione per Show Middle Name (initial)under

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

da "No" a "Sì" . Mi è successo in diversi negozi su server diversi.

Per annullare questa operazione è sufficiente ripristinarlo su "No" e salvare la configurazione. Il Show Middle Name (initial)campo non verrà più visualizzato nella pagina di pagamento.


@sr_magento Il tuo metodo potrebbe funzionare (anche se non sono sicuro del perché, sospetto semplicemente che il salvataggio della configurazione faccia il trucco) ma il tuo ragionamento non è corretto. La modifica del Address Templateslike suggerito non modifica i campi di input della pagina di checkout nel frontend del negozio. Ha effetto solo sui modelli per la stampa di indirizzi. Si prega di leggere la seguente documentazione . Hai ragione sulle aree dei clienti nel pannello di amministrazione. Riformulerò questa parte della mia risposta.
ForMat

0

Se si desidera rimuovere direttamente dal file quindi

Apri il seguente file

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

cercare un if ($this->showMiddlename()) commento o rimuovere quell'istruzione if completa

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.