* @copyright Copyright (c) 2009 - 2015, Justin Tadlock * @link http://themehybrid.com/plugins/members * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html */ /** * Login form widget class. * * @since 0.1.0 * @access public */ class Members_Widget_Login extends WP_Widget { /** * Set up the widget's unique name, ID, class, description, and other options. * * @since 0.2.5 * @access public * @return void */ public function __construct() { // Set up the widget options. $widget_options = array( 'classname' => 'login', 'description' => esc_html__( 'A widget that allows users to log into your site.', 'members' ) ); // Set up the widget control options. $control_options = array( 'width' => 800, 'height' => 350, 'id_base' => 'members-widget-login' ); // Create the widget. parent::__construct( 'members-widget-login', esc_attr__( 'Members: Login Form', 'members' ), $widget_options, $control_options ); } /** * Outputs the widget based on the arguments input through the widget controls. * * @since 0.1.0 * @access public * @param array $sidebar * @param array $instance * @return void */ function widget( $sidebar, $instance ) { global $user_identity, $user_ID; // Set up the arguments for wp_login_form(). $args = array( 'form_id' => ! empty( $instance['form_id'] ) ? esc_attr( $instance['form_id'] ) : 'loginform', 'label_username' => esc_html( $instance['label_username'] ), 'label_password' => esc_html( $instance['label_password'] ), 'label_remember' => esc_html( $instance['label_remember'] ), 'label_log_in' => esc_html( $instance['label_log_in'] ), 'id_username' => esc_attr( $instance['id_username'] ), 'id_password' => esc_attr( $instance['id_password'] ), 'id_remember' => esc_attr( $instance['id_submit'] ), 'id_submit' => esc_attr( $instance['remember'] ), 'value_username' => esc_attr( $instance['value_username'] ), 'remember' => ! empty( $instance['remember'] ) ? true : false, 'value_remember' => ! empty( $instance['value_remember'] ) ? true : false, 'echo' => false, ); if ( ! empty( $instance['redirect'] ) ) $args['redirect'] = esc_url( $instance['redirect'] ); // Get the logged in/out text. $logged_in_text = apply_filters( 'widget_text', $instance['logged_in_text'] ); $logged_out_text = apply_filters( 'widget_text', $instance['logged_out_text'] ); // Output the theme's $before_widget wrapper. echo $sidebar['before_widget']; // If a title was input by the user, display it. if ( $instance['title'] ) echo $sidebar['before_title'] . apply_filters( 'widget_title', $instance['title'], $instance, $this->id_base ) . $sidebar['after_title']; // If the current user is logged in. if ( is_user_logged_in() ) { // Show avatar if enabled. if ( ! empty( $instance['show_avatar'] ) ) echo get_avatar( $user_ID ); // Show logged in text if any is written. if ( $logged_in_text ) echo do_shortcode( shortcode_unautop( wpautop( $logged_in_text ) ) ); } // If the current user is not logged in. else { // Show avatar if enabled. if ( ! empty( $instance['show_avatar'] ) ) echo get_avatar( $user_ID ); // Show logged out text if any is written. if ( $logged_out_text ) echo do_shortcode( shortcode_unautop( wpautop( $logged_out_text ) ) ); // Output the login form. echo '