Próbuję sprawdzić, czy adres rozliczeniowy i adres wysyłki są takie same podczas tworzenia plików PDF faktur.
Do tej pory próbowałem:
$order = $invoice->getOrder();
if( $order->getBillingAddress()->getData() != $order->getShippingAddress()->getData() )
lub
$order = $invoice->getOrder();
if( $order->getShippingAddress()->getData('same_as_billing')!='1' )
ale żadne nie działa. Próbowałem też uzyskać wycenę za pomocą, $order->getQuote()
ale to też nie działało.
Czy jest jakiś sposób, aby sprawdzić, czy adres rozliczeniowy i adres dostawy są takie same?
array_diff_assoc
ponieważ array_diff porównuje tylko wartości, więc jeśli na przykład zmienisz imię i nazwisko, adresy będą nadal traktowane jako równeChociaż odpowiedź jest już zaakceptowana, chciałbym udostępnić to rozwiązanie, które widziałem (podobnie) raz w module innej firmy:
Który został następnie nazwany:
źródło
Okej, więc oto moja próba zastosowania się do sugestii ProxiBlue:
Zasadniczo usuwam niektóre klucze za pomocą
$excludeKeys
tablicy, więcarray_diff
będę porównywał tylko odpowiednie dane. Aby usunąć kilka kluczy bez konieczności tworzenia pętli, używamarray_diff_key
w połączeniu z,array_flip
aby pozbyć się niepotrzebnych kluczy tablicy.Ulepszenia i opinie mile widziane. :)
źródło
array_diff_assoc
ponieważ array_diff porównuje tylko wartości, więc jeśli na przykład zmienisz imię i nazwisko, adresy będą nadal traktowane jako równe.Musisz uzyskać wycenę za pomocą
Następnie możesz uzyskać adres wysyłki z oferty i sprawdzić, czy jest on oznaczony jako taki sam jak adres rozliczeniowy:
źródło
musiał porównać adresy - jeden z nich właśnie został utworzony (nie został zapisany). Być może pomaga komuś:
na podstawie odpowiedzi @Alphawolf:
EDYCJA 20 01 2016
używam następującej metody, ponieważ opublikowałem powyższą wersję i to działa dla mnie - pomyślałem, że może komuś pomóc:
źródło