<?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>