Estou tentando verificar se o endereço de cobrança e entrega é igual ao criar PDFs de fatura.
O que eu tentei até agora foi:
$order = $invoice->getOrder();
if( $order->getBillingAddress()->getData() != $order->getShippingAddress()->getData() )
ou
$order = $invoice->getOrder();
if( $order->getShippingAddress()->getData('same_as_billing')!='1' )
mas nem funciona. Eu também estava tentando obter a cotação usando$order->getQuote()
mas isso também não funcionou.
Existe alguma maneira de verificar se o endereço de cobrança e entrega é igual?
array_diff_assoc
porque array_diff só compara os valores, por isso, se você, por exemplo mudar primeiro e último nome, os endereços serão ainda tratados como iguaisEmbora já exista uma resposta aceita, gostaria de compartilhar esta solução que vi (semelhante) uma vez em um módulo de terceiros:
Que foi então chamado:
fonte
Ok, então aqui está minha tentativa de seguir a sugestão do ProxiBlue:
Basicamente, estou retirando algumas chaves usando uma
$excludeKeys
matriz, porarray_diff
isso compararei apenas os dados relevantes. Para retirar várias chaves sem ter que criar um loop, estou usandoarray_diff_key
em combinação comarray_flip
para me livrar das chaves desnecessárias da matriz.Melhorias e feedback são bem-vindos. :)
fonte
array_diff_assoc
porque array_diff compara apenas os valores; portanto, se você alternar, por exemplo, o nome e o sobrenome, os endereços ainda serão tratados como iguais.Você precisa obter a cotação usando
Em seguida, você pode obter o endereço de entrega da cotação e verificar se está marcado como sendo o mesmo que o endereço de cobrança:
fonte
teve que comparar endereços - um deles acabou de ser criado (não salvo). Talvez ajude alguém:
com base na resposta @Alphawolf:
EDIT 20 20 2016
Estou usando o método a seguir, pois eu publiquei a versão acima e ela funciona para mim - pensei que poderia ajudar alguém:
fonte