diff --git a/uc_addresses.module b/uc_addresses.module index c028d36..8a5ebee 100644 --- a/uc_addresses.module +++ b/uc_addresses.module @@ -459,6 +459,47 @@ function uc_addresses_entity_property_info_alter(&$info) { $properties[$key]['setter callback'] = 'uc_addresses_field_set'; } } + + // Explain the attached addresses from uc_addresses on the Ubercart order. + $info['uc_order']['properties']['uc_addresses_delivery_address'] = array( + 'type' => 'uc_addresses', + 'label' => t('!address_type (Ubercart Addresses)', array('!address_type' => t('Delivery address'))), + 'getter callback' => 'uc_addresses_uc_order_address_property_get', + ); + $info['uc_order']['properties']['uc_addresses_billing_address'] = array( + 'type' => 'uc_addresses', + 'label' => t('!address_type (Ubercart Addresses)', array('!address_type' => t('Billing address'))), + 'getter callback' => 'uc_addresses_uc_order_address_property_get', + ); +} + +/** + * Entity API getter callback for an address attached to the order. + * + * @param object $order + * The Ubercart order. + * @param array $options + * An array of options, passed by Entity API, but ignored + * in this implementation. + * @param string $name + * The address to get. + * + * @return UcAddressesAddress + * An instance of UcAddressesAddress, if found. + */ +function uc_addresses_uc_order_address_property_get($order, array $options, $name) { + switch ($name) { + case 'uc_addresses_delivery_address': + return $order->uc_addresses['shipping']; + break; + + case 'uc_addresses_billing_address': + return $order->uc_addresses['billing']; + break; + + default: + return NULL; + } } /**