Ich versuche zu überprüfen, ob Rechnungs- und Lieferadresse beim Erstellen von Rechnungs-PDFs identisch sind.
Was ich bisher ausprobiert habe, war:
$order = $invoice->getOrder();
if( $order->getBillingAddress()->getData() != $order->getShippingAddress()->getData() )
oder
$order = $invoice->getOrder();
if( $order->getShippingAddress()->getData('same_as_billing')!='1' )
aber beides funktioniert nicht. Ich habe auch versucht, das Zitat mit zu bekommen, $order->getQuote()
aber das hat auch nicht funktioniert.
Gibt es eine Möglichkeit zu überprüfen, ob Rechnungs- und Lieferadresse gleich sind?
array_diff_assoc
dass array_diff nur die Werte vergleicht. Wenn Sie also beispielsweise Vor- und Nachnamen wechseln, werden die Adressen weiterhin als gleich behandeltObwohl es bereits eine akzeptierte Antwort gibt, möchte ich diese Lösung, die ich (ähnlich) einmal gesehen habe, in einem Modul eines Drittanbieters teilen:
Welches hieß dann:
quelle
Okay, hier ist mein Versuch, dem Vorschlag von ProxiBlue zu folgen:
Grundsätzlich entferne ich einige Schlüssel mithilfe eines
$excludeKeys
Arrays undarray_diff
vergleiche nur die relevanten Daten. Um mehrere Tasten zu entfernen, ohne eine Schleife erstellen zu müssen, verwende icharray_diff_key
in Kombination mitarray_flip
, um die unnötigen Array-Tasten zu entfernen.Verbesserungen und Feedback sind willkommen. :)
quelle
array_diff_assoc
dass array_diff nur die Werte vergleicht. Wenn Sie also beispielsweise Vor- und Nachnamen wechseln, werden die Adressen weiterhin als gleich behandelt.Sie müssen das Angebot mit erhalten
Anschließend können Sie die Lieferadresse aus dem Angebot entnehmen und prüfen, ob sie mit der Rechnungsadresse identisch ist:
quelle
musste Adressen vergleichen - eine von ihnen wurde gerade erstellt (nicht gespeichert). Vielleicht hilft es jemandem:
basierend auf @Alphawolf Antwort:
EDIT 20 01 2016
Ich benutze die folgende Methode, da ich die obige Version gepostet habe und sie für mich funktioniert - dachte, es könnte jemandem helfen:
quelle