Shows the 'my account' section where the customer can view past orders and update their information.
Автор: WooThemes
Пример #1
0
    /**
     * Override WC_Shortcode_My_Account method output()
     * 
     * @access public
     * @param array $atts
     * @return void
     */
    public static function output($atts) {

        global $woocommerce, $wp;

        if (is_null(WC()->cart)) {
            return;
        }

        // User logged in?
        if (is_user_logged_in()) {

            // View Subscription
            if (!empty($wp->query_vars['view-subscription'])) {
                self::view_subscription(absint($wp->query_vars['view-subscription']));
            }
            else if (!empty($wp->query_vars['subscription-address'])) {
                self::subscription_address(absint($wp->query_vars['subscription-address']));
            }
            else if (!empty($wp->query_vars['pause-subscription'])) {
                self::pause_subscription(absint($wp->query_vars['pause-subscription']));
            }
            else if (!empty($wp->query_vars['resume-subscription'])) {
                self::resume_subscription(absint($wp->query_vars['resume-subscription']));
            }
            else if (!empty($wp->query_vars['cancel-subscription'])) {
                self::cancel_subscription(absint($wp->query_vars['cancel-subscription']));
            }
            else {
                parent::output($atts);
            }
        }
        else {
            parent::output($atts);
        }
    }
 /**
  * Handle reset password form.
  */
 public static function process_reset_password()
 {
     $posted_fields = array('wc_reset_password', 'password_1', 'password_2', 'reset_key', 'reset_login', '_wpnonce');
     foreach ($posted_fields as $field) {
         if (!isset($_POST[$field])) {
             return;
         }
         $posted_fields[$field] = $_POST[$field];
     }
     if (!wp_verify_nonce($posted_fields['_wpnonce'], 'reset_password')) {
         return;
     }
     $user = WC_Shortcode_My_Account::check_password_reset_key($posted_fields['reset_key'], $posted_fields['reset_login']);
     if ($user instanceof WP_User) {
         if (empty($posted_fields['password_1'])) {
             wc_add_notice(__('Please enter your password.', 'woocommerce'), 'error');
         }
         if ($posted_fields['password_1'] !== $posted_fields['password_2']) {
             wc_add_notice(__('Passwords do not match.', 'woocommerce'), 'error');
         }
         $errors = new WP_Error();
         do_action('validate_password_reset', $errors, $user);
         wc_add_wp_error_notices($errors);
         if (0 === wc_notice_count('error')) {
             WC_Shortcode_My_Account::reset_password($user, $posted_fields['password_1']);
             do_action('woocommerce_customer_reset_password', $user);
             wp_redirect(add_query_arg('password-reset', 'true', wc_get_page_permalink('myaccount')));
             exit;
         }
     }
 }
