woo_widget_cssclass = 'widget_login'; $this->woo_widget_description = __( 'Display a login area and "My Account" links in the sidebar.', 'woocommerce' ); $this->woo_widget_idbase = 'woocommerce_login'; $this->woo_widget_name = __('WooCommerce Login', 'woocommerce' ); /* 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); // Don't show if on the account page since that has a login if (is_account_page() && !is_user_logged_in()) return; $logged_out_title = (!empty($instance['logged_out_title'])) ? $instance['logged_out_title'] : __('Customer Login', 'woocommerce'); $logged_in_title = (!empty($instance['logged_in_title'])) ? $instance['logged_in_title'] : __('Welcome %s', 'woocommerce'); 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', 'woocommerce') => get_permalink(woocommerce_get_page_id('myaccount')), __('Change my password', 'woocommerce') => get_permalink(woocommerce_get_page_id('change_password')), __('Logout', 'woocommerce') => 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(woocommerce_get_page_id('myaccount')) ); ?>

add_inline_js(" // Ajax Login jQuery('.widget_login form').submit(function(){ var thisform = this; jQuery(thisform).block({ message: null, overlayCSS: { backgroundColor: '#fff', opacity: 0.6 } }); var data = { action: 'woocommerce_sidebar_login_process', security: '".wp_create_nonce("woocommerce-sidebar-login-action")."', user_login: jQuery('input[name=\"log\"]', thisform).val(), user_password: jQuery('input[name=\"pwd\"]', thisform).val(), redirect_to: jQuery('.redirect_to:eq(0)', thisform).val() }; // Ajax action jQuery.ajax({ url: '".admin_url('admin-ajax.php')."', data: data, type: 'GET', dataType: 'jsonp', success: function( result ) { jQuery('.woocommerce_error').remove(); if (result.success==1) { window.location = result.redirect; } else { jQuery(thisform).prepend('
' + result.error + '
'); jQuery(thisform).unblock(); } } }); return false; }); "); $links = apply_filters( 'woocommerce_login_widget_logged_out_links', array()); if (sizeof($links>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 ( force_ssl_admin() ) $secure_cookie = true; if ( $secure_cookie == '' && force_ssl_login() ) $secure_cookie = false; // Login $user = wp_signon( '', $secure_cookie ); // Redirect filter if ( $secure_cookie && strstr($redirect_to, 'wp-admin') ) $redirect_to = str_replace('http:', 'https:', $redirect_to); // Check the username if ( !$_POST['log'] ) : $user = new WP_Error(); $user->add('empty_username', '' . __('ERROR', 'woocommerce') . ': ' . __('Please enter a username.', 'woocommerce')); elseif ( !$_POST['pwd'] ) : $user = new WP_Error(); $user->add('empty_username', '' . __('ERROR', 'woocommerce') . ': ' . __('Please enter your password.', 'woocommerce')); endif; // Redirect if successful if ( !is_wp_error($user) ) : wp_safe_redirect( $redirect_to ); exit; endif; $login_errors = $user; } }