Wie kann ich Adresseingangsboxen wie nicht auf der PayPal Express -Überprüfungsseite erstellen?

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

  •  16-10-2019
  •  | 
  •  

Frage

Also, wie mein Titel vermuten lässt ..

Ich bin vertraut damit, wie man dies bei der Abrechnung auf einer Seite Checkout macht (

  1. Machen Sie Attribute wie nicht erforderlich in eav attributes Tabelle in der Datenbank,
  2. Kopiere das Customer/Model/Address.php Dateibearbeitung der relevanten Validierung in der Methode 'Validate').

Dies hat jedoch nicht auf der PayPal Express -Überprüfungsseite geholfen und ermöglicht es dem Benutzer nicht, angeben:

"Falsche Abrechnungsadresse. Stadtfeld ist erforderlich"

Es muss eine ähnliche Datei geben (zu Abstract.php) Das validiert die Daten vor der Einreichung, aber ich kann sie einfach nicht aufspüren. Jeder, der den Anruf beachtet kann oder bereits weiß -, kann die Community ebenso wie ich auch davon profitieren. Weitere Informationen müssen mich wissen lassen. Vielen Dank

War es hilfreich?

Lösung

Ich hasse es, Antworten auf meine eigenen Fragen zu veröffentlichen, aber es scheint, dass ich als derjenige, der es am dringendsten braucht, die Distanz hier gegangen bin. Wie zu oft der Fall ist.

Nachdem sie zahlreiche Techniken ausprobiert haben, darunter:

1) Attribute machen, wie es in der nicht erforderlich ist eav attributes Tabelle in der Datenbank;

2) Programatisches Hinzufügen dieser erforderlichen Felder in die Datenbank nach Abrechnungsaktualisierung (mit Ereignis)

Das Beste, was ich (sehr gut) diese Arbeiten entwickelt habe, ist, versteckte Felder für alle Felder zu erstellen, die erforderlich, aber nicht relevant sind - in meinem Fall city, region und postcode - und fügen Sie sie in die Form ein. Der einfachste Weg, dies zu tun, besteht darin, eine Funktion hierfür in einer benutzerdefinierten Moduldatei so zu erstellen (Änderung $inputFields_arr um den erforderlichen Feldern zu entsprechen, die Sie ignorieren möchten):

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);
}

Dann nennen Sie das so:

<?php echo $moduleFile->getRequiredNotRequestedInputs('billing'); // set city, postcode, etc ?>

.. von jedem Punkt, den Sie wollen (wo $moduleFile ist die Datei, in der Sie die obige Funktion gespeichert haben). In meinem Fall habe ich das in:

app/design/frontend/default/YOUR-TEMPLATE/template/YOUR-CUSTOM-LAYOUT/checkout/billing.phtml

Ich weiß, dass es da draußen gibt, die dies auf schnelle und böse Weise tun wollen (und das ist Ihr Perogativ), indem sie die versteckten Felder direkt in eine lokale Front-End-Datei einfügen (und den Kern überschreiben), aber nach dem Lernen der Verwendung gelernt haben benutzerdefinierte Module mit allem, was Sie können, hilft Ihnen nicht nur das Update (eine gut gehörte Predigt), sondern die Dinge ordentlich und für mich mehr als die Hälfte des Kampfes. Hoffe das ist für andere hilfreich.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top