my-address.php 11 KB
<?php
/**
 * My Addresses
 *
 * This template can be overridden by copying it to yourtheme/woocommerce/myaccount/my-address.php.
 *
 * HOWEVER, on occasion WooCommerce will need to update template files and you (the theme developer).
 * will need to copy the new files to your theme to maintain compatibility. We try to do this.
 * as little as possible, but it does happen. When this occurs the version of the template file will.
 * be bumped and the readme will list any important changes.
 *
 * @see 	    http://docs.woothemes.com/document/template-structure/
 * @author 		WooThemes
 * @package 	WooCommerce/Templates
 * @version     2.2.0
 */
if (!defined('ABSPATH')) {
    exit; // Exit if accessed directly
}

$customer_id = get_current_user_id();

if (!wc_ship_to_billing_address_only() && get_option('woocommerce_calc_shipping') !== 'no') {
    $page_title = apply_filters('woocommerce_my_account_my_address_title', __('My Addresses', 'woocommerce'));
    $get_addresses = apply_filters('woocommerce_my_account_get_addresses', array(
        'billing' => __('Billing address', 'woocommerce'),
        'shipping' => __('Shipping Address', 'woocommerce')
            ), $customer_id);
} else {
    $page_title = apply_filters('woocommerce_my_account_my_address_title', __('My Address', 'woocommerce'));
    $get_addresses = apply_filters('woocommerce_my_account_get_addresses', array(
        'billing' => __('Billing Information', 'woocommerce')
            ), $customer_id);
}

$col = 1;
include_once dirname(dirname(__FILE__)) . DIRECTORY_SEPARATOR . 'woocommerce-extra-function.php';
?>

<h2 class="hide"><?php echo $page_title; ?></h2>

<p class="myaccount_address hide">
    <?php echo apply_filters('woocommerce_my_account_my_address_description', __('The following addresses will be used on the checkout page by default.', 'woocommerce')); ?>
</p>

<?php if (!wc_ship_to_billing_address_only() && get_option('woocommerce_calc_shipping') !== 'no') echo '<div class="col2-set addresses">'; ?>

