PageRenderTime 30ms CodeModel.GetById 1ms RepoModel.GetById 0ms app.codeStats 0ms

/wp-content/plugins/s2member/includes/classes/email-configs.inc.php

https://gitlab.com/Gashler/dp
PHP | 401 lines | 240 code | 35 blank | 126 comment | 131 complexity | 373ab3a2ed0089691e3208f3874537a1 MD5 | raw file
  1. <?php
  2. /**
  3. * Email configurations for s2Member.
  4. *
  5. * Copyright: © 2009-2011
  6. * {@link http://www.websharks-inc.com/ WebSharks, Inc.}
  7. * (coded in the USA)
  8. *
  9. * Released under the terms of the GNU General Public License.
  10. * You should have received a copy of the GNU General Public License,
  11. * along with this software. In the main directory, see: /licensing/
  12. * If not, see: {@link http://www.gnu.org/licenses/}.
  13. *
  14. * @package s2Member\Email_Configs
  15. * @since 3.5
  16. */
  17. if (realpath (__FILE__) === realpath ($_SERVER["SCRIPT_FILENAME"]))
  18. exit ("Do not access this file directly.");
  19. if (!class_exists ("c_ws_plugin__s2member_email_configs"))
  20. {
  21. /**
  22. * Email configurations for s2Member.
  23. *
  24. * @package s2Member\Email_Configs
  25. * @since 3.5
  26. */
  27. class c_ws_plugin__s2member_email_configs
  28. {
  29. /**
  30. * Modifies email From: `"Name" <address>`.
  31. *
  32. * These Filters are only needed during registration.
  33. *
  34. * @package s2Member\Email_Configs
  35. * @since 3.5
  36. *
  37. * @return null
  38. */
  39. public static function email_config ()
  40. {
  41. do_action ("ws_plugin__s2member_before_email_config", get_defined_vars ());
  42. c_ws_plugin__s2member_email_configs::email_config_release ();
  43. add_filter ("wp_mail_from", "c_ws_plugin__s2member_email_configs::_email_config_email");
  44. add_filter ("wp_mail_from_name", "c_ws_plugin__s2member_email_configs::_email_config_name");
  45. do_action ("ws_plugin__s2member_after_email_config", get_defined_vars ());
  46. return /* Return for uniformity. */;
  47. }
  48. /**
  49. * A sort of callback function that applies the email Filter.
  50. *
  51. * @package s2Member\Email_Configs
  52. * @since 3.5
  53. *
  54. * @attaches-to ``add_filter("wp_mail_from");``
  55. *
  56. * @param str $email Expects the email address to be passed in by the Filter.
  57. * @return str s2Member-configured email address.
  58. */
  59. public static function _email_config_email ($email = FALSE)
  60. {
  61. do_action ("_ws_plugin__s2member_before_email_config_email", get_defined_vars ());
  62. return apply_filters ("_ws_plugin__s2member_email_config_email", $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["reg_email_from_email"], get_defined_vars ());
  63. }
  64. /**
  65. * A sort of callback function that applies the name Filter.
  66. *
  67. * @package s2Member\Email_Configs
  68. * @since 3.5
  69. *
  70. * @attaches-to ``add_filter("wp_mail_from_name");``
  71. *
  72. * @param str $name Expects the name to be passed in by the Filter.
  73. * @return str s2Member-configured name.
  74. */
  75. public static function _email_config_name ($name = FALSE)
  76. {
  77. do_action ("_ws_plugin__s2member_before_email_config_name", get_defined_vars ());
  78. return apply_filters ("_ws_plugin__s2member_email_config_name", $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["reg_email_from_name"], get_defined_vars ());
  79. }
  80. /**
  81. * Checks the status of Filters being applied to the email From: "Name" <address>.
  82. *
  83. * @package s2Member\Email_Configs
  84. * @since 3.5
  85. *
  86. * @param bool $any Optional. Defaults to false. If true, return true if ANY Filters are being applied, not just those applied by s2Member.
  87. * @return bool True if Filters are being applied, else false.
  88. */
  89. public static function email_config_status ($any = FALSE)
  90. {
  91. do_action ("ws_plugin__s2member_before_email_config_status", get_defined_vars ());
  92. 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"))
  93. return apply_filters ("ws_plugin__s2member_email_config_status", true, get_defined_vars ());
  94. else if ($any && (has_filter ("wp_mail_from") || has_filter ("wp_mail_from_name")))
  95. return apply_filters ("ws_plugin__s2member_email_config_status", true, get_defined_vars ());
  96. return apply_filters ("ws_plugin__s2member_email_config_status", false, get_defined_vars ());
  97. }
  98. /**
  99. * Releases Filters that modify the email From: "Name" <address>.
  100. *
  101. * @package s2Member\Email_Configs
  102. * @since 3.5
  103. *
  104. * @param bool $all Optional. Defaults to false. If true, remove ALL Filters, not just those applied by s2Member.
  105. * @return null
  106. */
  107. public static function email_config_release ($all = FALSE)
  108. {
  109. do_action ("ws_plugin__s2member_before_email_config_release", get_defined_vars ());
  110. remove_filter ("wp_mail_from", "c_ws_plugin__s2member_email_configs::_email_config_email");
  111. remove_filter ("wp_mail_from_name", "c_ws_plugin__s2member_email_configs::_email_config_name");
  112. if /* If ``$all`` is true, remove ALL attached WordPress® Filters. */ ($all)
  113. remove_all_filters ("wp_mail_from") . remove_all_filters ("wp_mail_from_name");
  114. do_action ("ws_plugin__s2member_after_email_config_release", get_defined_vars ());
  115. return /* Return for uniformity. */;
  116. }
  117. /**
  118. * Converts primitive Role names in emails sent by WordPress®.
  119. *
  120. * Only necessary with this particular email: `wpmu_signup_user_notification_email`.
  121. *
  122. * @package s2Member\Email_Configs
  123. * @since 3.5
  124. *
  125. * @attaches-to ``add_filter("wpmu_signup_user_notification_email");``
  126. *
  127. * @param str $message Expects the message string to be passed in by the Filter.
  128. * @return str Message after having been Filtered by s2Member.
  129. */
  130. public static function ms_nice_email_roles ($message = FALSE)
  131. {
  132. foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;
  133. do_action ("ws_plugin__s2member_before_ms_nice_email_roles", get_defined_vars ());
  134. unset /* Unset defined __refs, __v. */ ($__refs, $__v);
  135. $message = preg_replace ("/ as a (subscriber|s2member_level[0-9]+)/i", " " . _x ("as a Member", "s2member-front", "s2member"), $message);
  136. return apply_filters ("ws_plugin__s2member_ms_nice_email_roles", $message, get_defined_vars ());
  137. }
  138. /**
  139. * Filters email addresses passed to ``wp_mail()``.
  140. *
  141. * @package s2Member\Email_Configs
  142. * @since 3.5
  143. *
  144. * @attaches-to ``add_filter("wp_mail");``
  145. * @uses {@link s2Member\Utilities\c_ws_plugin__s2member_utils_strings::parse_emails()}
  146. *
  147. * @param array $array Expects an array passed through by the Filter.
  148. * @return array Returns the array passed through by the Filter.
  149. */
  150. public static function email_filter ($array = FALSE)
  151. {
  152. if (isset ($array["to"]) && !empty ($array["to"])) // Filter list of recipients?
  153. // Reduces `"Name" <email>`, to just an email address *(for best cross-platform compatibility across various MTAs)*.
  154. // Also works around bug in PHP versions prior to fix in 5.2.11. See bug report: <https://bugs.php.net/bug.php?id=28038>.
  155. // Also supplements WordPress®. WordPress® currently does NOT support semicolon `;` delimitation, s2Member does.
  156. $array["to"] = implode (",", c_ws_plugin__s2member_utils_strings::parse_emails ($array["to"]));
  157. return apply_filters ("ws_plugin__s2member_after_email_filter", $array, get_defined_vars ());
  158. }
  159. /**
  160. * Resets a User/Member password and resends the New User Notification email message (to the User/Member only).
  161. *
  162. * @package s2Member\Email_Configs
  163. * @since 110707
  164. *
  165. * @param str|int $user_id A numeric WordPress® User ID.
  166. * @param str $user_pass Optional. A plain text version of the User's password.
  167. * If omitted, a new password will be generated automatically.
  168. * @param array $notify An array of directives. Must be non-empty, with at least one of these values `user,admin`.
  169. * This defaults to a value of `array('user')`. We notify the User/Member only (and NOT the administrator).
  170. * @param str $user_email Optional. This defaults to the user's currently configured email address.
  171. * @return bool True if all required parameters are supplied, else false.
  172. */
  173. public static function reset_pass_resend_new_user_notification ($user_id = FALSE, $user_pass = FALSE, $notify = array ("user"), $user_email = FALSE)
  174. {
  175. foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;
  176. do_action ("ws_plugin__s2member_before_reset_pass_resend_new_user_notification", get_defined_vars ());
  177. unset /* Unset defined __refs, __v. */ ($__refs, $__v);
  178. if ($user_id && ($user = new WP_User ($user_id)) && !empty ($user->ID) && ($user_id = $user->ID) && is_array ($notify) && !empty ($notify))
  179. {
  180. $user_pass = (is_string($user_pass) && $user_pass) ? $user_pass : wp_generate_password();
  181. wp_set_password($user_pass, $user_id);
  182. $return = c_ws_plugin__s2member_email_configs::new_user_notification($user_id, $user_pass, $notify, $user_email);
  183. }
  184. return apply_filters ("ws_plugin__s2member_reset_pass_resend_new_user_notification", ((!empty($return)) ? true : false), get_defined_vars ());
  185. }
  186. /**
  187. * Handles new User/Member notifications.
  188. *
  189. * @package s2Member\Email_Configs
  190. * @since 110707
  191. *
  192. * @param str|int $user_id A numeric WordPress® User ID.
  193. * @param str $user_pass Optional. A plain text version of the User's password.
  194. * If omitted, only the administrative notification will be sent.
  195. * @param array $notify An array of directives. Must be non-empty, with at least one of these values `user,admin`.
  196. * @param str $user_email Optional. This defaults to the user's currently configured email address.
  197. * @return bool True if all required parameters are supplied, else false.
  198. */
  199. public static function new_user_notification ($user_id = FALSE, $user_pass = FALSE, $notify = array ("user", "admin"), $user_email = FALSE)
  200. {
  201. foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;
  202. do_action ("ws_plugin__s2member_before_new_user_notification", get_defined_vars ());
  203. unset /* Unset defined __refs, __v. */ ($__refs, $__v);
  204. if ($user_id && ($user = new WP_User ($user_id)) && !empty ($user->ID) && ($user_id = $user->ID) && is_array ($notify) && !empty ($notify))
  205. {
  206. $email_configs_were_on = c_ws_plugin__s2member_email_configs::email_config_status ();
  207. c_ws_plugin__s2member_email_configs::email_config_release ();
  208. if /* Send User a notification? */ (in_array ("user", $notify) && $user_pass)
  209. {
  210. $fields = get_user_option ("s2member_custom_fields", $user_id);
  211. $cv = preg_split ("/\|/", get_user_option ("s2member_custom", $user_id));
  212. $role = c_ws_plugin__s2member_user_access::user_access_role($user);
  213. $label = c_ws_plugin__s2member_user_access::user_access_label($user);
  214. $level = c_ws_plugin__s2member_user_access::user_access_level($user);
  215. $ccaps = implode(",", c_ws_plugin__s2member_user_access::user_access_ccaps($user));
  216. $user->user_email = ($user_email) ? $user_email : $user->user_email;
  217. $user_full_name = trim ($user->first_name . " " . $user->last_name);
  218. $user_ip = $_SERVER["REMOTE_ADDR"];
  219. if (($sbj = $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["new_user_email_subject"]))
  220. if (($sbj = preg_replace ("/%%cv([0-9]+)%%/ei", 'trim($cv[$1])', $sbj)))
  221. if (($sbj = preg_replace ("/%%wp_login_url%%/i", c_ws_plugin__s2member_utils_strings::esc_ds (wp_login_url ()), $sbj)))
  222. if (($sbj = preg_replace ("/%%role%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($role), $sbj)))
  223. if (($sbj = preg_replace ("/%%label%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($label), $sbj)))
  224. if (($sbj = preg_replace ("/%%level%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($level), $sbj)))
  225. if (($sbj = preg_replace ("/%%ccaps%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($ccaps), $sbj)))
  226. if (($sbj = preg_replace ("/%%user_first_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user->first_name), $sbj)))
  227. if (($sbj = preg_replace ("/%%user_last_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user->last_name), $sbj)))
  228. if (($sbj = preg_replace ("/%%user_full_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user_full_name), $sbj)))
  229. if (($sbj = preg_replace ("/%%user_email%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user->user_email), $sbj)))
  230. if (($sbj = preg_replace ("/%%user_login%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user->user_login), $sbj)))
  231. if (($sbj = preg_replace ("/%%user_pass%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user_pass), $sbj)))
  232. if (($sbj = preg_replace ("/%%user_ip%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user_ip), $sbj)))
  233. if (($sbj = preg_replace ("/%%user_id%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user_id), $sbj)))
  234. {
  235. if (is_array ($fields) && !empty ($fields))
  236. foreach /* Custom Registration/Profile Fields. */ ($fields as $var => $val)
  237. if (!($sbj = preg_replace ("/%%" . preg_quote ($var, "/") . "%%/i", c_ws_plugin__s2member_utils_strings::esc_ds (maybe_serialize ($val)), $sbj)))
  238. break;
  239. if (($msg = $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["new_user_email_message"]))
  240. if (($msg = preg_replace ("/%%cv([0-9]+)%%/ei", 'trim($cv[$1])', $msg)))
  241. if (($msg = preg_replace ("/%%wp_login_url%%/i", c_ws_plugin__s2member_utils_strings::esc_ds (wp_login_url ()), $msg)))
  242. if (($msg = preg_replace ("/%%role%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($role), $msg)))
  243. if (($msg = preg_replace ("/%%label%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($label), $msg)))
  244. if (($msg = preg_replace ("/%%level%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($level), $msg)))
  245. if (($msg = preg_replace ("/%%ccaps%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($ccaps), $msg)))
  246. if (($msg = preg_replace ("/%%user_first_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user->first_name), $msg)))
  247. if (($msg = preg_replace ("/%%user_last_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user->last_name), $msg)))
  248. if (($msg = preg_replace ("/%%user_full_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user_full_name), $msg)))
  249. if (($msg = preg_replace ("/%%user_email%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user->user_email), $msg)))
  250. if (($msg = preg_replace ("/%%user_login%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user->user_login), $msg)))
  251. if (($msg = preg_replace ("/%%user_pass%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user_pass), $msg)))
  252. if (($msg = preg_replace ("/%%user_ip%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user_ip), $msg)))
  253. if (($msg = preg_replace ("/%%user_id%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user_id), $msg)))
  254. {
  255. if (is_array ($fields) && !empty ($fields))
  256. foreach /* Custom Registration/Profile Fields. */ ($fields as $var => $val)
  257. if (!($msg = preg_replace ("/%%" . preg_quote ($var, "/") . "%%/i", c_ws_plugin__s2member_utils_strings::esc_ds (maybe_serialize ($val)), $msg)))
  258. break;
  259. if (($sbj = trim (preg_replace ("/%%(.+?)%%/i", "", $sbj))) && ($msg = trim (preg_replace ("/%%(.+?)%%/i", "", $msg)))) // Still have a ``$sbj`` and a ``$msg``?
  260. {
  261. if (!is_multisite () || !c_ws_plugin__s2member_utils_conds::is_multisite_farm () || is_main_site ())
  262. {
  263. $sbj = c_ws_plugin__s2member_utilities::evl($sbj, get_defined_vars());
  264. $msg = c_ws_plugin__s2member_utilities::evl($msg, get_defined_vars());
  265. }
  266. 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\nContent-Type: text/plain; charset=UTF-8") . c_ws_plugin__s2member_email_configs::email_config_release ();
  267. }
  268. }
  269. }
  270. }
  271. if /* Send Admin(s) a notification? */ (in_array ("admin", $notify))
  272. if ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["new_user_admin_email_recipients"])
  273. {
  274. $fields = get_user_option ("s2member_custom_fields", $user_id);
  275. $cv = preg_split ("/\|/", get_user_option ("s2member_custom", $user_id));
  276. $role = c_ws_plugin__s2member_user_access::user_access_role($user);
  277. $label = c_ws_plugin__s2member_user_access::user_access_label($user);
  278. $level = c_ws_plugin__s2member_user_access::user_access_level($user);
  279. $ccaps = implode(",", c_ws_plugin__s2member_user_access::user_access_ccaps($user));
  280. $user->user_email = ($user_email) ? $user_email : $user->user_email;
  281. $user_full_name = trim ($user->first_name . " " . $user->last_name);
  282. $user_ip = $_SERVER["REMOTE_ADDR"];
  283. if (($rec = $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["new_user_admin_email_recipients"]))
  284. if (($rec = preg_replace ("/%%cv([0-9]+)%%/ei", 'trim($cv[$1])', $rec)))
  285. if (($rec = preg_replace ("/%%wp_login_url%%/i", c_ws_plugin__s2member_utils_strings::esc_ds (wp_login_url ()), $rec)))
  286. if (($rec = preg_replace ("/%%role%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($role), $rec)))
  287. if (($rec = preg_replace ("/%%label%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($label), $rec)))
  288. if (($rec = preg_replace ("/%%level%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($level), $rec)))
  289. if (($rec = preg_replace ("/%%ccaps%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($ccaps), $rec)))
  290. 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)))
  291. 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)))
  292. 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)))
  293. if (($rec = preg_replace ("/%%user_email%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user->user_email), $rec)))
  294. if (($rec = preg_replace ("/%%user_login%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user->user_login), $rec)))
  295. if (($rec = preg_replace ("/%%user_pass%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user_pass), $rec)))
  296. if (($rec = preg_replace ("/%%user_ip%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user_ip), $rec)))
  297. if (($rec = preg_replace ("/%%user_id%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user_id), $rec)))
  298. {
  299. if (is_array ($fields) && !empty ($fields))
  300. foreach /* Custom Registration/Profile Fields. */ ($fields as $var => $val)
  301. if (!($rec = preg_replace ("/%%" . preg_quote ($var, "/") . "%%/i", c_ws_plugin__s2member_utils_strings::esc_ds (maybe_serialize ($val)), $rec)))
  302. break;
  303. if (($sbj = $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["new_user_admin_email_subject"]))
  304. if (($sbj = preg_replace ("/%%cv([0-9]+)%%/ei", 'trim($cv[$1])', $sbj)))
  305. if (($sbj = preg_replace ("/%%wp_login_url%%/i", c_ws_plugin__s2member_utils_strings::esc_ds (wp_login_url ()), $sbj)))
  306. if (($sbj = preg_replace ("/%%role%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($role), $sbj)))
  307. if (($sbj = preg_replace ("/%%label%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($label), $sbj)))
  308. if (($sbj = preg_replace ("/%%level%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($level), $sbj)))
  309. if (($sbj = preg_replace ("/%%ccaps%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($ccaps), $sbj)))
  310. if (($sbj = preg_replace ("/%%user_first_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user->first_name), $sbj)))
  311. if (($sbj = preg_replace ("/%%user_last_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user->last_name), $sbj)))
  312. if (($sbj = preg_replace ("/%%user_full_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user_full_name), $sbj)))
  313. if (($sbj = preg_replace ("/%%user_email%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user->user_email), $sbj)))
  314. if (($sbj = preg_replace ("/%%user_login%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user->user_login), $sbj)))
  315. if (($sbj = preg_replace ("/%%user_pass%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user_pass), $sbj)))
  316. if (($sbj = preg_replace ("/%%user_ip%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user_ip), $sbj)))
  317. if (($sbj = preg_replace ("/%%user_id%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user_id), $sbj)))
  318. {
  319. if (is_array ($fields) && !empty ($fields))
  320. foreach /* Custom Registration/Profile Fields. */ ($fields as $var => $val)
  321. if (!($sbj = preg_replace ("/%%" . preg_quote ($var, "/") . "%%/i", c_ws_plugin__s2member_utils_strings::esc_ds (maybe_serialize ($val)), $sbj)))
  322. break;
  323. if (($msg = $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["new_user_admin_email_message"]))
  324. if (($msg = preg_replace ("/%%cv([0-9]+)%%/ei", 'trim($cv[$1])', $msg)))
  325. if (($msg = preg_replace ("/%%wp_login_url%%/i", c_ws_plugin__s2member_utils_strings::esc_ds (wp_login_url ()), $msg)))
  326. if (($msg = preg_replace ("/%%role%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($role), $msg)))
  327. if (($msg = preg_replace ("/%%label%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($label), $msg)))
  328. if (($msg = preg_replace ("/%%level%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($level), $msg)))
  329. if (($msg = preg_replace ("/%%ccaps%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($ccaps), $msg)))
  330. if (($msg = preg_replace ("/%%user_first_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user->first_name), $msg)))
  331. if (($msg = preg_replace ("/%%user_last_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user->last_name), $msg)))
  332. if (($msg = preg_replace ("/%%user_full_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user_full_name), $msg)))
  333. if (($msg = preg_replace ("/%%user_email%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user->user_email), $msg)))
  334. if (($msg = preg_replace ("/%%user_login%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user->user_login), $msg)))
  335. if (($msg = preg_replace ("/%%user_pass%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user_pass), $msg)))
  336. if (($msg = preg_replace ("/%%user_ip%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user_ip), $msg)))
  337. if (($msg = preg_replace ("/%%user_id%%/i", c_ws_plugin__s2member_utils_strings::esc_ds ($user_id), $msg)))
  338. {
  339. if (is_array ($fields) && !empty ($fields))
  340. foreach /* Custom Registration/Profile Fields. */ ($fields as $var => $val)
  341. if (!($msg = preg_replace ("/%%" . preg_quote ($var, "/") . "%%/i", c_ws_plugin__s2member_utils_strings::esc_ds (maybe_serialize ($val)), $msg)))
  342. break;
  343. if (($rec = trim (preg_replace ("/%%(.+?)%%/i", "", $rec))) && ($sbj = trim (preg_replace ("/%%(.+?)%%/i", "", $sbj))) && ($msg = trim (preg_replace ("/%%(.+?)%%/i", "", $msg))))
  344. {
  345. if (!is_multisite () || !c_ws_plugin__s2member_utils_conds::is_multisite_farm () || is_main_site ())
  346. {
  347. $rec = c_ws_plugin__s2member_utilities::evl($rec, get_defined_vars());
  348. $sbj = c_ws_plugin__s2member_utilities::evl($sbj, get_defined_vars());
  349. $msg = c_ws_plugin__s2member_utilities::evl($msg, get_defined_vars());
  350. }
  351. foreach /* A possible list of recipients. */ (c_ws_plugin__s2member_utils_strings::parse_emails ($rec) as $recipient)
  352. 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");
  353. }
  354. }
  355. }
  356. }
  357. }
  358. if /* Back on? */ ($email_configs_were_on)
  359. c_ws_plugin__s2member_email_configs::email_config ();
  360. return apply_filters ("ws_plugin__s2member_new_user_notification", true, get_defined_vars ());
  361. }
  362. else return apply_filters ("ws_plugin__s2member_new_user_notification", false, get_defined_vars ());
  363. }
  364. }
  365. }
  366. ?>