function wp_new_user_notification($user_id, $plaintext_pass = '') { global $sb_we_home, $current_site; if (@$sb_we_settings->set_global_headers) { sb_we_set_email_filter_headers(); } if ($user = new WP_User($user_id)) { $settings = get_option('sb_we_settings'); update_user_meta($user_id, 'sb_we_last_sent', time()); $blog_name = get_option('blogname'); if (is_multisite()) { $blog_name = $current_site->site_name; } $admin_email = get_option('admin_email'); $user_login = stripslashes($user->user_login); $user_email = stripslashes($user->user_email); $user_subject = $settings->user_subject; $user_message = $settings->user_body; $admin_subject = $settings->admin_subject; $admin_message = $settings->admin_body; $first_name = $user->first_name; $last_name = $user->last_name; //Headers $headers = ''; if ($reply_to = $settings->header_reply_to) { $headers .= 'Reply-To: ' . $reply_to . "\r\n"; } if ($from_email = $settings->header_from_email) { $from_email = str_replace('[admin_email]', $admin_email, $from_email); add_filter('wp_mail_from', 'sb_we_get_from_email', 1, 100); if ($from_name = $settings->header_from_name) { add_filter('wp_mail_from_name', 'sb_we_get_from_name', 1, 100); $headers .= 'From: ' . $from_name . ' <' . $from_email . ">\r\n"; } else { $headers .= 'From: ' . $from_email . "\r\n"; } } if ($send_as = $settings->header_send_as) { if ($send_as == 'html') { if (!($charset = get_bloginfo('charset'))) { $charset = 'iso-8859-1'; } $headers .= 'Content-type: text/html; charset=' . $charset . "\r\n"; add_filter('wp_mail_content_type', create_function('$i', 'return "text/html";'), 1, 100); add_filter('wp_mail_charset', 'sb_we_get_charset', 1, 100); } } if ($additional = $settings->header_additional) { $headers .= $additional; } $headers = str_replace('[admin_email]', $admin_email, $headers); $headers = str_replace('[blog_name]', $blog_name, $headers); $headers = str_replace('[site_url]', $sb_we_home, $headers); //End Headers //Don't notify if the admin object doesn't exist; if ($settings->admin_notify_user_id) { //Allows single or multiple admins to be notified. Admin ID 1 OR 1,3,2,5,6,etc... $admins = explode(',', $settings->admin_notify_user_id); $date = date(get_option('date_format')); $time = date(get_option('time_format')); if (!is_array($admins)) { $admins = array($admins); } global $wpdb; $sql = 'SELECT meta_key, meta_value FROM ' . $wpdb->usermeta . ' WHERE user_ID = ' . $user_id; $custom_fields = array(); if ($meta_items = $wpdb->get_results($sql)) { foreach ($meta_items as $i => $meta_item) { $custom_fields[$meta_item->meta_key] = $meta_item->meta_value; } } $admin_message = str_replace('[blog_name]', $blog_name, $admin_message); $admin_message = str_replace('[admin_email]', $admin_email, $admin_message); $admin_message = str_replace('[site_url]', $sb_we_home, $admin_message); $admin_message = str_replace('[login_url]', $sb_we_home . 'wp-login.php', $admin_message); $admin_message = str_replace('[user_email]', $user_email, $admin_message); $admin_message = str_replace('[user_login]', $user_login, $admin_message); $admin_message = str_replace('[first_name]', $first_name, $admin_message); $admin_message = str_replace('[last_name]', $last_name, $admin_message); $admin_message = str_replace('[user_id]', $user_id, $admin_message); $admin_message = str_replace('[plaintext_password]', $plaintext_pass, $admin_message); $admin_message = str_replace('[user_password]', $plaintext_pass, $admin_message); $admin_message = str_replace('[custom_fields]', '<pre>' . print_r($custom_fields, true) . '</pre>', $admin_message); $admin_message = str_replace('[date]', $date, $admin_message); $admin_message = str_replace('[time]', $time, $admin_message); if (strpos($admin_message, '[bp_custom_fields]')) { $admin_message = str_replace('[bp_custom_fields]', '<pre>' . print_r(sb_we_get_bp_custom_fields($user_id), true) . '</pre>', $admin_message); } $admin_subject = str_replace('[blog_name]', $blog_name, $admin_subject); $admin_subject = str_replace('[site_url]', $sb_we_home, $admin_subject); $admin_subject = str_replace('[first_name]', $first_name, $admin_subject); $admin_subject = str_replace('[last_name]', $last_name, $admin_subject); $admin_subject = str_replace('[user_email]', $user_email, $admin_subject); $admin_subject = str_replace('[user_login]', $user_login, $admin_subject); $admin_subject = str_replace('[user_id]', $user_id, $admin_subject); $admin_subject = str_replace('[date]', $date, $admin_subject); $admin_subject = str_replace('[time]', $time, $admin_subject); foreach ($admins as $admin_id) { if ($admin = new WP_User($admin_id)) { wp_mail($admin->user_email, $admin_subject, $admin_message, $headers); } } } if (!empty($plaintext_pass)) { $user_message = str_replace('[admin_email]', $admin_email, $user_message); $user_message = str_replace('[site_url]', $sb_we_home, $user_message); $user_message = str_replace('[login_url]', $sb_we_home . 'wp-login.php', $user_message); $user_message = str_replace('[user_email]', $user_email, $user_message); $user_message = str_replace('[user_login]', $user_login, $user_message); $user_message = str_replace('[last_name]', $last_name, $user_message); $user_message = str_replace('[first_name]', $first_name, $user_message); $user_message = str_replace('[user_id]', $user_id, $user_message); $user_message = str_replace('[plaintext_password]', $plaintext_pass, $user_message); $user_message = str_replace('[user_password]', $plaintext_pass, $user_message); $user_message = str_replace('[blog_name]', $blog_name, $user_message); $user_message = str_replace('[date]', $date, $user_message); $user_message = str_replace('[time]', $time, $user_message); $user_subject = str_replace('[blog_name]', $blog_name, $user_subject); $user_subject = str_replace('[site_url]', $sb_we_home, $user_subject); $user_subject = str_replace('[user_email]', $user_email, $user_subject); $user_subject = str_replace('[last_name]', $last_name, $user_subject); $user_subject = str_replace('[first_name]', $first_name, $user_subject); $user_subject = str_replace('[user_login]', $user_login, $user_subject); $user_subject = str_replace('[user_id]', $user_id, $user_subject); $user_subject = str_replace('[date]', $date, $user_subject); $user_subject = str_replace('[time]', $time, $user_subject); $attachment = false; if (trim($settings->we_attachment_url)) { $attachment = str_replace(trailingslashit(site_url()), trailingslashit($_SERVER['DOCUMENT_ROOT']), $settings->we_attachment_url); } wp_mail($user_email, $user_subject, $user_message, $headers, $attachment); } } if (@$sb_we_settings->set_global_headers) { sb_we_set_email_filter_headers(true); } return true; }
function wp_new_user_notification($user_id, $depracated = '', $notify = '') { global $sb_we_home, $current_site, $wpdb; if (@$sb_we_settings->set_global_headers) { sb_we_set_email_filter_headers(); } if ($user = new WP_User($user_id)) { $settings = get_option('sb_we_settings'); update_user_meta($user_id, 'sb_we_last_sent', time()); $blog_name = get_option('blogname'); if (is_multisite()) { $blog_name = $current_site->site_name; } $admin_email = get_option('admin_email'); $user_login = stripslashes($user->user_login); $user_email = stripslashes($user->user_email); $user_subject = apply_filters('sb_we_user_subject_template', $settings->user_subject); $user_message = apply_filters('sb_we_user_body_template', $settings->user_body); $admin_subject = apply_filters('sb_we_admin_subject_template', $settings->admin_subject); $admin_message = apply_filters('sb_we_admin_body_template', $settings->admin_body); $first_name = $user->first_name; $last_name = $user->last_name; //Headers $headers = ''; if ($reply_to = $settings->header_reply_to) { $headers .= 'Reply-To: ' . $reply_to . "\r\n"; } if ($from_email = $settings->header_from_email) { $from_email = str_replace('[admin_email]', $admin_email, $from_email); add_filter('wp_mail_from', 'sb_we_get_from_email', 1, 100); if ($from_name = $settings->header_from_name) { add_filter('wp_mail_from_name', 'sb_we_get_from_name', 1, 100); $headers .= 'From: ' . $from_name . ' <' . $from_email . ">\r\n"; } else { $headers .= 'From: ' . $from_email . "\r\n"; } } if ($send_as = $settings->header_send_as) { if ($send_as == 'html') { if (!($charset = get_bloginfo('charset'))) { $charset = 'iso-8859-1'; } $headers .= 'Content-type: text/html; charset=' . $charset . "\r\n"; add_filter('wp_mail_content_type', create_function('$i', 'return "text/html";'), 1, 100); add_filter('wp_mail_charset', 'sb_we_get_charset', 1, 100); } } if ($additional = $settings->header_additional) { $headers .= $additional; } $headers = str_replace('[admin_email]', $admin_email, $headers); $headers = str_replace('[blog_name]', $blog_name, $headers); $headers = str_replace('[site_url]', $sb_we_home, $headers); $headers = apply_filters('sb_we_email_headers', $headers, $settings); //End Headers //Don't notify if the admin object doesn't exist; if ($settings->admin_notify_user_id) { //Allows single or multiple admins to be notified. Admin ID 1 OR 1,3,2,5,6,etc... $admins = explode(',', $settings->admin_notify_user_id); $date = date(get_option('date_format')); $time = date(get_option('time_format')); if (!is_array($admins)) { $admins = array($admins); } global $wpdb; $sql = 'SELECT meta_key, meta_value FROM ' . $wpdb->usermeta . ' WHERE user_ID = ' . $user_id; $custom_fields = array(); if ($meta_items = $wpdb->get_results($sql)) { foreach ($meta_items as $i => $meta_item) { $custom_fields[$meta_item->meta_key] = $meta_item->meta_value; } } $admin_message = str_replace('[blog_name]', $blog_name, $admin_message); $admin_message = str_replace('[admin_email]', $admin_email, $admin_message); $admin_message = str_replace('[site_url]', $sb_we_home, $admin_message); //$admin_message = str_replace('[login_url]', $sb_we_home . 'wp-login.php', $admin_message); $admin_message = str_replace('[login_url]', wp_login_url(), $admin_message); $admin_message = str_replace('[reset_pass_url]', $reset_pass_url, $admin_message); $admin_message = str_replace('[user_email]', $user_email, $admin_message); $admin_message = str_replace('[user_login]', $user_login, $admin_message); $admin_message = str_replace('[first_name]', $first_name, $admin_message); $admin_message = str_replace('[last_name]', $last_name, $admin_message); $admin_message = str_replace('[user_id]', $user_id, $admin_message); $admin_message = str_replace('[plaintext_password]', '*****', $admin_message); $admin_message = str_replace('[user_password]', '*****', $admin_message); $admin_message = str_replace('[custom_fields]', '<pre>' . print_r($custom_fields, true) . '</pre>', $admin_message); $admin_message = str_replace('[post_data]', '<pre>' . print_r($_REQUEST, true) . '</pre>', $admin_message); $admin_message = str_replace('[date]', $date, $admin_message); $admin_message = str_replace('[time]', $time, $admin_message); if (strpos($admin_message, '[bp_custom_fields]')) { if (function_exists('sb_we_get_bp_custom_fields')) { $admin_message = str_replace('[bp_custom_fields]', '<pre>' . print_r(sb_we_get_bp_custom_fields($user_id), true) . '</pre>', $admin_message); } } $admin_subject = str_replace('[blog_name]', $blog_name, $admin_subject); $admin_subject = str_replace('[site_url]', $sb_we_home, $admin_subject); $admin_subject = str_replace('[first_name]', $first_name, $admin_subject); $admin_subject = str_replace('[last_name]', $last_name, $admin_subject); $admin_subject = str_replace('[user_email]', $user_email, $admin_subject); $admin_subject = str_replace('[user_login]', $user_login, $admin_subject); $admin_subject = str_replace('[user_id]', $user_id, $admin_subject); $admin_subject = str_replace('[date]', $date, $admin_subject); $admin_subject = str_replace('[time]', $time, $admin_subject); $admin_message_replace = apply_filters('sb_we_replace_array', array(), $user_id, $settings); if ($admin_message_replace) { foreach ($admin_message_replace as $hook => $replace) { $admin_message = str_replace('[' . $hook . ']', $replace, $admin_message); $admin_subject = str_replace('[' . $hook . ']', $replace, $admin_subject); } } $admin_message = apply_filters('sb_we_email_admin_message', $admin_message, $settings, $user_id); $admin_subject = apply_filters('sb_we_email_admin_subject', $admin_subject, $settings, $user_id); $admins = apply_filters('sb_we_email_admins', $admins); foreach ($admins as $admin_id) { if ($admin = new WP_User($admin_id)) { wp_mail($admin->user_email, $admin_subject, $admin_message, $headers); } } } if ($notify && $notify != 'admin') { //needs to be like this for backwards compatibility //$login_url = $reset_pass_url = $sb_we_home . 'wp-login.php'; $login_url = $reset_pass_url = wp_login_url(); if (version_compare(get_bloginfo('version'), '4.3') >= 0) { //set the password hash and generate a link to go and set it rather than sending it to them in plaintext // Generate a key. $key = wp_generate_password(20, false); 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)); $login_url = $reset_pass_url = wp_login_url() . '?action=rp&key=' . $key . '&login='******'login'); //$login_url = network_site_url("wp-login.php?action=rp", 'login'); } $user_message = str_replace('[admin_email]', $admin_email, $user_message); $user_message = str_replace('[site_url]', $sb_we_home, $user_message); $user_message = str_replace('[login_url]', $login_url, $user_message); $user_message = str_replace('[reset_pass_url]', $reset_pass_url, $user_message); $user_message = str_replace('[reset_pass_link]', '<a href="' . $reset_pass_url . '" target="_blank">' . __('Click to set', SB_WE_DOMAIN) . '</a>', $user_message); $user_message = str_replace('[user_email]', $user_email, $user_message); $user_message = str_replace('[user_login]', $user_login, $user_message); $user_message = str_replace('[last_name]', $last_name, $user_message); $user_message = str_replace('[first_name]', $first_name, $user_message); $user_message = str_replace('[user_id]', $user_id, $user_message); $user_message = str_replace('[plaintext_password]', '*****', $user_message); $user_message = str_replace('[user_password]', '*****', $user_message); $user_message = str_replace('[blog_name]', $blog_name, $user_message); $user_message = str_replace('[date]', $date, $user_message); $user_message = str_replace('[time]', $time, $user_message); $user_subject = str_replace('[blog_name]', $blog_name, $user_subject); $user_subject = str_replace('[site_url]', $sb_we_home, $user_subject); $user_subject = str_replace('[user_email]', $user_email, $user_subject); $user_subject = str_replace('[last_name]', $last_name, $user_subject); $user_subject = str_replace('[first_name]', $first_name, $user_subject); $user_subject = str_replace('[user_login]', $user_login, $user_subject); $user_subject = str_replace('[user_id]', $user_id, $user_subject); $user_subject = str_replace('[date]', $date, $user_subject); $user_subject = str_replace('[time]', $time, $user_subject); $user_message_replace = apply_filters('sb_we_replace_array', array(), $user_id, $settings); if ($user_message_replace) { foreach ($user_message_replace as $hook => $replace) { $user_message = str_replace('[' . $hook . ']', $replace, $user_message); $user_subject = str_replace('[' . $hook . ']', $replace, $user_subject); } } $user_subject = apply_filters('sb_we_email_subject', $user_subject, $settings, $user_id); $user_message = apply_filters('sb_we_email_message', $user_message, $settings, $user_id); $attachment = false; if (trim($settings->we_attachment_url)) { $attachment = str_replace(trailingslashit(site_url()), trailingslashit($_SERVER['DOCUMENT_ROOT']), $settings->we_attachment_url); } wp_mail($user_email, $user_subject, $user_message, $headers, $attachment); } } if (@$sb_we_settings->set_global_headers) { sb_we_set_email_filter_headers(true); } return true; }