/** * 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; } } }
/** * 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(); }
/** * 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>'; } }