Comment supprimer l'initiale / le nom du client de la page de paiement?

19

Depuis la mise à niveau vers la dernière version de Magento, j'ai remarqué qu'une nouvelle entrée est apparue sur la page de paiement demandant le deuxième prénom / initiale du client.

Comment supprimer l'entrée "Deuxième prénom / initiale" de la page de paiement?

SR_Magento
la source

Réponses:

46

Comment la mise à jour de Magento 1.9.2.1 affecte le deuxième prénom

Tout d'abord, la solution

J'ai eu le même problème lors de la mise à jour vers Magento CE 1.9.2.1 à partir de Magento CE 1.9.2.0 . La mise à jour a provoqué l'affichage du deuxième prénom, mais lorsque j'ai vérifié l'administrateur, System > Configuration > Customers > Customer Configuration > Name and Address Optionsle paramètre "Afficher le deuxième prénom (initial)" affichait déjà "Non" - ce que je voulais. J'ai changé le paramètre en "Oui", puis de nouveau en "Non" avant de cliquer sur "Enregistrer la configuration", et cela a immédiatement supprimé le deuxième prénom / initiale de la caisse lorsque j'ai actualisé la page.

La base de données

Dans mon cas, je travaille sur la mise à jour d'une boutique de Magento 1.8.x à Magento 1.9.x. C'est dans mon environnement de développement que j'ai mis à jour de 1.9.2.0 à 1.9.2.1. Afin de mettre à jour le site en direct lorsque nous lancerons la mise à niveau de 1.8.x vers 1.9.x, nous devrons mettre à jour de nombreux paramètres d'administration, ce que nous prévoyons de faire directement dans la base de données avec une requête. Dans la base de données, vous pouvez voir comment Magento modifie le paramètre du deuxième prénom.

Le paramètre Admin affiché peut être trompeur

La table `core_config_data` gère le paramètre d'administration pour" Afficher le deuxième prénom (initial) avec l'enregistrement où `core_config_data`.`path`='customer/address/middlename_show'.

Cet enregistrement contient le paramètre dans le champ `value` (0 =" Non ", 1 =" Oui "). Ce champ n'est pas modifié lorsque le deuxième prénom apparaît lors de la mise à niveau vers Magento CE 1.9.2.1 . Si vous enregistrez une modification de "Afficher le deuxième prénom (initial)" dans les paramètres d'administration après que Magento a apporté des modifications lors de la mise à jour vers 1.9.2.1, il modifiera la valeur `core_config_data` ici.

La mise à jour vers 1.9.2.1 n'a pas modifié l'enregistrement sur `core_config_data`, et donc ce qui est affiché dans les paramètres d'administration. Mais, la mise à jour modifie un enregistrement différent d'une table différente.

La visibilité réelle du deuxième prénom se trouve dans `customer_eav_attribute`

Dans mes nombreuses instances de développement de Magento, la table `eav_attribute` a 2" middle_code "` attribute_code` (s), le `attribute_id` (s) étant 6 et 21 . La table `customer_eav_attribute` définit la visibilité de l'attribut avec un champ` is_visible`.

  • Dans mon environnement live 1.8.x, `attribute_id` (s) 6 et 21 avaient `is_visible` = 0.
  • Après avoir mis à jour le dev vers Magento CE 1.9.2.1 à partir de Magento CE 1.9.2.0 , il est devenu `is_visible` = 1.
  • Après avoir basculé et enregistré l'administrateur "Afficher le deuxième prénom (initial)" sur "Non", `is_visible`=0encore une fois et le champ Deuxième prénom / Initial a disparu de la caisse.

Sommaire

La mise à jour de Magento CE 1.9.2.1 a inversé le paramètre du deuxième prénom dans le tableau `customer_eav_attribute` sans affecter ce qui est affiché dans l'administration Magento sous le paramètre" Afficher le deuxième prénom (initial) ". Vous pouvez le corriger de la manière dont le paramètre est normalement ajusté dans l’admin, sans effectuer d’ajustements étendus du modèle, en basculant le paramètre «Afficher le deuxième prénom (initial)».

