Example #1
0
 /**
  * Notify the blog admin of a new user, normally via email.
  *
  * @since 2.0
  *
  * @param int $user_id User ID
  * @param string $plaintext_pass Optional. The user's plaintext password
  */
 function wp_new_user_notification($user_id, $plaintext_pass = '')
 {
     //Copied out of /wp-includes/pluggable.php
     $user = new WP_User($user_id);
     $user_login = stripslashes($user->user_login);
     $user_email = stripslashes($user->user_email);
     // The blogname option is escaped with esc_html on the way into the database in sanitize_option
     // we want to reverse this for the plain text arena of emails.
     $blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);
     $message = sprintf(__('New user registration on your blog %s:'), $blogname) . "\r\n\r\n";
     $message .= sprintf(__('Username: %s'), $user_login) . "\r\n\r\n";
     $message .= sprintf(__('E-mail: %s'), $user_email) . "\r\n";
     @wp_mail(get_option('admin_email'), sprintf(__('[%s] New User Registration'), $blogname), $message);
     if (empty($plaintext_pass)) {
         return;
     }
     //LWA Customizations
     if (!empty(LoginWithAjax::$data['notification_override'])) {
         //We can use our own logic here
         LoginWithAjax::new_user_notification($user_login, $plaintext_pass, $user_email, $blogname);
     } else {
         //Copied out of /wp-includes/pluggable.php
         $message = sprintf(__('Username: %s'), $user_login) . "\r\n";
         $message .= sprintf(__('Password: %s'), $plaintext_pass) . "\r\n";
         $message .= wp_login_url() . "\r\n";
         wp_mail($user_email, sprintf(__('[%s] Your username and password'), $blogname), $message);
     }
 }
Example #2
0
/**
 * Custom functions that deal with the integration of Login with Ajax.
 * See: https://wordpress.org/plugins/login-with-ajax/
 *
 * @package Listable
 */
