Я пытаюсь проверить, совпадают ли адрес выставления счета и доставки при создании PDF-файлов счетов.
То, что я пробовал до сих пор, было:
$order = $invoice->getOrder();
if( $order->getBillingAddress()->getData() != $order->getShippingAddress()->getData() )
или
$order = $invoice->getOrder();
if( $order->getShippingAddress()->getData('same_as_billing')!='1' )
но ни один не работает. Я также пытался получить цитату с помощью, $order->getQuote()
но это тоже не сработало.
Есть ли способ проверить, совпадают ли адрес выставления счета и адрес доставки?
array_diff_assoc
потому, что array_diff сравнивает только значения, поэтому, если вы, например, поменяете имя и фамилию, адреса будут по-прежнему рассматриваться как равныеНесмотря на то, что уже есть принятый ответ, я хотел бы поделиться этим решением, которое я видел (похоже) однажды в стороннем модуле:
Который тогда назывался:
источник
Итак, вот моя попытка следовать предложению ProxiBlue:
По сути, я удаляю некоторые ключи с помощью
$excludeKeys
массива, поэтомуarray_diff
буду сравнивать только соответствующие данные. Чтобы вырезать несколько ключей без необходимости создания цикла, я использую ихarray_diff_key
в сочетании с,array_flip
чтобы избавиться от ненужных ключей массива.Улучшения и отзывы приветствуются. :)
источник
array_diff_assoc
потому, что array_diff сравнивает только значения, поэтому, если вы, например, поменяете имя и фамилию, адреса будут по-прежнему рассматриваться как равные.Вы должны получить цитату, используя
Затем вы можете получить адрес доставки из предложения и проверить, не помечен ли он как адрес для выставления счета:
источник
пришлось сравнивать адреса - один из них был только что создан (не сохранен). Возможно, это кому-нибудь поможет
на основе ответа @Alphawolf:
РЕДАКТИРОВАТЬ 20 01 2016
Я использую следующий метод, так как я разместил версию выше, и она работает для меня - думал, что это может кому-то помочь:
источник