Comment puis-je faire des boîtes d'entrée d'adresse ne pas requis sur la page d'examen express paypal?

magento.stackexchange https://magento.stackexchange.com/questions/12667

  •  16-10-2019
  •  | 
  •  

Question

Alors que mon titre l'indique ..

Je connais la façon de procéder à la facturation d'une caisse de page (

  1. attributs non requis dans la table de eav attributes la base de données,
  2. 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

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top