S'il vous plaît, quelqu'un pourrait-il publier un guide sur la suppression du champ téléphonique `` requis '' lors du paiement basé sur la mise en page magento version 1.8.0.0, la majorité des ressources googlées actuelles sont obsolètes et ne fonctionnent plus. Cela semblerait l'endroit idéal pour garder un guide / guide mis à jour.
Il serait utile que quelqu'un puisse confirmer la solution de travail en téléchargeant Magento 1.8.0.0 et en fournissant la preuve de sa suppression, ces extraits de code sont parfois utiles, mais nous n'avons pas encore trouvé de solution de travail d'une manière facile à lire / documentée.
Réponses:
Avant
1.8.1
que je ne sache aucun moyen de faire fonctionner cela, vous devez soit remplacer la classe principale abstraite dans le pool de code local, soit réécrire chaque classe enfant (moche, je sais).Dès
1.8.1
lors, ils ont présenté l'événementcustomer_address_validation_after
. Je me suis débarrassé de la validation en utilisant la réflexion, même si je n'en suis pas trop fier. Pourrait ne pas résoudre votre problème, mais je pensais que je le publierais de toute façon.J'ai également écrit un script de mise à jour pour définir le fichier comme non requis et édité tous les formulaires pour supprimer la validation frontale. Comme je l'ai dit, ce n'est peut-être pas la meilleure solution, mais c'est mieux que de réécrire 3-4 classes à mon humble avis.
MISE À JOUR L'équipe de base enveloppé l'événement
customer_address_validation_after
dans un départ conditionnelle1.9.0
par1.9.1.1
(je me demande vraiment pourquoi, fait aucun sens pour moi ...) donc ma solution ne fonctionnera pas pour ces versions, malheureusement. Le conditionnel a heureusement été supprimé1.9.2
.la source
Vous devrez modifier la
Mage_Customer_Model_Address_Abstract
classe * à la ligne 375-377 en commentant la validation Zend du numéro de téléphone.ainsi que l'attribut telephone lui-même dans la base de données supprimant la classe requise. Cela peut être fait avec la requête suivante
Cela prendra en charge la validation frontend (Javascript) des champs téléphoniques.
** Assurez-vous de copier le fichier de classe dans votre
local
répertoire de code *la source
eav_attribute
avec le code 'téléphone', donc vous ne pouvez pas dire laquelle a été mise à jour. Ensuite, le code devrait fonctionner (je viens de le tester). Pour la partie visuelle, il vous reste alors à supprimer<em>*</em>
dans l'étiquette du champ dans tous les formulaires (checkout / modification d'adresse). Bien sûr, si vous avez installé une sorte de paiement en une étape, cela pourrait remplacer certaines des fonctionnalités par défaut de Magento et cette réponse peut ne pas fonctionner.Je suggérerais de changer le modèle d'adresse pour le thème du site et de faire du téléphone un champ caché avec comme valeur par défaut un espace ou un tiret. Cela ne nécessitera aucune réécriture / écrasement.
la source
Ne pourriez-vous pas simplement réécrire les classes qui utilisent l'abrégé en utilisant une extension personnalisée et des réécritures de configuration.
Mage_Sales_Model_Quote_Address
,Mage_Customer_Model_Address
,Mage_Sales_Model_Order_Address
,Ensuite, vous pouvez créer votre propre
validate
fonction qui exclura la vérification téléphonique, ou mieux encore vérifie tous les attributs requis et valide qu'ils sont définis.la source
Je viens de rencontrer une jolie petite extension "Webguys_Telefonkeinpflicht" de Tobi, qui suit fondamentalement l'approche de David. Il réécrit les sous-classes respectives. Ce que j'aime à peu près, c'est le fait qu'il ne distribue qu'un événement dans les classes réécrites et que toute personnalisation supplémentaire est ensuite effectuée dans un observateur d'événement. Il observe également l'
core_block_abstract_to_html_after
événement afin de retirer l'étoile et la classe requise du champ de saisie avec de la magie noire regex. Et bien sûr, il est livré avec un script de configuration, ce qui rend l'attribut telephone non requis dans leeav_attribute
tableau. Vous pouvez vérifier l'extension sur GitHub .la source