<?php if (empty($addresses)) { echo '<p>' . __('No address on file. Please add one below.', 'wc_shipping_multiple_address') . '</p>'; } else { /* @var $woocommerce Woocommerce */ echo '<div class="address-container">'; foreach ($addresses as $idx => $address) { WC_MS_Compatibility::wc_get_template('address-block.php', array('idx' => $idx, 'address' => $address, 'woocommerce' => $woocommerce, 'checkout' => $checkout, 'shipFields' => $shipFields), 'multi-shipping', dirname(WC_Ship_Multiple::FILE) . '/templates/'); } echo '<div class="clear"></div>'; echo '</div>'; } ?> <hr /> <?php $address_id = '-1'; $address = array(); if (isset($_GET['edit'])) { $address_id = intval($_GET['edit']); $address = $addresses[$address_id]; ?> <h2><?php _e('Edit address', 'wc_shipping_multiple_address'); ?> </h2> <?php } else { ?>
function draw_form() { global $woocommerce; if (!isset($_GET['order_id']) || empty($_GET['order_id'])) { $this->load_cart_files(); $user = wp_get_current_user(); $cart = $woocommerce->cart; $checkout = new WC_Checkout(); $contents = wcms_get_real_cart_items(); $shipFields = $woocommerce->countries->get_address_fields($woocommerce->countries->get_base_country(), 'shipping_'); $tips = array(); $addresses = $this->get_user_addresses($user); $addresses = $this->array_sort($addresses, 'shipping_first_name', SORT_ASC); if (isset($_GET['new'])) { if (function_exists('wc_add_notice')) { wc_add_notice(__('New address saved', 'wc_shipping_multiple_address'), 'success'); } else { $woocommerce->add_message(__('New address saved', 'wc_shipping_multiple_address')); } } if (function_exists('wc_print_notices')) { wc_print_notices(); } else { $woocommerce->show_messages(); } if (isset($_REQUEST['duplicate-form'])) { WC_MS_Compatibility::wc_get_template('duplicate-form.php', array('woocommerce' => $woocommerce, 'checkout' => $checkout, 'addresses' => $addresses, 'shipFields' => $shipFields), 'multi-shipping', dirname(__FILE__) . '/templates/'); } elseif (empty($addresses) || isset($_REQUEST['address-form'])) { WC_MS_Compatibility::wc_get_template('address-form.php', array('woocommerce' => $woocommerce, 'checkout' => $checkout, 'addresses' => $addresses, 'shipFields' => $shipFields), 'multi-shipping', dirname(__FILE__) . '/templates/'); } else { if (!empty($contents)) { $relations = wcms_session_get('wcms_item_addresses'); if ($addresses) { foreach ($addresses as $x => $addr) { foreach ($contents as $key => $value) { if (isset($relations[$x]) && !empty($relations[$x])) { $qty = array_count_values($relations[$x]); if (in_array($key, $relations[$x])) { if (isset($placed[$key])) { $placed[$key] += $qty[$key]; } else { $placed[$key] = $qty[$key]; } } } } } } $addresses = $this->array_sort($addresses, 'shipping_first_name', SORT_ASC); $relations = wcms_session_get('wcms_item_addresses'); WC_MS_Compatibility::wc_get_template('shipping-address-table.php', array('addresses' => $addresses, 'relations' => $relations, 'checkout' => $checkout, 'woocommerce' => $woocommerce, 'contents' => $contents, 'shipFields' => $shipFields, 'user' => $user), 'multi-shipping', dirname(__FILE__) . '/templates/'); } } } else { // load order and display the addresses $order_id = (int) $_GET['order_id']; $order = WC_MS_Compatibility::wc_get_order($order_id); if ($order_id == 0 || !$order) { wp_die(__('Order could not be found', 'woocommerce')); } $packages = get_post_meta($order_id, '_wcms_packages', true); if (!$packages) { wp_die(__('This order does not ship to multiple addresses', 'wc_shipping_multiple_address')); } // load the address fields $this->load_cart_files(); $checkout = new WC_Checkout(); $cart = new WC_Cart(); //$shipFields = apply_filters( 'woocommerce_shipping_fields', array() ); $shipFields = $woocommerce->countries->get_address_fields($woocommerce->countries->get_base_country(), 'shipping_'); echo '<table class="shop_tabe"><thead><tr><th class="product-name">' . __('Product', 'woocommerce') . '</th><th class="product-quantity">' . __('Qty', 'woocommerce') . '</th><th class="product-address">' . __('Address', 'woocommerce') . '</th></thead>'; echo '<tbody>'; $tr_class = ''; foreach ($packages as $x => $package) { $products = $package['contents']; $item_meta = ''; foreach ($products as $i => $product) { $tr_class = $tr_class == '' ? 'alt-table-row' : ''; if (isset($product['data']->item_meta) && !empty($product['data']->item_meta)) { $item_meta .= '<pre>'; foreach ($product['data']->item_meta as $meta) { $item_meta .= $meta['meta_name'] . ': ' . $meta['meta_value'] . "\n"; } $item_meta .= '</pre>'; } echo '<tr class="' . $tr_class . '">'; echo '<td class="product-name"><a href="' . get_permalink($product['data']->id) . '">' . get_the_title($product['data']->id) . '</a><br />' . $item_meta . '</td>'; echo '<td class="product-quantity">' . $product['quantity'] . '</td>'; echo '<td class="product-address"><address>' . wcms_get_formatted_address($package['full_address']) . '</td>'; echo '</tr>'; } } echo '</table>'; } }
<div class="addresses"> <header class="title"> <h3><?php _e('Other Shipping Addresses', 'wc_shipping_multiple_address'); ?> </h3> <a href="<?php echo add_query_arg('action', 'add', $form_url); ?> " class="edit"><?php _e('Add Address', 'woocommerce'); ?> </a> </header> <?php if (empty($addresses)) { echo '<i>' . __('No shipping addresses set up yet.', 'wc_shipping_multiple_address') . '</i> '; echo '<a href="' . add_query_arg('action', 'add', $form_url) . '">' . __('Set up shipping addresses', 'wc_shipping_multiple_address') . '</a>'; } else { foreach ($addresses as $idx => $address) { WC_MS_Compatibility::wc_get_template('address-block.php', array('address' => $address, 'idx' => $idx), 'multi-shipping', dirname(WC_Ship_Multiple::FILE) . '/templates/'); } echo '<div class="clear: both;"></div>'; } ?> </div>