`.
*
* These Filters are only needed during registration.
*
* @package s2Member\Email_Configs
* @since 3.5
*
* @return null
*/
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 ());
/**/
return; /* Return for uniformity. */
}
/**
* 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 str $email Expects the email address to be passed in by the Filter.
* @return str s2Member-configured email address.
*/
public static function _email_config_email ($email = FALSE)
{
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 str $name Expects the name to be passed in by the Filter.
* @return str s2Member-configured name.
*/
public static function _email_config_name ($name = FALSE)
{
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.
* @return null
*/
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 ());
/**/
return; /* Return for uniformity. */
}
/**
* 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 str $message Expects the message string to be passed in by the Filter.
* @return str Message after having been Filtered by s2Member.
*/
public static function ms_nice_email_roles ($message = FALSE)
{
eval ('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); /* Unset defined __refs, __v. */
/**/
$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 = FALSE)
{
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 ());
}
/**
* Handles new User/Member notifications.
*
* @package s2Member\Email_Configs
* @since 110707
*
* @param str|int $user_id A numeric WordPress® User ID.
* @param str $user_pass Optional. A plain text version of the User's password.
* If omitted, only the administrative notification will be sent.
* @param array $notify An array of directives. Must be non-empty, with at least one of these values `user,admin`.
* @return bool True if all required parameters are supplied, else false.
*/
public static function new_user_notification ($user_id = FALSE, $user_pass = FALSE, $notify = array ("user", "admin"))
{
eval ('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); /* Unset defined __refs, __v. */
/**/
if ($user_id && ($user = new WP_User ($user_id)) && !empty ($user->ID) && ($user_id = $user->ID) && is_array ($notify) && !empty ($notify))
{
$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) && $user_pass) /* Send User a notification? */
{
$fields = get_user_option ("s2member_custom_fields", $user_id);
$cv = preg_split ("/\|/", get_user_option ("s2member_custom", $user_id));
$user_full_name = trim ($user->first_name . " " . $user->last_name);
$user_ip = $_SERVER["REMOTE_ADDR"];
/**/
if (($sbj = $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["new_user_email_subject"]))
if (($sbj = preg_replace ("/%%cv([0-9]+)%%/ei", 'trim($cv[$1])', $sbj)))
if (($sbj = preg_replace ("/%%wp_login_url%%/i", c_ws_plugin__s2member_utils_strings::esc_ds (wp_login_url ()), $sbj)))
if (($sbj = preg_replace ("/%%user_first_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user->first_name), $sbj)))
if (($sbj = preg_replace ("/%%user_last_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user->last_name), $sbj)))
if (($sbj = preg_replace ("/%%user_full_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user_full_name), $sbj)))
if (($sbj = preg_replace ("/%%user_email%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user->user_email), $sbj)))
if (($sbj = preg_replace ("/%%user_login%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user->user_login), $sbj)))
if (($sbj = preg_replace ("/%%user_pass%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user_pass), $sbj)))
if (($sbj = preg_replace ("/%%user_ip%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user_ip), $sbj)))
if (($sbj = preg_replace ("/%%user_id%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($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_ds (maybe_serialize ($val)), $sbj)))
break;
/**/
if (($msg = $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["new_user_email_message"]))
if (($msg = preg_replace ("/%%cv([0-9]+)%%/ei", 'trim($cv[$1])', $msg)))
if (($msg = preg_replace ("/%%wp_login_url%%/i", c_ws_plugin__s2member_utils_strings::esc_ds (wp_login_url ()), $msg)))
if (($msg = preg_replace ("/%%user_first_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user->first_name), $msg)))
if (($msg = preg_replace ("/%%user_last_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user->last_name), $msg)))
if (($msg = preg_replace ("/%%user_full_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user_full_name), $msg)))
if (($msg = preg_replace ("/%%user_email%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user->user_email), $msg)))
if (($msg = preg_replace ("/%%user_login%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user->user_login), $msg)))
if (($msg = preg_replace ("/%%user_pass%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user_pass), $msg)))
if (($msg = preg_replace ("/%%user_ip%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user_ip), $msg)))
if (($msg = preg_replace ("/%%user_id%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($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_ds (maybe_serialize ($val)), $msg)))
break;
/**/
if (($sbj = trim (preg_replace ("/%%(.+?)%%/i", "", $sbj))) && ($msg = trim (preg_replace ("/%%(.+?)%%/i", "", $msg)))) /* Still have a ``$sbj`` and a ``$msg``? */
/**/
c_ws_plugin__s2member_email_configs::email_config () . wp_mail ($user->user_email, $sbj, $msg, "From: \"" . preg_replace ('/"/', "'", $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["reg_email_from_name"]) . "\" <" . $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["reg_email_from_email"] . ">\r\nContent-Type: text/plain; charset=utf-8") . c_ws_plugin__s2member_email_configs::email_config_release ();
}
}
}
/**/
if (in_array ("admin", $notify)) /* Send Admin(s) a notification? */
if ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["new_user_admin_email_recipients"])
{
$fields = get_user_option ("s2member_custom_fields", $user_id);
$cv = preg_split ("/\|/", get_user_option ("s2member_custom", $user_id));
$user_full_name = trim ($user->first_name . " " . $user->last_name);
$user_ip = $_SERVER["REMOTE_ADDR"];
/**/
if (($rec = $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["new_user_admin_email_recipients"]))
if (($rec = preg_replace ("/%%cv([0-9]+)%%/ei", 'trim($cv[$1])', $rec)))
if (($rec = preg_replace ("/%%wp_login_url%%/i", c_ws_plugin__s2member_utils_strings::esc_ds (wp_login_url ()), $rec)))
if (($rec = preg_replace ("/%%user_first_name%%/i", c_ws_plugin__s2member_utils_strings::esc_dq (c_ws_plugin__s2member_utils_strings::esc_ds ($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_ds ($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_ds ($user_full_name)), $rec)))
if (($rec = preg_replace ("/%%user_email%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user->user_email), $rec)))
if (($rec = preg_replace ("/%%user_login%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user->user_login), $rec)))
if (($rec = preg_replace ("/%%user_pass%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user_pass), $rec)))
if (($rec = preg_replace ("/%%user_ip%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user_ip), $rec)))
if (($rec = preg_replace ("/%%user_id%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($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_ds (maybe_serialize ($val)), $rec)))
break;
/**/
if (($sbj = $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["new_user_admin_email_subject"]))
if (($sbj = preg_replace ("/%%cv([0-9]+)%%/ei", 'trim($cv[$1])', $sbj)))
if (($sbj = preg_replace ("/%%wp_login_url%%/i", c_ws_plugin__s2member_utils_strings::esc_ds (wp_login_url ()), $sbj)))
if (($sbj = preg_replace ("/%%user_first_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user->first_name), $sbj)))
if (($sbj = preg_replace ("/%%user_last_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user->last_name), $sbj)))
if (($sbj = preg_replace ("/%%user_full_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user_full_name), $sbj)))
if (($sbj = preg_replace ("/%%user_email%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user->user_email), $sbj)))
if (($sbj = preg_replace ("/%%user_login%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user->user_login), $sbj)))
if (($sbj = preg_replace ("/%%user_pass%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user_pass), $sbj)))
if (($sbj = preg_replace ("/%%user_ip%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user_ip), $sbj)))
if (($sbj = preg_replace ("/%%user_id%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($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_ds (maybe_serialize ($val)), $sbj)))
break;
/**/
if (($msg = $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["new_user_admin_email_message"]))
if (($msg = preg_replace ("/%%cv([0-9]+)%%/ei", 'trim($cv[$1])', $msg)))
if (($msg = preg_replace ("/%%wp_login_url%%/i", c_ws_plugin__s2member_utils_strings::esc_ds (wp_login_url ()), $msg)))
if (($msg = preg_replace ("/%%user_first_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user->first_name), $msg)))
if (($msg = preg_replace ("/%%user_last_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user->last_name), $msg)))
if (($msg = preg_replace ("/%%user_full_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user_full_name), $msg)))
if (($msg = preg_replace ("/%%user_email%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user->user_email), $msg)))
if (($msg = preg_replace ("/%%user_login%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user->user_login), $msg)))
if (($msg = preg_replace ("/%%user_pass%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user_pass), $msg)))
if (($msg = preg_replace ("/%%user_ip%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user_ip), $msg)))
if (($msg = preg_replace ("/%%user_id%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($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_ds (maybe_serialize ($val)), $msg)))
break;
/**/
if (($rec = trim (preg_replace ("/%%(.+?)%%/i", "", $rec))) && ($sbj = trim (preg_replace ("/%%(.+?)%%/i", "", $sbj))) && ($msg = trim (preg_replace ("/%%(.+?)%%/i", "", $msg))))
{
foreach (c_ws_plugin__s2member_utils_strings::parse_emails ($rec) as $recipient) /* A possible list of recipients. */
wp_mail ($recipient, $sbj, $msg, "Content-Type: text/plain; charset=utf-8");
}
}
}
}
}
/**/
if ($email_configs_were_on) /* Back on? */
c_ws_plugin__s2member_email_configs::email_config ();
/**/
return apply_filters ("ws_plugin__s2member_new_user_notification", true, get_defined_vars ());
}
else
return apply_filters ("ws_plugin__s2member_new_user_notification", false, get_defined_vars ());
}
}
}
?>