woo_widget_cssclass = 'widget_login'; $this->woo_widget_description = __( 'Display a login area and "My Account" links in the sidebar.', 'woothemes' ); $this->woo_widget_idbase = 'woocommerce_login'; $this->woo_widget_name = __('WooCommerce Login', 'woothemes' ); /* Widget settings. */ $widget_ops = array( 'classname' => $this->woo_widget_cssclass, 'description' => $this->woo_widget_description ); /* Create the widget. */ $this->WP_Widget('woocommerce_login', $this->woo_widget_name, $widget_ops); } /** @see WP_Widget */ function widget( $args, $instance ) { global $woocommerce; extract($args); $logged_out_title = (!empty($instance['logged_out_title'])) ? $instance['logged_out_title'] : __('Customer Login', 'woothemes'); $logged_in_title = (!empty($instance['logged_in_title'])) ? $instance['logged_in_title'] : __('Welcome %s', 'woothemes'); echo $before_widget; if (is_user_logged_in()) { $user = get_user_by('id', get_current_user_id()); if ( $logged_in_title ) echo $before_title . sprintf( $logged_in_title, ucwords($user->display_name) ) . $after_title; do_action('woocommerce_login_widget_logged_in_before_links'); $links = apply_filters( 'woocommerce_login_widget_logged_in_links', array( __('My account', 'woothemes') => get_permalink(get_option('woocommerce_myaccount_page_id')), __('Change my password', 'woothemes') => get_permalink(get_option('woocommerce_change_password_page_id')), __('Logout', 'woothemes') => wp_logout_url(home_url()) )); if (sizeof($links>0)) : echo ''; endif; do_action('woocommerce_login_widget_logged_in_after_links'); } else { if ( $logged_out_title ) echo $before_title . $logged_out_title . $after_title; do_action('woocommerce_login_widget_logged_out_before_form'); global $login_errors; if ( is_wp_error($login_errors) && $login_errors->get_error_code() ) foreach ($login_errors->get_error_messages() as $error) : echo '
' . $error . "
\n"; break; endforeach; // Get redirect URL $redirect_to = apply_filters( 'woocommerce_login_widget_redirect', get_permalink(get_option('woocommerce_myaccount_page_id')) ); ?>

0)) : echo ''; endif; } echo $after_widget; } /** @see WP_Widget->update */ function update( $new_instance, $old_instance ) { $instance['logged_out_title'] = strip_tags(stripslashes($new_instance['logged_out_title'])); $instance['logged_in_title'] = strip_tags(stripslashes($new_instance['logged_in_title'])); return $instance; } /** @see WP_Widget->form */ function form( $instance ) { ?>

ID) ) { $secure_cookie = true; force_ssl_admin(true); } } } if ( !$secure_cookie && is_ssl() && force_ssl_login() && !force_ssl_admin() && ( 0 !== strpos($redirect_to, 'https') ) && ( 0 === strpos($redirect_to, 'http') ) ) $secure_cookie = false; // Login $user = wp_signon($creds, $secure_cookie); // Redirect filter if ( $secure_cookie && false !== strpos($redirect_to, 'wp-admin') ) $redirect_to = preg_replace('|^http://|', 'https://', $redirect_to); // Result $result = array(); if ( !is_wp_error($user) ) : $result['success'] = 1; $result['redirect'] = $redirect_to; else : $result['success'] = 0; foreach ($user->errors as $error) { $result['error'] = $error[0]; break; } endif; echo json_encode($result); die(); } add_action('init', 'woocommerce_sidebar_login_process', 0); function woocommerce_sidebar_login_process() { if (isset($_POST['woocommerce_login'])) { global $login_errors; // Get redirect URL $redirect_to = apply_filters( 'woocommerce_login_widget_redirect', get_permalink(get_option('woocommerce_myaccount_page_id')) ); // Check for Secure Cookie $secure_cookie = ''; // If the user wants ssl but the session is not ssl, force a secure cookie. if ( !empty($_POST['log']) && !force_ssl_admin() ) { $user_name = sanitize_user($_POST['log']); if ( $user = get_userdatabylogin($user_name) ) { if ( get_user_option('use_ssl', $user->ID) ) { $secure_cookie = true; force_ssl_admin(true); } } } if ( !$secure_cookie && is_ssl() && force_ssl_login() && !force_ssl_admin() && ( 0 !== strpos($redirect_to, 'https') ) && ( 0 === strpos($redirect_to, 'http') ) ) $secure_cookie = false; // Login $user = wp_signon('', $secure_cookie); // Redirect filter if ( $secure_cookie && false !== strpos($redirect_to, 'wp-admin') ) $redirect_to = preg_replace('|^http://|', 'https://', $redirect_to); // Check the username if ( !$_POST['log'] ) : $user = new WP_Error(); $user->add('empty_username', __('ERROR: Please enter a username.', 'woothemes')); elseif ( !$_POST['pwd'] ) : $user = new WP_Error(); $user->add('empty_username', __('ERROR: Please enter your password.', 'woothemes')); endif; // Redirect if successful if ( !is_wp_error($user) ) : wp_safe_redirect( $redirect_to ); exit; endif; $login_errors = $user; } }