`.
*
* These Filters are only needed during registration.
*
* @package s2Member\Email_Configs
* @since 3.5
*/
public static function email_config ()
{
do_action('ws_plugin__s2member_before_email_config', get_defined_vars ());
c_ws_plugin__s2member_email_configs::email_config_release ();
add_filter ('wp_mail_from', 'c_ws_plugin__s2member_email_configs::_email_config_email');
add_filter ('wp_mail_from_name', 'c_ws_plugin__s2member_email_configs::_email_config_name');
do_action('ws_plugin__s2member_after_email_config', get_defined_vars ());
}
/**
* A sort of callback function that applies the email Filter.
*
* @package s2Member\Email_Configs
* @since 3.5
*
* @attaches-to ``add_filter('wp_mail_from');``
*
* @param string $email Expects the email address to be passed in by the Filter.
* @return string s2Member-configured email address.
*/
public static function _email_config_email ($email = '')
{
do_action('_ws_plugin__s2member_before_email_config_email', get_defined_vars ());
return apply_filters('_ws_plugin__s2member_email_config_email', $GLOBALS['WS_PLUGIN__']['s2member']['o']['reg_email_from_email'], get_defined_vars ());
}
/**
* A sort of callback function that applies the name Filter.
*
* @package s2Member\Email_Configs
* @since 3.5
*
* @attaches-to ``add_filter('wp_mail_from_name');``
*
* @param string $name Expects the name to be passed in by the Filter.
* @return string s2Member-configured name.
*/
public static function _email_config_name ($name = '')
{
do_action('_ws_plugin__s2member_before_email_config_name', get_defined_vars ());
return apply_filters('_ws_plugin__s2member_email_config_name', $GLOBALS['WS_PLUGIN__']['s2member']['o']['reg_email_from_name'], get_defined_vars ());
}
/**
* Checks the status of Filters being applied to the email From: "Name"
.
*
* @package s2Member\Email_Configs
* @since 3.5
*
* @param bool $any Optional. Defaults to false. If true, return true if ANY Filters are being applied, not just those applied by s2Member.
* @return bool True if Filters are being applied, else false.
*/
public static function email_config_status ($any = FALSE)
{
do_action('ws_plugin__s2member_before_email_config_status', get_defined_vars ());
if (has_filter ('wp_mail_from', 'c_ws_plugin__s2member_email_configs::_email_config_email') || has_filter ('wp_mail_from_name', 'c_ws_plugin__s2member_email_configs::_email_config_name'))
return apply_filters('ws_plugin__s2member_email_config_status', true, get_defined_vars ());
else if ($any && (has_filter ('wp_mail_from') || has_filter ('wp_mail_from_name')))
return apply_filters('ws_plugin__s2member_email_config_status', true, get_defined_vars ());
return apply_filters('ws_plugin__s2member_email_config_status', false, get_defined_vars ());
}
/**
* Releases Filters that modify the email From: "Name" .
*
* @package s2Member\Email_Configs
* @since 3.5
*
* @param bool $all Optional. Defaults to false. If true, remove ALL Filters, not just those applied by s2Member.
*/
public static function email_config_release ($all = FALSE)
{
do_action('ws_plugin__s2member_before_email_config_release', get_defined_vars ());
remove_filter ('wp_mail_from', 'c_ws_plugin__s2member_email_configs::_email_config_email');
remove_filter ('wp_mail_from_name', 'c_ws_plugin__s2member_email_configs::_email_config_name');
if ($all) // If ``$all`` is true, remove ALL attached WordPress Filters.
remove_all_filters ('wp_mail_from') . remove_all_filters ('wp_mail_from_name');
do_action('ws_plugin__s2member_after_email_config_release', get_defined_vars ());
}
/**
* Converts primitive Role names in emails sent by WordPress.
*
* Only necessary with this particular email: `wpmu_signup_user_notification_email`.
*
* @package s2Member\Email_Configs
* @since 3.5
*
* @attaches-to ``add_filter('wpmu_signup_user_notification_email');``
*
* @param string $message Expects the message string to be passed in by the Filter.
* @return string Message after having been Filtered by s2Member.
*/
public static function ms_nice_email_roles ($message = '')
{
foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;
do_action('ws_plugin__s2member_before_ms_nice_email_roles', get_defined_vars ());
unset($__refs, $__v); // Housekeeping.
$message = preg_replace ('/ as a (subscriber|s2member_level[0-9]+)/i', ' ' . _x ('as a Member', 's2member-front', 's2member'), $message);
return apply_filters('ws_plugin__s2member_ms_nice_email_roles', $message, get_defined_vars ());
}
/**
* Filters email addresses passed to ``wp_mail()``.
*
* @package s2Member\Email_Configs
* @since 3.5
*
* @attaches-to ``add_filter('wp_mail');``
* @uses {@link s2Member\Utilities\c_ws_plugin__s2member_utils_strings::parse_emails()}
*
* @param array $array Expects an array passed through by the Filter.
* @return array Returns the array passed through by the Filter.
*/
public static function email_filter ($array = array())
{
if (isset ($array['to']) && !empty($array['to'])) // Filter list of recipients?
// Reduces `"Name" `, to just an email address *(for best cross-platform compatibility across various MTAs)*.
// Also works around bug in PHP versions prior to fix in 5.2.11. See bug report: .
// Also supplements WordPress. WordPress currently does NOT support semicolon `;` delimitation, s2Member does.
$array['to'] = implode (',', c_ws_plugin__s2member_utils_strings::parse_emails ($array['to']));
return apply_filters('ws_plugin__s2member_after_email_filter', $array, get_defined_vars ());
}
/**
* Resets a User/Member password and resends the New User Notification email message (to the User/Member only).
*
* @package s2Member\Email_Configs
* @since 110707
*
* @param string|int $user_id A numeric WordPress User ID.
* @param string $user_pass Optional. A plain text version of the User's password.
* If omitted, a new password will be generated automatically.
* @param array $notify An array of directives. Must be non-empty, with at least one of these values `user,admin`.
* This defaults to a value of `array('user')`. We notify the User/Member only (and NOT the administrator).
* @param string $user_email Optional. This defaults to the user's currently configured email address.
* @return bool True if all required parameters are supplied, else false.
*/
public static function reset_pass_resend_new_user_notification ($user_id = 0, $user_pass = '', $notify = array('user'), $user_email = '')
{
foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;
do_action('ws_plugin__s2member_before_reset_pass_resend_new_user_notification', get_defined_vars ());
unset($__refs, $__v); // Housekeeping.
$user_id = (integer)$user_id;
$user_pass = (string)$user_pass;
$notify = (array)$notify;
$user_email = (string)$user_email;
if ($user_id && ($user = new WP_User ($user_id)) && !empty($user->ID) && ($user_id = $user->ID) && $notify)
{
remove_filter('random_password', 'c_ws_plugin__s2member_registrations::generate_password');
$user_pass = $user_pass ? $user_pass : wp_generate_password(); // ↑ Make sure it's w/o filter.
wp_set_password($user_pass, $user_id);
$return = c_ws_plugin__s2member_email_configs::new_user_notification($user_id, $user_pass, $notify, $user_email);
}
return apply_filters('ws_plugin__s2member_reset_pass_resend_new_user_notification', !empty($return) ? true : false, get_defined_vars ());
}
/**
* Handles new User/Member notifications.
*
* @package s2Member\Email_Configs
* @since 110707
*
* @param string|int $user_id A numeric WordPress User ID.
* @param string $user_pass Optional; plain text pass. No longer suggested, by here for back compat.
* @param array $notify An array of directives. Must be non-empty, with at least one of these values `user,admin`.
* @param string $user_email Optional. This defaults to the user's currently configured email address.
* @return bool True if all required parameters are supplied, else false.
*/
public static function new_user_notification ($user_id = 0, $user_pass = '', $notify = array('user', 'admin'), $user_email = '')
{
foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;
do_action('ws_plugin__s2member_before_new_user_notification', get_defined_vars ());
unset($__refs, $__v); // Housekeeping.
$user_id = (integer)$user_id;
$user_pass = (string)$user_pass;
$notify = (array)$notify;
$user_email = (string)$user_email;
if(!$user_pass && !empty($GLOBALS['ws_plugin__s2member_plain_text_pass']))
$user_pass = (string)$GLOBALS['ws_plugin__s2member_plain_text_pass'];
if ($user_id && ($user = new WP_User($user_id)) && !empty($user->ID) && ($user_id = $user->ID) && $notify)
{
$is_gte_wp43 = version_compare(get_bloginfo('version'), '4.3', '>=');
$email_configs_were_on = c_ws_plugin__s2member_email_configs::email_config_status ();
c_ws_plugin__s2member_email_configs::email_config_release ();
if (in_array('user', $notify, true)
// Exclude custom password generated via `wp-login.php` or BP.
&& empty($GLOBALS['ws_plugin__s2member_custom_wp_login_bp_password'])
&& ( // One of these conditions must be true.
($user_pass && stripos($GLOBALS['WS_PLUGIN__']['s2member']['o']['new_user_email_message'], '%%user_pass%%') !== false)
|| ($is_gte_wp43 && stripos($GLOBALS['WS_PLUGIN__']['s2member']['o']['new_user_email_message'], '%%wp_set_pass_url%%') !== false)
|| ($is_gte_wp43 && stripos(($GLOBALS['WS_PLUGIN__']['s2member']['o']['new_user_email_message'] = sprintf(_x("Your Username/Password for:\n%s\n\nUsername: %%%%user_login%%%%\nTo set your password, visit: %%%%wp_set_pass_url%%%%\n\n%%%%wp_login_url%%%%", 's2member-front', 's2member'), get_bloginfo('name'))), '%%wp_set_pass_url%%') !== false)
)
) {
if($is_gte_wp43 && stripos($GLOBALS['WS_PLUGIN__']['s2member']['o']['new_user_email_message'], '%%wp_set_pass_url%%') !== false)
{
remove_filter('random_password', 'c_ws_plugin__s2member_registrations::generate_password');
$user_activation_key = wp_generate_password(20, false); // ↑ Make sure it's w/o filter.
do_action('retrieve_password_key', $user->user_login, $user_activation_key);
if(!class_exists('PasswordHash'))
require_once ABSPATH.WPINC.'/class-phpass.php';
$wp_hasher = new PasswordHash(8, true);
$user_activation_key_hash = time().':'.$wp_hasher->HashPassword($user_activation_key);
$GLOBALS['wpdb']->update($GLOBALS['wpdb']->users, array('user_activation_key' => $user_activation_key_hash), array('user_login' => $user->user_login));
$wp_set_pass_url_args = array(
'action' => 'rp',
'key' => $user_activation_key,
'login' => $user->user_login,
);
$wp_set_pass_url = add_query_arg(urlencode_deep($wp_set_pass_url_args), wp_login_url());
}
else $wp_set_pass_url = wp_lostpassword_url(); // Default behavior; and older versions of WordPress.
$fields = get_user_option ('s2member_custom_fields', $user_id);
$custom = get_user_option ('s2member_custom', $user_id);
$role = c_ws_plugin__s2member_user_access::user_access_role($user);
$label = c_ws_plugin__s2member_user_access::user_access_label($user);
$level = c_ws_plugin__s2member_user_access::user_access_level($user);
$ccaps = implode(',', c_ws_plugin__s2member_user_access::user_access_ccaps($user));
$user->user_email = ($user_email) ? $user_email : $user->user_email;
$user_full_name = trim ($user->first_name . ' ' . $user->last_name);
$user_ip = c_ws_plugin__s2member_utils_ip::current();
//251228 Sanitize values before replacements.
foreach (array('user_ip', 'user_pass', 'wp_set_pass_url', 'fields', 'custom', 'user_full_name', 'ccaps') as $_var) {
if (isset($$_var)) {
$$_var = c_ws_plugin__s2member_utils_strings::strip_php_tags_deep($$_var);
}
}
foreach (array('first_name','last_name','user_email','user_login') as $_var) {
if (isset($user->$_var)) {
$user->$_var = c_ws_plugin__s2member_utils_strings::strip_php_tags_deep($user->$_var);
}
}
if (($sbj = $GLOBALS['WS_PLUGIN__']['s2member']['o']['new_user_email_subject']))
if (($sbj = c_ws_plugin__s2member_utils_strings::fill_cvs($sbj, $custom)))
if (($sbj = preg_replace ('/%%wp_set_pass_url%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($wp_set_pass_url), $sbj)))
if (($sbj = preg_replace ('/%%wp_login_url%%/i', c_ws_plugin__s2member_utils_strings::esc_refs (wp_login_url ()), $sbj)))
if (($sbj = preg_replace ('/%%role%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($role), $sbj)))
if (($sbj = preg_replace ('/%%label%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($label), $sbj)))
if (($sbj = preg_replace ('/%%level%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($level), $sbj)))
if (($sbj = preg_replace ('/%%ccaps%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($ccaps), $sbj)))
if (($sbj = preg_replace ('/%%user_first_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($user->first_name), $sbj)))
if (($sbj = preg_replace ('/%%user_last_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($user->last_name), $sbj)))
if (($sbj = preg_replace ('/%%user_full_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($user_full_name), $sbj)))
if (($sbj = preg_replace ('/%%user_email%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($user->user_email), $sbj)))
if (($sbj = preg_replace ('/%%user_login%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($user->user_login), $sbj)))
if (($sbj = preg_replace ('/%%user_pass%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($user_pass), $sbj)))
if (($sbj = preg_replace ('/%%user_ip%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($user_ip), $sbj)))
if (($sbj = preg_replace ('/%%user_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($user_id), $sbj)))
{
if (is_array($fields) && !empty($fields))
foreach ($fields as $var => $val) // Custom Registration/Profile Fields.
if (!($sbj = preg_replace ('/%%' . preg_quote ($var, '/') . '%%/i', c_ws_plugin__s2member_utils_strings::esc_refs (maybe_serialize ($val)), $sbj)))
break; // Empty; we can stop here.
if (($msg = $GLOBALS['WS_PLUGIN__']['s2member']['o']['new_user_email_message']))
if (($msg = c_ws_plugin__s2member_utils_strings::fill_cvs($msg, $custom)))
if (($msg = preg_replace ('/%%wp_set_pass_url%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($wp_set_pass_url), $msg)))
if (($msg = preg_replace ('/%%wp_login_url%%/i', c_ws_plugin__s2member_utils_strings::esc_refs (wp_login_url ()), $msg)))
if (($msg = preg_replace ('/%%role%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($role), $msg)))
if (($msg = preg_replace ('/%%label%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($label), $msg)))
if (($msg = preg_replace ('/%%level%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($level), $msg)))
if (($msg = preg_replace ('/%%ccaps%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($ccaps), $msg)))
if (($msg = preg_replace ('/%%user_first_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($user->first_name), $msg)))
if (($msg = preg_replace ('/%%user_last_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($user->last_name), $msg)))
if (($msg = preg_replace ('/%%user_full_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($user_full_name), $msg)))
if (($msg = preg_replace ('/%%user_email%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($user->user_email), $msg)))
if (($msg = preg_replace ('/%%user_login%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($user->user_login), $msg)))
if (($msg = preg_replace ('/%%user_pass%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($user_pass), $msg)))
if (($msg = preg_replace ('/%%user_ip%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($user_ip), $msg)))
if (($msg = preg_replace ('/%%user_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($user_id), $msg)))
{
if (is_array($fields) && !empty($fields))
foreach ($fields as $var => $val) // Custom Registration/Profile Fields.
if (!($msg = preg_replace ('/%%' . preg_quote ($var, '/') . '%%/i', c_ws_plugin__s2member_utils_strings::esc_refs (maybe_serialize ($val)), $msg)))
break; // Empty; we can stop here.
if (($sbj = trim (preg_replace ('/%%(.+?)%%/i', '', $sbj))) && ($msg = trim (preg_replace ('/%%(.+?)%%/i', '', $msg))))
{
if (!is_multisite () || !c_ws_plugin__s2member_utils_conds::is_multisite_farm () || is_main_site ())
{
$sbj = c_ws_plugin__s2member_utilities::evl($sbj, get_defined_vars());
$msg = c_ws_plugin__s2member_utilities::evl($msg, get_defined_vars());
}
//250617 HTML email support.
if (empty($GLOBALS['WS_PLUGIN__']['s2member']['o']['html_emails_enabled'])) {
c_ws_plugin__s2member_email_configs::email_config () . wp_mail ($user->user_email, apply_filters('ws_plugin__s2member_welcome_email_sbj', $sbj, get_defined_vars()), apply_filters('ws_plugin__s2member_welcome_email_msg', $msg, get_defined_vars()), 'From: "' . preg_replace ('/"/', "'", $GLOBALS['WS_PLUGIN__']['s2member']['o']['reg_email_from_name']) . '" <' . $GLOBALS['WS_PLUGIN__']['s2member']['o']['reg_email_from_email'] . '>'."\r\n".'Content-Type: text/plain; charset=UTF-8') . c_ws_plugin__s2member_email_configs::email_config_release ();;
} else {
c_ws_plugin__s2member_utilities::mail($user->user_email, apply_filters('ws_plugin__s2member_welcome_email_sbj', $sbj, get_defined_vars()), apply_filters('ws_plugin__s2member_welcome_email_msg', $msg, get_defined_vars()));
}
}
}
}
}
if (in_array('admin', $notify, true) && $GLOBALS['WS_PLUGIN__']['s2member']['o']['new_user_admin_email_recipients'])
{
$fields = get_user_option ('s2member_custom_fields', $user_id);
$custom = get_user_option ('s2member_custom', $user_id);
$role = c_ws_plugin__s2member_user_access::user_access_role($user);
$label = c_ws_plugin__s2member_user_access::user_access_label($user);
$level = c_ws_plugin__s2member_user_access::user_access_level($user);
$ccaps = implode(',', c_ws_plugin__s2member_user_access::user_access_ccaps($user));
$user->user_email = ($user_email) ? $user_email : $user->user_email;
$user_full_name = trim ($user->first_name . ' ' . $user->last_name);
$user_ip = c_ws_plugin__s2member_utils_ip::current();
//251228 Sanitize values before replacements.
foreach (array('user_ip', 'user_pass', 'wp_set_pass_url', 'fields', 'custom', 'user_full_name', 'ccaps') as $_var) {
if (isset($$_var)) {
$$_var = c_ws_plugin__s2member_utils_strings::strip_php_tags_deep($$_var);
}
}
foreach (array('first_name','last_name','user_email','user_login') as $_var) {
if (isset($user->$_var)) {
$user->$_var = c_ws_plugin__s2member_utils_strings::strip_php_tags_deep($user->$_var);
}
}
if (($rec = $GLOBALS['WS_PLUGIN__']['s2member']['o']['new_user_admin_email_recipients']))
if (($rec = c_ws_plugin__s2member_utils_strings::fill_cvs($rec, $custom)))
if (($rec = preg_replace ('/%%wp_login_url%%/i', c_ws_plugin__s2member_utils_strings::esc_refs (wp_login_url ()), $rec)))
if (($rec = preg_replace ('/%%role%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($role), $rec)))
if (($rec = preg_replace ('/%%label%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($label), $rec)))
if (($rec = preg_replace ('/%%level%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($level), $rec)))
if (($rec = preg_replace ('/%%ccaps%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($ccaps), $rec)))
if (($rec = preg_replace ('/%%user_first_name%%/i', c_ws_plugin__s2member_utils_strings::esc_dq (c_ws_plugin__s2member_utils_strings::esc_refs ($user->first_name)), $rec)))
if (($rec = preg_replace ('/%%user_last_name%%/i', c_ws_plugin__s2member_utils_strings::esc_dq (c_ws_plugin__s2member_utils_strings::esc_refs ($user->last_name)), $rec)))
if (($rec = preg_replace ('/%%user_full_name%%/i', c_ws_plugin__s2member_utils_strings::esc_dq (c_ws_plugin__s2member_utils_strings::esc_refs ($user_full_name)), $rec)))
if (($rec = preg_replace ('/%%user_email%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($user->user_email), $rec)))
if (($rec = preg_replace ('/%%user_login%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($user->user_login), $rec)))
if (($rec = preg_replace ('/%%user_pass%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($user_pass), $rec)))
if (($rec = preg_replace ('/%%user_ip%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($user_ip), $rec)))
if (($rec = preg_replace ('/%%user_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($user_id), $rec)))
{
if (is_array($fields) && !empty($fields))
foreach ($fields as $var => $val) // Custom Registration/Profile Fields.
if (!($rec = preg_replace ('/%%' . preg_quote ($var, '/') . '%%/i', c_ws_plugin__s2member_utils_strings::esc_refs (maybe_serialize ($val)), $rec)))
break; // Empty; we can stop here.
if (($sbj = $GLOBALS['WS_PLUGIN__']['s2member']['o']['new_user_admin_email_subject']))
if (($sbj = c_ws_plugin__s2member_utils_strings::fill_cvs($sbj, $custom)))
if (($sbj = preg_replace ('/%%wp_login_url%%/i', c_ws_plugin__s2member_utils_strings::esc_refs (wp_login_url ()), $sbj)))
if (($sbj = preg_replace ('/%%role%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($role), $sbj)))
if (($sbj = preg_replace ('/%%label%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($label), $sbj)))
if (($sbj = preg_replace ('/%%level%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($level), $sbj)))
if (($sbj = preg_replace ('/%%ccaps%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($ccaps), $sbj)))
if (($sbj = preg_replace ('/%%user_first_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($user->first_name), $sbj)))
if (($sbj = preg_replace ('/%%user_last_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($user->last_name), $sbj)))
if (($sbj = preg_replace ('/%%user_full_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($user_full_name), $sbj)))
if (($sbj = preg_replace ('/%%user_email%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($user->user_email), $sbj)))
if (($sbj = preg_replace ('/%%user_login%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($user->user_login), $sbj)))
if (($sbj = preg_replace ('/%%user_pass%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($user_pass), $sbj)))
if (($sbj = preg_replace ('/%%user_ip%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($user_ip), $sbj)))
if (($sbj = preg_replace ('/%%user_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($user_id), $sbj)))
{
if (is_array($fields) && !empty($fields))
foreach ($fields as $var => $val) // Custom Registration/Profile Fields.
if (!($sbj = preg_replace ('/%%' . preg_quote ($var, '/') . '%%/i', c_ws_plugin__s2member_utils_strings::esc_refs (maybe_serialize ($val)), $sbj)))
break; // Empty; we can stop here.
if (($msg = $GLOBALS['WS_PLUGIN__']['s2member']['o']['new_user_admin_email_message']))
if (($msg = c_ws_plugin__s2member_utils_strings::fill_cvs($msg, $custom)))
if (($msg = preg_replace ('/%%wp_login_url%%/i', c_ws_plugin__s2member_utils_strings::esc_refs (wp_login_url ()), $msg)))
if (($msg = preg_replace ('/%%role%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($role), $msg)))
if (($msg = preg_replace ('/%%label%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($label), $msg)))
if (($msg = preg_replace ('/%%level%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($level), $msg)))
if (($msg = preg_replace ('/%%ccaps%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($ccaps), $msg)))
if (($msg = preg_replace ('/%%user_first_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($user->first_name), $msg)))
if (($msg = preg_replace ('/%%user_last_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($user->last_name), $msg)))
if (($msg = preg_replace ('/%%user_full_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($user_full_name), $msg)))
if (($msg = preg_replace ('/%%user_email%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($user->user_email), $msg)))
if (($msg = preg_replace ('/%%user_login%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($user->user_login), $msg)))
if (($msg = preg_replace ('/%%user_pass%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($user_pass), $msg)))
if (($msg = preg_replace ('/%%user_ip%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($user_ip), $msg)))
if (($msg = preg_replace ('/%%user_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($user_id), $msg)))
{
if (is_array($fields) && !empty($fields))
foreach ($fields as $var => $val) // Custom Registration/Profile Fields.
if (!($msg = preg_replace ('/%%' . preg_quote ($var, '/') . '%%/i', c_ws_plugin__s2member_utils_strings::esc_refs (maybe_serialize ($val)), $msg)))
break; // Empty; we can stop here.
if (($rec = trim (preg_replace ('/%%(.+?)%%/i', '', $rec))) && ($sbj = trim (preg_replace ('/%%(.+?)%%/i', '', $sbj))) && ($msg = trim (preg_replace ('/%%(.+?)%%/i', '', $msg))))
{
if (!is_multisite () || !c_ws_plugin__s2member_utils_conds::is_multisite_farm () || is_main_site ())
{
$rec = c_ws_plugin__s2member_utilities::evl($rec, get_defined_vars());
$sbj = c_ws_plugin__s2member_utilities::evl($sbj, get_defined_vars());
$msg = c_ws_plugin__s2member_utilities::evl($msg, get_defined_vars());
}
foreach (c_ws_plugin__s2member_utils_strings::parse_emails ($rec) as $recipient) // A list of receipients.
{
//250617 HTML email support.
if (empty($GLOBALS['WS_PLUGIN__']['s2member']['o']['html_emails_enabled'])) {
wp_mail ($recipient, apply_filters('ws_plugin__s2member_admin_new_user_email_sbj', $sbj, get_defined_vars()), apply_filters('ws_plugin__s2member_admin_new_user_email_msg', $msg, get_defined_vars()), 'Content-Type: text/plain; charset=UTF-8');
} else {
c_ws_plugin__s2member_utilities::mail($recipient, apply_filters('ws_plugin__s2member_admin_new_user_email_sbj', $sbj, get_defined_vars()), apply_filters('ws_plugin__s2member_admin_new_user_email_msg', $msg, get_defined_vars()));
}
}
}
}
}
}
}
if ($email_configs_were_on) // Restore?
c_ws_plugin__s2member_email_configs::email_config();
return apply_filters('ws_plugin__s2member_new_user_notification', true, get_defined_vars ());
}
return apply_filters('ws_plugin__s2member_new_user_notification', false, get_defined_vars ());
}
}
}