Come posso fare caselle di immissione degli indirizzi da non richiesto sulla pagina di revisione espresso PayPal?

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

  •  16-10-2019
  •  | 
  •  

Domanda

Così come suggerisce il mio titolo ..

ho familiarità con il modo di fare questo nella fatturazione da una pagina di checkout (

  1. make attributi non richiesto nella tabella eav attributes nel database,
  2. 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

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top