shortcode_wrapper( array( __CLASS__, 'output' ), $atts ); } /** * Output the shortcode. * * @access public * @param array $atts * @return void */ public static function output( $atts ) { global $woocommerce, $wp; if ( ! is_user_logged_in() ) { woocommerce_get_template( 'myaccount/form-login.php' ); } else { if ( ! empty( $wp->query_vars['view-order'] ) ) { self::view_order( absint( $wp->query_vars['view-order'] ) ); } elseif ( isset( $wp->query_vars['edit-account'] ) ) { self::edit_account(); } else { self::my_account( $atts ); } } } /** * My account page * * @param array $atts */ private function my_account( $atts ) { extract( shortcode_atts( array( 'order_count' => 15 ), $atts ) ); woocommerce_get_template( 'myaccount/my-account.php', array( 'current_user' => get_user_by( 'id', get_current_user_id() ), 'order_count' => 'all' == $order_count ? -1 : $order_count ) ); } /** * View order page * * @param int $order_id */ private function view_order( $order_id ) { global $woocommerce; $user_id = get_current_user_id(); $order = new WC_Order( $order_id ); 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' ) ) . '.

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

  1. comment_date)); ?>

    comment_content ) ); ?>
get_user_by( 'id', get_current_user_id() ) ) ); } }