Come posso fare caselle di immissione degli indirizzi da non richiesto sulla pagina di revisione espresso PayPal?
Domanda
Così come suggerisce il mio titolo ..
ho familiarità con il modo di fare questo nella fatturazione da una pagina di checkout (
- make attributi non richiesto nella tabella
eav attributes
nel database, - copiare il file
Customer/Model/Address.php
modificando la convalida rilevante nel metodo 'validate').
Tuttavia, questo non ha aiutato nella pagina di revisione espresso PayPal e non permetterà all'utente di cassa affermando:
"non corretto indirizzo di fatturazione. Campo City è necessaria"
Ci deve essere un file simile (a Abstract.php
) che convalida i dati prima della presentazione, ma non riesco proprio a rintracciarlo. Chiunque può o sa già ascolto si prega la chiamata - la comunità potrebbe trarre beneficio da questo così come io stesso. Ogni ulteriore informazioni neede me lo faccia sapere. Grazie
Soluzione
Non mi piace postare risposte alle mie domande, ma sembra che come colui che ne ha bisogno più pressante Ho passato la distanza qui .. come troppo spesso accade ..
Così, dopo aver provato numerose tecniche tra cui:
1) rendendo gli attributi come non richiesta nella tabella eav attributes
nel database;
2) programatically aggiungere questi campi richiesti alla banca dati su di fatturazione di aggiornamento (con l'evento)
Il meglio che ho venire con che le opere (molto bene) è quello di creare campi nascosti per tutti i campi che sono necessari, ma non rilevanti - nel mio caso city
, region
e postcode
- e inserirli all'interno del modulo. Il modo più semplice per farlo credo è quello di creare una funzione per questo in un file di modulo personalizzato in questo modo (cambiando $inputFields_arr
per corrispondere i campi obbligatori che si desidera ignorare):
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);
}
Quindi chiamare questo in questo modo:
<?php echo $moduleFile->getRequiredNotRequestedInputs('billing'); // set city, postcode, etc ?>
.. da qualunque punto che si desidera (dove $moduleFile
è il file è stato memorizzato la funzione sopra). Nel mio caso ho chiamato questo in:
app/design/frontend/default/YOUR-TEMPLATE/template/YOUR-CUSTOM-LAYOUT/checkout/billing.phtml
So che ci sono quelli là fuori che vorranno fare questo il modo rapido e brutto (e che è la vostra prerogativa) mettendo i campi nascosti direttamente in un file di front-end locale (e ignorando il nucleo), ma dopo imparare ad usare moduli personalizzati con tutto ciò che è possibile che non solo vi aiuterà ad aggiornamento (un sermone ben sentito-) manterrà le cose in ordine e per me che è più di metà della battaglia. Spero che questo è utile per gli altri.