Estoy tratando de verificar si la dirección de facturación y envío son iguales al crear archivos PDF de facturas.
Lo que he probado hasta ahora fue:
$order = $invoice->getOrder();
if( $order->getBillingAddress()->getData() != $order->getShippingAddress()->getData() )
o
$order = $invoice->getOrder();
if( $order->getShippingAddress()->getData('same_as_billing')!='1' )
Pero tampoco funciona. También estaba tratando de obtener la cotización usando $order->getQuote()
pero eso tampoco funcionó.
¿Hay alguna forma de verificar si la dirección de facturación y envío son iguales?
array_diff_assoc
porque array_diff solo compara los valores, por lo que si, por ejemplo, cambia el nombre y el apellido, las direcciones aún se tratarán como igualesAunque ya hay una respuesta aceptada, me gustaría compartir esta solución que vi (similar) una vez en un módulo de terceros:
Que luego se llamó:
fuente
Bien, así que aquí está mi intento de seguir la sugerencia de ProxiBlue:
Básicamente, estoy eliminando algunas claves mediante el uso de una
$excludeKeys
matriz, porarray_diff
lo que solo compararé los datos relevantes. Para eliminar varias teclas sin tener que crear un bucle, lo estoy usandoarray_diff_key
en combinación conarray_flip
para deshacerme de las teclas de matriz innecesarias.Mejoras y comentarios bienvenidos. :)
fuente
array_diff_assoc
porque array_diff solo compara los valores, por lo que si, por ejemplo, cambia el nombre y el apellido, las direcciones seguirán siendo iguales.Necesita obtener la cotización usando
Luego, puede obtener la dirección de envío de la cotización y verificar si está marcada como la misma que la dirección de facturación:
fuente
tuvo que comparar direcciones: una de ellas acaba de crearse (no se guardó). Quizás ayude a alguien:
basado en la respuesta de @Alphawolf:
EDITAR 20 01 2016
Estoy usando el siguiente método desde que publiqué la versión anterior y funciona para mí, pensé que podría ayudar a alguien:
fuente