function listable_lwa_modal()
{
    //double check just to be sure
    if (listable_using_lwa()) {
        $atts = array('profile_link' => true, 'template' => 'modal', 'registration' => true, 'redirect' => false, 'remember' => true);
        return LoginWithAjax::shortcode($atts);
    }
    return '';
}
Example #3
0
 /**
  * Email login credentials to a newly-registered user.
  *
  * A new user registration notification is also sent to admin email.
  *
  * @since 2.0.0
  * @since 4.3.0 The `$plaintext_pass` parameter was changed to `$notify`.
  * @since 4.3.1 The `$plaintext_pass` parameter was deprecated. `$notify` added as a third parameter.
  *
  * @global wpdb         $wpdb      WordPress database object for queries.
  * @global PasswordHash $wp_hasher Portable PHP password hashing framework instance.
  *
  * @param int    $user_id    User ID.
  * @param null   $deprecated Not used (argument deprecated).
  * @param string $notify     Optional. Type of notification that should happen. Accepts 'admin' or an empty
  *                           string (admin only), or 'both' (admin and user). The empty string value was kept
  *                           for backward-compatibility purposes with the renamed parameter. Default empty.
  */
 function wp_new_user_notification($user_id, $deprecated = null, $notify = '')
 {
     if ($deprecated !== null) {
         //_deprecated_argument( __FUNCTION__, '4.3.1' ); //LWA - <4.3 backwards compat, not executing this deprecated function
     }
     global $wpdb, $wp_hasher;
     $user = get_userdata($user_id);
     // The blogname option is escaped with esc_html on the way into the database in sanitize_option
     // we want to reverse this for the plain text arena of emails.
     $blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);
     $message = sprintf(__('New user registration on your site %s:'), $blogname) . "\r\n\r\n";
     $message .= sprintf(__('Username: %s'), $user->user_login) . "\r\n\r\n";
     $message .= sprintf(__('E-mail: %s'), $user->user_email) . "\r\n";
     @wp_mail(get_option('admin_email'), sprintf(__('[%s] New User Registration'), $blogname), $message);
     if ('admin' === $notify || empty($notify) && empty($deprecated)) {
         //LWA - let this pass if there's a password to notify user with, <4.3 backwards compat
         return;
     }
     // Generate something random for a password reset key.
     $key = wp_generate_password(20, false);
     /** This action is documented in wp-login.php */
     do_action('retrieve_password_key', $user->user_login, $key);
     // Now insert the key, hashed, into the DB.
     if (empty($wp_hasher)) {
         require_once ABSPATH . WPINC . '/class-phpass.php';
         $wp_hasher = new PasswordHash(8, true);
     }
     $hashed = time() . ':' . $wp_hasher->HashPassword($key);
     $wpdb->update($wpdb->users, array('user_activation_key' => $hashed), array('user_login' => $user->user_login));
     //LWA Customizations START
     //generate password link like it's done further down
     $password_link = network_site_url("wp-login.php?action=rp&key={$key}&login="******"\r\n\r\n";
     $message .= __('To set your password, visit the following address:') . "\r\n\r\n";
     $message .= '<' . network_site_url("wp-login.php?action=rp&key={$key}&login="******">\r\n\r\n";
     $message .= wp_login_url() . "\r\n";
     wp_mail($user->user_email, sprintf(__('[%s] Your username and password info'), $blogname), $message);
 }
 /** @see WP_Widget::widget */
 function widget($args, $instance)
 {
     $instance = array_merge($this->defaults, $instance);
     echo $args['before_widget'];
     if (!is_user_logged_in() && !empty($instance['title'])) {
         echo $args['before_title'];
         echo '<span class="lwa-title">';
         echo apply_filters('widget_title', $instance['title'], $instance, $this->id_base);
         echo '</span>';
         echo $args['after_title'];
     } elseif (is_user_logged_in() && !empty($instance['title_loggedin'])) {
         echo $args['before_title'];
         echo '<span class="lwa-title">';
         echo str_replace('%username%', LoginWithAjax::$current_user->display_name, $instance['title_loggedin']);
         echo '</span>';
         echo $args['after_title'];
     }
     LoginWithAjax::widget($instance);
     echo $args['after_widget'];
 }
Example #5
0
 public static function widget($instance = array())
 {
     //Extract widget arguments
     //Merge instance options with global default options
     $lwa_data = wp_parse_args($instance, self::$data);
     //Deal with specific variables
     $is_widget = false;
     //backwards-comatibility for overriden themes, this is now done within the WP_Widget class
     $lwa_data['profile_link'] = !empty($lwa_data['profile_link']) && $lwa_data['profile_link'] != "false";
     //Add template logic
     self::$template = !empty($lwa_data['template']) && array_key_exists($lwa_data['template'], self::$templates) ? $lwa_data['template'] : 'default';
     //Choose the widget content to display.
     if (is_user_logged_in()) {
         //Firstly check for template in theme with no template folder (legacy)
         $template_loc = locate_template(array('plugins/login-with-ajax/widget_in.php'));
         //Then check for custom templates or theme template default
         $template_loc = $template_loc == '' && self::$template ? self::$templates[self::$template] . '/widget_in.php' : $template_loc;
         include $template_loc != '' && file_exists($template_loc) ? $template_loc : 'widget/default/widget_in.php';
     } else {
         //Firstly check for template in theme with no template folder (legacy)
         $template_loc = locate_template(array('plugins/login-with-ajax/widget_out.php'));
         //First check for custom templates or theme template default
         $template_loc = $template_loc == '' && self::$template ? self::$templates[self::$template] . '/widget_out.php' : $template_loc;
         include $template_loc != '' && file_exists($template_loc) ? $template_loc : 'widget/default/widget_out.php';
     }
 }
 public static function widget($instance = array())
 {
     //Extract widget arguments
     //Merge instance options with global default options
     $lwa_data = wp_parse_args($instance, self::$data);
     //Deal with specific variables
     $is_widget = false;
     //backwards-comatibility for overriden themes, this is now done within the WP_Widget class
     $lwa_data['profile_link'] = !empty($lwa_data['profile_link']) && $lwa_data['profile_link'] != "false";
     //Add template logic
     self::$template = !empty($lwa_data['template']) && array_key_exists($lwa_data['template'], self::$templates) ? $lwa_data['template'] : 'default';
     //Choose the widget content to display.
     if (is_user_logged_in()) {
         //Firstly check for template in theme with no template folder (legacy)
         $template_loc = locate_template(array('plugins/login-with-ajax/widget_in.php'));
         //Then check for custom templates or theme template default
         $template_loc = $template_loc == '' && self::$template ? self::$templates[self::$template] . '/widget_in.php' : $template_loc;
         include $template_loc != '' && file_exists($template_loc) ? $template_loc : 'widget/default/widget_in.php';
     } else {
         //quick/easy WPML fix, should eventually go into a seperate file
         if (defined('ICL_LANGUAGE_CODE')) {
             if (!function_exists('lwa_wpml_input_var')) {
                 function lwa_wpml_input_var()
                 {
                     echo '<input type="hidden" name="lang" id="lang" value="' . esc_attr(ICL_LANGUAGE_CODE) . '" />';
                 }
             }
             foreach (array('login_form', 'lwa_register_form', 'lostpassword_form') as $action) {
                 add_action($action, 'lwa_wpml_input_var');
             }
         }
         //Firstly check for template in theme with no template folder (legacy)
         $template_loc = locate_template(array('plugins/login-with-ajax/widget_out.php'));
         //First check for custom templates or theme template default
         $template_loc = $template_loc == '' && self::$template ? self::$templates[self::$template] . '/widget_out.php' : $template_loc;
         include $template_loc != '' && file_exists($template_loc) ? $template_loc : 'widget/default/widget_out.php';
         //quick/easy WPML fix, should eventually go into a seperate file
         if (defined('ICL_LANGUAGE_CODE')) {
             foreach (array('login_form', 'lwa_register_form', 'lostpassword_form') as $action) {
                 remove_action($action, 'lwa_wpml_input_var');
             }
         }
     }
 }