From 3edf155b5020f48ab15ee3ad0100adc2fffad4e6 Mon Sep 17 00:00:00 2001 From: Mike Jolley Date: Sun, 12 Aug 2012 13:44:00 +0100 Subject: [PATCH] Classes for order info in my-account. Closes #1363. --- readme.txt | 1 + shortcodes/shortcode-my_account.php | 98 ++++++++++++++--------------- 2 files changed, 50 insertions(+), 49 deletions(-) diff --git a/readme.txt b/readme.txt index 027cbb7ff50..5ee7c36a8a0 100644 --- a/readme.txt +++ b/readme.txt @@ -151,6 +151,7 @@ Yes you can! Join in on our [GitHub repository](http://github.com/woothemes/wooc == Changelog == = 1.6.4 = +* Tweak - Classes for order info in my-account * Fix - Missing grouped product cart buttons * Fix - Notice in invoice template with number_format * Fix - Made variation get_image() return instead of echo diff --git a/shortcodes/shortcode-my_account.php b/shortcodes/shortcode-my_account.php index d275b9dc578..26359472266 100644 --- a/shortcodes/shortcode-my_account.php +++ b/shortcodes/shortcode-my_account.php @@ -1,32 +1,32 @@ shortcode_wrapper('woocommerce_my_account', $atts); + return $woocommerce->shortcode_wrapper('woocommerce_my_account', $atts); } function get_woocommerce_edit_address() { global $woocommerce; - return $woocommerce->shortcode_wrapper('woocommerce_edit_address'); + return $woocommerce->shortcode_wrapper('woocommerce_edit_address'); } function get_woocommerce_change_password() { global $woocommerce; - return $woocommerce->shortcode_wrapper('woocommerce_change_password'); + return $woocommerce->shortcode_wrapper('woocommerce_change_password'); } function get_woocommerce_view_order() { global $woocommerce; - return $woocommerce->shortcode_wrapper('woocommerce_view_order'); + return $woocommerce->shortcode_wrapper('woocommerce_view_order'); } /** @@ -37,36 +37,36 @@ function get_woocommerce_view_order() { */ function woocommerce_my_account( $atts ) { global $woocommerce, $current_user; - + $woocommerce->nocache(); if ( ! is_user_logged_in() ) : - + woocommerce_get_template( 'myaccount/form-login.php' ); - + else : extract(shortcode_atts(array( 'recent_orders' => 5 ), $atts)); - + $recent_orders = ('all' == $recent_orders) ? -1 : $recent_orders; - + get_currentuserinfo(); - + woocommerce_get_template( 'myaccount/my-account.php', array( 'current_user' => $current_user, 'recent_orders' => $recent_orders ) ); endif; - + } /** * Edit Address Shortcode. * - * @todo Address fields should be loaded using the array defined in + * @todo Address fields should be loaded using the array defined in * the checkout class, and the fields should be built off of that. * * Adapted from spencerfinnell's pull request @@ -76,15 +76,15 @@ function woocommerce_my_account( $atts ) { */ function woocommerce_edit_address() { global $woocommerce; - + $woocommerce->nocache(); - + if ( ! is_user_logged_in() ) return; $load_address = woocommerce_get_address_to_edit(); - + $address = $woocommerce->countries->get_address_fields( get_user_meta( get_current_user_id(), $load_address . '_country', true ), $load_address . '_' ); - + woocommerce_get_template( 'myaccount/form-edit-address.php', array( 'load_address' => $load_address, 'address' => $address @@ -108,21 +108,21 @@ function woocommerce_save_address() { return; $woocommerce->verify_nonce( 'edit_address' ); - + $validation = $woocommerce->validation(); - + $user_id = get_current_user_id(); if ( $user_id <= 0 ) return; $load_address = woocommerce_get_address_to_edit(); - + $address = $woocommerce->countries->get_address_fields( esc_attr($_POST[ $load_address . '_country' ]), $load_address . '_' ); foreach ($address as $key => $field) : - + if (!isset($field['type'])) $field['type'] = 'text'; - + // Get Value switch ($field['type']) : case "checkbox" : @@ -132,26 +132,26 @@ function woocommerce_save_address() { $_POST[$key] = isset($_POST[$key]) ? woocommerce_clean($_POST[$key]) : ''; break; endswitch; - + // Hook to allow modification of value $_POST[$key] = apply_filters('woocommerce_process_myaccount_field_' . $key, $_POST[$key]); - + // Validation: Required fields if ( isset($field['required']) && $field['required'] && empty($_POST[$key]) ) $woocommerce->add_error( $field['label'] . ' ' . __('is a required field.', 'woocommerce') ); - + // Postcode if ($key=='billing_postcode' || $key=='shipping_postcode') : if ( ! $validation->is_postcode( $_POST[$key], $_POST[ $load_address . '_country' ] ) ) : - $woocommerce->add_error( __( 'Please enter a valid postcode/ZIP.', 'woocommerce' ) ); + $woocommerce->add_error( __( 'Please enter a valid postcode/ZIP.', 'woocommerce' ) ); else : $_POST[$key] = $validation->format_postcode( $_POST[$key], $_POST[ $load_address . '_country' ] ); endif; endif; - + endforeach; if ( $woocommerce->error_count() == 0 ) { - + foreach ($address as $key => $field) : update_user_meta( $user_id, $key, $_POST[$key] ); endforeach; @@ -173,7 +173,7 @@ add_action( 'template_redirect', 'woocommerce_save_address' ); function woocommerce_get_address_to_edit() { $load_address = ( isset( $_GET[ 'address' ] ) ) ? esc_attr( $_GET[ 'address' ] ) : ''; - + $load_address = ( $load_address == 'billing' || $load_address == 'shipping' ) ? $load_address : ''; return $load_address; @@ -187,7 +187,7 @@ function woocommerce_get_address_to_edit() { */ function woocommerce_change_password() { global $woocommerce; - + if ( ! is_user_logged_in() ) return; woocommerce_get_template( 'myaccount/form-change-password.php' ); @@ -214,17 +214,17 @@ function woocommerce_save_password() { if ( $user_id <= 0 ) return; - + $_POST = array_map( 'woocommerce_clean', $_POST ); if ( empty( $_POST[ 'password_1' ] ) || empty( $_POST[ 'password_2' ] ) ) $woocommerce->add_error( __( 'Please enter your password.', 'woocommerce' ) ); - + if ( $_POST[ 'password_1' ] !== $_POST[ 'password_2' ] ) $woocommerce->add_error( __('Passwords do not match.', 'woocommerce') ); - + if ( $woocommerce->error_count() == 0 ) { - + wp_update_user( array ('ID' => $user_id, 'user_pass' => esc_attr( $_POST['password_1'] ) ) ) ; do_action( 'woocommerce_customer_change_password', $user_id ); @@ -243,40 +243,40 @@ add_action( 'template_redirect', 'woocommerce_save_password' ); */ function woocommerce_view_order() { global $woocommerce; - + $woocommerce->nocache(); if ( ! is_user_logged_in() ) return; - + $user_id = get_current_user_id(); $order_id = ( isset( $_GET['order'] ) ) ? $_GET['order'] : 0; $order = new WC_Order( $order_id ); - + if ( $order_id == 0 ) { woocommerce_get_template('myaccount/my-orders.php', array( 'recent_orders' => 10 )); return; } - + if ( $order->user_id != $user_id ) { echo '
' . __('Invalid order.', 'woocommerce') . ' '. __('My Account →', 'woocommerce') .'' . '
'; return; } - + $status = get_term_by('slug', $order->status, 'shop_order_status'); - - echo '

' - . sprintf( __('Order %s made on %s', 'woocommerce'), $order->get_order_number(), date_i18n(get_option('date_format'), strtotime($order->order_date)) ) - . sprintf( __('. Order status: %s', 'woocommerce'), __($status->name, 'woocommerce') ) + + echo '

' + . sprintf( __( 'Order %s made on %s', 'woocommerce'), $order->get_order_number(), date_i18n( get_option( 'date_format' ), strtotime( $order->order_date ) ) ) + . '. ' . sprintf( __( 'Order status: %s', 'woocommerce' ), __( $status->name, 'woocommerce' ) ) . '.

'; - + $notes = $order->get_customer_order_notes(); if ($notes) : ?>

-
    +
    1. -
      +

      comment_date)); ?>

      @@ -284,13 +284,13 @@ function woocommerce_view_order() {
      -
      +