Note latérale

Si, pour une raison quelconque, vous devez transférer ce paramètre d'administration sur plusieurs copies d'un magasin ou dans un lot de mises à jour administratives, comme lors de la mise à niveau d'un magasin pour correspondre à un environnement de développement ... Vous pouvez utiliser l'instruction SQL suivante pour ce paramètre ( à condition que vous sachiez que "middle name" est `attribute_id` 6 et 21 dans votre magasin. Ceci est standard pour Magento, mais pour être sûr, vérifiez d'abord votre table` eav_attribute`.).

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

user31617
la source
fix sur magento 1.9.2.1 fonctionne très bien pour moi
Fra
5

La réponse technique

L'option de configuration du système a un modèle backend ( Mage_Adminhtml_Model_System_Config_Backend_Customer_Show_Customer) dont la _afterSaveméthode fait le même changement dans l'attribut EAV client (table:) customer_eav_attribute.

La valeur de l'option de configuration système et la is_visiblevaleur d' attribut EAV peuvent ne pas être nécessairement synchronisées (soit en raison d'une mise à niveau de Magento, soit si l'option de configuration a été modifiée par programme, ou pour toute autre raison).

Faire basculer le commutateur plusieurs fois le corrigera, ou, si vous êtes comme moi et utilisez des scripts d'installation / mise à niveau pour tout, vous pouvez faire ce qui suit:

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;
}
Erfan
la source
1
Merci de bien travailler. Vous devez également ajouter le code de l'attribut d'adresse client:$attribute = Mage::getSingleton('eav/config') ->getAttribute('customer_address', 'middlename') ->setIsVisible(0) ->save();
Andreas von Studnitz
2

La façon la plus simple:

Magento ver. 1.9.2.1

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

Show Middle Name (initial) = No

entrez la description de l'image ici

Ricardo Meza
la source
C'était déjà réglé.
SR_Magento
Sélectionnez simplement Oui -> enregistrer. sélectionnez à nouveau Non-> enregistrer. rafraîchir le cache et voir.
Pratik Kamani
0

Supprimer {{depend middlename}}{{var middlename}}comme le suggère @sr_magento dans sa réponse ne supprime pas le Show Middle Name (initial)champ de la page de paiement elle-même. Il ne le supprime que des zones où les informations d'adresse du client sont rendues / imprimées, comme dans la zone d'administration, les PDF et les modèles d'e-mail.

Il n'est pas nécessaire de supprimer le champ des modèles de courrier électronique. C'est exagéré et vous devrez ajouter ces entrées aux modèles de courrier électronique au cas où vous décideriez d'activer le Show Middle Name(initial)à l'avenir.

J'ai également remarqué ce problème, après la mise à jour de Magento CE 1.9.2.0 vers Magento CE 1.9.2.1 à l' aide du téléchargeur Magento. La mise à jour semble ajuster le paramètre pour Show Middle Name (initial)under

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

de "Non" à "Oui" . Cela m'est arrivé dans plusieurs magasins sur différents serveurs.

Pour annuler cela, réglez-le simplement sur "Non" et enregistrez la configuration. Le Show Middle Name (initial)champ ne sera plus affiché sur la page de paiement.

Format
la source
@sr_magento Votre méthode peut fonctionner (bien que je ne sache pas pourquoi, je pense que le simple fait d'enregistrer la configuration fait l'affaire) mais votre raisonnement est incorrect. La modification de ce Address Templatesque vous proposez ne modifie pas les champs de saisie de la page de paiement dans le frontend du magasin. Il affecte uniquement les modèles d'impression des adresses. Veuillez lire la documentation suivante . Vous avez raison sur les zones client dans le panneau d'administration. Je vais reformuler cette partie de ma réponse.
ForMat
0

Si vous souhaitez supprimer directement du fichier,

Ouvrir le fichier suivant

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

recherchez le if ($this->showMiddlename()) commentaire ou supprimez-le

Alam Zaib
la source