Пример #3
0
 /**
  * Add custom template form my-account page
  *
  * @return   void
  * @since    2.0.0
  * @author   Francesco Licandro <*****@*****.**>
  */
 function yit_my_account_template()
 {
     if (function_exists('WC') && is_page(get_option('woocommerce_myaccount_page_id'))) {
         global $wp;
         if (is_user_logged_in()) {
             if (!is_rtl()) {
                 echo '<div class="col-sm-3" id="my-account-sidebar">';
                 wc_get_template('/myaccount/my-account-menu.php');
                 echo '</div>';
             }
             echo '<div class="col-sm-9" id="my-account-content">';
             wc_print_notices();
             if (!isset($wp->query_vars['recent-downloads']) && !isset($wp->query_vars['wishlist']) && !isset($wp->query_vars['edit-address']) && !isset($wp->query_vars['edit-account']) && !isset($wp->query_vars['view-order']) && !isset($wp->query_vars['lost-password'])) {
                 wc_get_template('myaccount/my-orders.php', array('order_count' => 15));
             } elseif (isset($wp->query_vars['recent-downloads'])) {
                 wc_get_template('myaccount/my-downloads.php');
             } elseif (isset($wp->query_vars['wishlist'])) {
                 echo do_shortcode('[yith_wcwl_wishlist]');
             } else {
                 yit_content_loop();
             }
             echo '</div>';
             if (is_rtl()) {
                 echo '<div class="col-sm-3" id="my-account-sidebar">';
                 wc_get_template('/myaccount/my-account-menu.php');
                 echo '</div>';
             }
         } else {
             echo '<div class="row" id="my-account-content">';
             if (isset($wp->query_vars['lost-password'])) {
                 WC_Shortcode_My_Account::lost_password();
             } else {
                 wc_get_template('myaccount/form-login.php');
             }
             echo '</div>';
         }
     }
 }
 /**
  * Handle reset password form
  */
 public function process_reset_password()
 {
     if (!isset($_POST['wc_reset_password'])) {
         return;
     }
     // process lost password form
     if (isset($_POST['user_login']) && isset($_POST['_wpnonce'])) {
         wp_verify_nonce($_POST['_wpnonce'], 'woocommerce-lost_password');
         WC_Shortcode_My_Account::retrieve_password();
     }
     // process reset password form
     if (isset($_POST['password_1']) && isset($_POST['password_2']) && isset($_POST['reset_key']) && isset($_POST['reset_login']) && isset($_POST['_wpnonce'])) {
         // verify reset key again
         $user = WC_Shortcode_My_Account::check_password_reset_key($_POST['reset_key'], $_POST['reset_login']);
         if (is_object($user)) {
             // save these values into the form again in case of errors
             $args['key'] = wc_clean($_POST['reset_key']);
             $args['login'] = wc_clean($_POST['reset_login']);
             wp_verify_nonce($_POST['_wpnonce'], 'woocommerce-reset_password');
             if (empty($_POST['password_1']) || empty($_POST['password_2'])) {
                 wc_add_notice(__('Please enter your password.', 'woocommerce'), 'error');
                 $args['form'] = 'reset_password';
             }
             if ($_POST['password_1'] !== $_POST['password_2']) {
                 wc_add_notice(__('Passwords do not match.', 'woocommerce'), 'error');
                 $args['form'] = 'reset_password';
             }
             $errors = new WP_Error();
             do_action('validate_password_reset', $errors, $user);
             if ($errors->get_error_messages()) {
                 foreach ($errors->get_error_messages() as $error) {
                     wc_add_notice($error, 'error');
                 }
             }
             if (0 == wc_notice_count('error')) {
                 WC_Shortcode_My_Account::reset_password($user, $_POST['password_1']);
                 do_action('woocommerce_customer_reset_password', $user);
                 wp_redirect(add_query_arg('reset', 'true', remove_query_arg(array('key', 'login'))));
                 exit;
             }
         }
     }
 }
 /**
  * My Account > Edit account template.
  */
 function woocommerce_account_edit_account()
 {
     WC_Shortcode_My_Account::edit_account();
 }
Пример #6
0
 /**
  * Add custom template form my-account page
  *
  * @return   void
  * @since    2.0.0
  * @author   Francesco Licandro <*****@*****.**>
  */
 function yit_my_account_template()
 {
     if (!function_exists('WC') || !is_page(wc_get_page_id('myaccount'))) {
         return;
     }
     global $wp;
     if (is_user_logged_in()) {
         echo '<div class="row" id="my-account-page">';
         echo '<div class="col-sm-3" id="my-account-sidebar">';
         wc_get_template('/myaccount/my-account-menu.php');
         echo '</div>';
         echo '<div class="col-sm-9" id="my-account-content">';
         wc_print_notices();
         if (isset($wp->query_vars['view-order']) && empty($wp->query_vars['view-order'])) {
             wc_get_template('myaccount/my-orders.php', array('order_count' => -1));
         } elseif (isset($wp->query_vars['recent-downloads'])) {
             wc_get_template('myaccount/my-downloads.php');
         } elseif (isset($wp->query_vars['myaccount-wishlist'])) {
             echo do_shortcode('[yith_wcwl_wishlist]');
         } else {
             yit_content_loop();
         }
         echo '</div>';
         echo '</div>';
     } else {
         echo '<div id="my-account-content">';
         if (isset($wp->query_vars['lost-password'])) {
             WC_Shortcode_My_Account::lost_password();
         } else {
             wc_get_template('myaccount/form-login.php');
         }
         echo '</div>';
     }
 }