<?php foreach ($get_addresses as $name => $title) : ?>

    <div class="bgef innerbox col_<?php
    echo ( ( $col = $col * -1 ) < 0 ) ? 1 : 2;
    echo ' col_' . $name;
    ?>">
        <header class="title">
            <?php if ($name == 'billing') { ?>
                <h2 class="roboto_condensedbold font26 desktop"><?php echo $title; ?></h2>
                <h2 class="roboto_condensedbold font26 mobile">Billing Addresses</h2>
            <?php } else {
                ?>
                <h2 class="roboto_condensedbold font26"><?php echo $title; ?></h2>
            <?php }
            ?>
            <a href="<?php echo wc_get_endpoint_url('edit-address', $name); ?>" class="edit robotoregular font16"><?php _e('Edit', 'woocommerce'); ?></a>
        </header>
        <div class="innercontent">
            <?php
            $address = apply_filters('woocommerce_my_account_my_address_formatted_address', array(
                'first_name' => get_user_meta($customer_id, $name . '_first_name', true),
                'last_name' => get_user_meta($customer_id, $name . '_last_name', true),
                'company' => get_user_meta($customer_id, $name . '_company', true),
                'phone' => get_user_meta($customer_id, $name . '_phone', true),
                'address_1' => get_user_meta($customer_id, $name . '_address_1', true),
                'address_2' => get_user_meta($customer_id, $name . '_address_2', true),
                'city' => get_user_meta($customer_id, $name . '_city', true),
                'state' => get_user_meta($customer_id, $name . '_state', true),
                'postcode' => get_user_meta($customer_id, $name . '_postcode', true),
                'country' => get_user_meta($customer_id, $name . '_country', true)
                    ), $customer_id, $name);

            $formatted_address = WC()->countries->get_formatted_address($address);

            if (!$formatted_address) {
                ?>
                <?php if ($name == 'shipping') { ?>
                    <div class="same_as_billing">
                        <input id="tvshiptobilling" type="checkbox" <?php echo $stringChecked; ?> name="shiptobilling"/>
                        <label for="tvshiptobilling" class="font16 robotoregular"><?php esc_html_e('Same as billing address') ?></label>
                    </div>
                <?php } ?>
                <div class="<?php echo $name ?>_mess">
                    <?php
                    _e('You have not set up this type of address yet.', 'woocommerce');
                    ?>
                </div>

                <table class="<?php echo $name ?>_address nomr">
                    <colgroup>
                        <col width="47%">
                        <col width="53%">
                    </colgroup>
                    <tbody></tbody>
                </table>
                <div class="<?php echo $name ?>_address_edit">
                    <?php
                    include_once dirname(__FILE__) . DIRECTORY_SEPARATOR . $name . '_address.php';
                    ?>
                </div>
                <?php
            } else {
                $country = $address['country'];
                $state = $address['state'];
                if ($country) {
                    $statesArray = WC()->countries->get_states($address['country']);
                    $full_state = ($state && isset($statesArray[$state]) ) ? $statesArray[$state] : $state;
                    $address['state'] = $full_state;
                }
                if ($name == 'billing') {
                    ?>
                    <table class="billing_address">
                        <colgroup>
                            <col width="47%">
                            <col width="53%">
                        </colgroup>
                        <tr>
                            <th>
                                <?php
                                esc_html_e('Name', 'woocommerce');
                                ?>
                            </th>
                            <td>
                                <?php echo $address['first_name']; ?>
                            </td>
                        </tr>
                        <tr>
                            <th><?php esc_html_e('Surname', 'woocommerce') ?></th>
                            <td><?php echo $address['last_name']; ?></td>
                        </tr>
                        <tr>
                            <th><?php esc_html_e('Telephone', 'woocommerce') ?></th>
                            <td><?php echo $address['phone']; ?></td>
                        </tr>
                        <tr>
                            <th><?php esc_html_e('Address', 'woocommerce') ?></th>
                            <td><?php echo $address['address_1'] ?></td>
                        </tr>
                        <tr>
                            <th><?php esc_html_e('City', 'woocommerce') ?></th>
                            <td><?php echo $address['city'] ?></td>
                        </tr>
                        <tr>
                            <th><?php esc_html_e('State', 'woocommerce') ?></th>
                            <td><?php echo $address['state'] ?></td>
                        </tr>
                        <tr>
                            <th><?php esc_html_e('Postcode', 'woocommerce') ?></th>
                            <td><?php echo $address['postcode'] ?></td>
                        </tr>
                    </table>
                    <div class="billing_address_edit">
                        <?php
                        include_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'billing_address.php';
                        ?>
                    </div>
                    <?php
                } elseif ($name == 'shipping') {
                    ?>
                    <div>
                        <?php
                        if (checkShippingSameBilling($customer_id)) {
                            $stringChecked = 'checked="checked"';
                            $classHidden = 'hide';
                        } else {
                            $stringChecked = '';
                            $classHidden = '';
                        }
                        ?>
                        <div class="same_as_billing">
                            <input id="tvshiptobilling" type="checkbox" <?php echo $stringChecked; ?> name="shiptobilling"/>
                            <label for="tvshiptobilling" class="font16 robotoregular"><?php esc_html_e('Same as billing address') ?></label>
                        </div>
                        <div class="clearfix form-group"></div>
                        <table class="tvshiptobilling nomargin <?php echo $classHidden; ?>">
                            <colgroup>
                                <col width="47%">
                                <col width="53%">
                            </colgroup>
                            <tr>
                                <th>
                                    <?php
                                    esc_html_e('Name', 'woocommerce');
                                    ?>
                                </th>
                                <td>
                                    <?php echo $address['first_name']; ?>
                                </td>
                            </tr>
                            <tr>
                                <th><?php esc_html_e('Surname', 'woocommerce') ?></th>
                                <td><?php echo $address['last_name']; ?></td>
                            </tr>
                            <tr>
                                <th><?php esc_html_e('Address', 'woocommerce') ?></th>
                                <td><?php echo $address['address_1'] ?></td>
                            </tr>
                            <tr>
                                <th><?php esc_html_e('City', 'woocommerce') ?></th>
                                <td><?php echo $address['city'] ?></td>
                            </tr>
                            <tr>
                                <th><?php esc_html_e('State', 'woocommerce') ?></th>
                                <td><?php echo $address['state'] ?></td>
                            </tr>
                            <tr>
                                <th><?php esc_html_e('Postcode', 'woocommerce') ?></th>
                                <td><?php echo $address['postcode'] ?></td>
                            </tr>
                        </table>
                        <div class="shipping_address_edit">
                            <?php
                            include_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'shipping_address.php';
                            ?>
                        </div>
                    </div>


                    <?php
                }
                //echo $formatted_address;
                ?>
                <?php
            }
            ?>
        </div>
    </div>
    <div class="clearfix form-group"></div>
    <?php
endforeach;
?>

<?php if (!wc_ship_to_billing_address_only() && get_option('woocommerce_calc_shipping') !== 'no') echo '</div>'; ?>