Comment puis-je faire des boîtes d'entrée d'adresse ne pas requis sur la page d'examen express paypal?
Question
Alors que mon titre l'indique ..
Je connais la façon de procéder à la facturation d'une caisse de page (
- attributs non requis dans la table de
eav attributes
la base de données, - copier le fichier
Customer/Model/Address.php
édition de la validation pertinente dans la méthode « valider »).
Cependant, cela n'a pas contribué à la page d'examen express paypal et il ne permettra pas à l'utilisateur de votre commande indiquant:
"incorrect adresse de facturation. Champ CITY est nécessaire"
Il doit être un fichier similaire (à Abstract.php
) qui valide les données avant la soumission, mais je ne peux pas le suivre vers le bas. Toute personne qui peut ou sait déjà attention s'il vous plaît l'appel - la communauté pourrait bien profiter de cela aussi bien que moi-même. Toute autre neede info laissez-moi savoir. Merci
La solution
Je déteste l'affichage des réponses à mes questions, mais il semble que celui qui en a besoin plus que je suis allé pressante la distance ici .. comme cela est trop souvent le cas ..
Alors après avoir essayé de nombreuses techniques, y compris:
1) faisant attributs non requis dans la table de eav attributes
dans la base;
2) l'ajout de ces champs obligatoires programatically à la base de données mise à jour sur la facturation (événement)
Le meilleur que je suis venu avec des œuvres que (très bien) est de créer des champs cachés pour tous les champs qui sont nécessaires mais pas pertinentes - city
dans mon cas, region
et postcode
- et les inclure dans le formulaire. La meilleure façon de le faire, je crois est de créer une fonction pour cela dans un fichier de module personnalisé comme si (changement $inputFields_arr
pour correspondre aux champs obligatoires que vous souhaitez ignorer):
public function getRequiredNotRequestedInputs($prefix) { // fill in input values required but not wanted
$value = 'NOT REQUESTED';
$inputFields_arr = array('city', 'region', 'postcode'); // required fields that we don't need/request
foreach($inputFields_arr as $inputField) {
$return_arr[] = '<input type="hidden" name="'.$prefix.'['.$inputField.']" id="'.$prefix.':'.$inputField.'" value="'.$value.'" />';
}
return implode('',$return_arr);
}
Ensuite, appelez cela comme ceci:
<?php echo $moduleFile->getRequiredNotRequestedInputs('billing'); // set city, postcode, etc ?>
.. de quelque point que vous voulez (où $moduleFile
est le fichier que vous avez enregistré la fonction ci-dessus). Dans mon cas, je l'ai appelé cela dans:
app/design/frontend/default/YOUR-TEMPLATE/template/YOUR-CUSTOM-LAYOUT/checkout/billing.phtml
Je sais qu'il ya des gens là-bas qui veulent faire la façon rapide et méchant (et qui est votre prérogative) en plaçant les champs cachés directement dans un fichier frontal local (et en remplaçant le noyau) mais après apprendre à utiliser des modules personnalisés avec tout ce que vous pouvez le non seulement vous aider à mettre à jour (un sermon bien entendu), il gardera les choses en ordre et pour moi qui est plus de la moitié de la bataille. Espérons que cela est utile pour les autres.