ID) && ($user_id = $user->ID) && is_object($current_user) && !empty($current_user->ID)) { $role = c_ws_plugin__s2member_user_access::user_access_role($user); // This User's current WordPress Role. $level = c_ws_plugin__s2member_user_access::user_access_level($user); // User's Access Level for s2Member. if(current_user_can("edit_users") && (!is_multisite() || is_super_admin() || is_user_member_of_blog($user_id))) { echo '
'."\n"; echo '

s2Member Configuration & Profile Fields'.((is_multisite()) ? ' (for this Blog)' : '').'

'."\n"; echo ''."\n"; foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v; do_action("ws_plugin__s2member_during_users_list_edit_cols_before", get_defined_vars()); unset($__refs, $__v); if(is_multisite() && is_super_admin()) // Super Admins can edit this. { foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v; do_action("ws_plugin__s2member_during_users_list_edit_cols_before_originating_blog", get_defined_vars()); unset($__refs, $__v); echo ''."\n"; echo ''."\n"; echo ''."\n"; echo ''."\n"; foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v; do_action("ws_plugin__s2member_during_users_list_edit_cols_after_originating_blog", get_defined_vars()); unset($__refs, $__v); } foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v; do_action("ws_plugin__s2member_during_users_list_edit_cols_before_subscr_gateway", get_defined_vars()); unset($__refs, $__v); echo ''."\n"; echo ''."\n"; echo ''."\n"; echo ''."\n"; foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v; do_action("ws_plugin__s2member_during_users_list_edit_cols_after_subscr_gateway", get_defined_vars()); unset($__refs, $__v); foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v; do_action("ws_plugin__s2member_during_users_list_edit_cols_before_subscr_id", get_defined_vars()); unset($__refs, $__v); echo ''."\n"; echo ''."\n"; echo ''."\n"; echo ''."\n"; foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v; do_action("ws_plugin__s2member_during_users_list_edit_cols_after_subscr_id", get_defined_vars()); unset($__refs, $__v); if(c_ws_plugin__s2member_utils_conds::pro_is_installed()) if(in_array('stripe', $GLOBALS['WS_PLUGIN__']['s2member']['o']['pro_gateways_enabled'])) { foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v; do_action("ws_plugin__s2member_during_users_list_edit_cols_before_subscr_cid", get_defined_vars()); unset($__refs, $__v); echo ''."\n"; echo ''."\n"; echo ''."\n"; echo ''."\n"; foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v; do_action("ws_plugin__s2member_during_users_list_edit_cols_after_subscr_cid", get_defined_vars()); unset($__refs, $__v); } foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v; do_action("ws_plugin__s2member_during_users_list_edit_cols_before_custom", get_defined_vars()); unset($__refs, $__v); echo ''."\n"; echo ''."\n"; echo ''."\n"; echo ''."\n"; foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v; do_action("ws_plugin__s2member_during_users_list_edit_cols_after_custom", get_defined_vars()); unset($__refs, $__v); if(c_ws_plugin__s2member_utils_conds::pro_is_installed()) { foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v; do_action("ws_plugin__s2member_during_users_list_edit_cols_before_coupon_codes", get_defined_vars()); unset($__refs, $__v); echo ''."\n"; echo ''."\n"; echo ''."\n"; echo ''."\n"; foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v; do_action("ws_plugin__s2member_during_users_list_edit_cols_after_coupon_codes", get_defined_vars()); unset($__refs, $__v); } foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v; do_action("ws_plugin__s2member_during_users_list_edit_cols_before_registration_ip", get_defined_vars()); unset($__refs, $__v); echo ''."\n"; echo ''."\n"; echo ''."\n"; echo ''."\n"; foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v; do_action("ws_plugin__s2member_during_users_list_edit_cols_after_registration_ip", get_defined_vars()); unset($__refs, $__v); if(!is_multisite() || !c_ws_plugin__s2member_utils_conds::is_multisite_farm() || is_main_site()) // Will change once Custom Capabilities are compatible with a Blog Farm. { foreach($user->allcaps as $cap => $cap_enabled) if(preg_match("/^access_s2member_ccap_/", $cap)) $ccaps[] = preg_replace("/^access_s2member_ccap_/", "", $cap); foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v; do_action("ws_plugin__s2member_during_users_list_edit_cols_before_ccaps", get_defined_vars()); unset($__refs, $__v); echo ''."\n"; echo ''."\n"; echo ''."\n"; echo ''."\n"; foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v; do_action("ws_plugin__s2member_during_users_list_edit_cols_after_ccaps", get_defined_vars()); unset($__refs, $__v); } if(!$user->has_cap("administrator")) // Do NOT present these details for Administrator accounts. { foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v; do_action("ws_plugin__s2member_during_users_list_edit_cols_before_auto_eot_time", get_defined_vars()); unset($__refs, $__v); echo ''."\n"; $auto_eot_time = get_user_option("s2member_auto_eot_time", $user_id); if($auto_eot_time && !is_numeric($auto_eot_time)) $auto_eot_time = strtotime((string)$auto_eot_time); //260219 $auto_eot_time = ($auto_eot_time) ? date("D M j, Y g:i a T", (int)$auto_eot_time) : ""; echo ''."\n"; echo ''."\n"; echo ''."\n"; foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v; do_action("ws_plugin__s2member_during_users_list_edit_cols_after_auto_eot_time", get_defined_vars()); unset($__refs, $__v); if(c_ws_plugin__s2member_utils_conds::pro_is_installed()) { foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v; do_action("ws_plugin__s2member_during_users_list_edit_cols_before_reminders_enable", get_defined_vars()); unset($__refs, $__v); echo ''."\n"; echo ''."\n"; echo ''."\n"; echo ''."\n"; foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v; do_action("ws_plugin__s2member_during_users_list_edit_cols_after_reminders_enable", get_defined_vars()); unset($__refs, $__v); foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v; do_action("ws_plugin__s2member_during_users_list_edit_cols_before_reset_pass_resend", get_defined_vars()); unset($__refs, $__v); echo ''."\n"; echo ''."\n"; echo ''."\n"; echo ''."\n"; foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v; do_action("ws_plugin__s2member_during_users_list_edit_cols_after_reset_pass_resend", get_defined_vars()); unset($__refs, $__v); } } if(c_ws_plugin__s2member_list_servers::list_servers_integrated()) // Only if integrated with s2Member. { foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v; do_action("ws_plugin__s2member_during_users_list_edit_cols_before_opt_in", get_defined_vars()); unset($__refs, $__v); echo ''."\n"; echo ''."\n"; echo ''."\n"; echo ''."\n"; foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v; do_action("ws_plugin__s2member_during_users_list_edit_cols_after_opt_in", get_defined_vars()); unset($__refs, $__v); if($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_auto_opt_out_transitions"]) if(($custom_reg_auto_op_outs = c_ws_plugin__s2member_utils_strings::wrap_deep($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_auto_opt_outs"], "/^", "$/i"))) if(c_ws_plugin__s2member_utils_arrays::in_regex_array("user-role-change", $custom_reg_auto_op_outs) || c_ws_plugin__s2member_utils_arrays::in_regex_array("modification", $custom_reg_auto_op_outs)) { foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v; do_action("ws_plugin__s2member_during_users_list_edit_cols_before_auto_opt_out_transitions", get_defined_vars()); unset($__refs, $__v); echo ''."\n"; echo ''."\n"; echo ''."\n"; echo ''."\n"; foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v; do_action("ws_plugin__s2member_during_users_list_edit_cols_after_auto_opt_out_transitions", get_defined_vars()); unset($__refs, $__v); } } foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v; do_action("ws_plugin__s2member_during_users_list_edit_cols_before_ip_restrictions", get_defined_vars()); unset($__refs, $__v); echo ''."\n"; echo ''."\n"; echo ''."\n"; echo ''."\n"; foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v; do_action("ws_plugin__s2member_during_users_list_edit_cols_after_ip_restrictions", get_defined_vars()); unset($__refs, $__v); if($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_fields"]) // Only if configured. if($fields_applicable = c_ws_plugin__s2member_custom_reg_fields::custom_fields_configured_at_level($level, "administrative")) { echo ''."\n"; echo ''."\n"; echo ''."\n"; $fields = get_user_option("s2member_custom_fields", $user_id); // Existing fields. foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v; do_action("ws_plugin__s2member_during_users_list_edit_cols_before_custom_fields", get_defined_vars()); unset($__refs, $__v); foreach(json_decode($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_fields"], TRUE) as $field) { foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v; do_action("ws_plugin__s2member_during_users_list_edit_cols_during_custom_fields_before", get_defined_vars()); unset($__refs, $__v); if(in_array($field["id"], $fields_applicable)) // Field applicable? { $field_var = preg_replace("/[^a-z0-9]/i", "_", strtolower($field["id"])); $field_id_class = preg_replace("/_/", "-", $field_var); foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v; if(apply_filters("ws_plugin__s2member_during_users_list_edit_cols_during_custom_fields_display", TRUE, get_defined_vars())) { if(!empty($field["section"]) && $field["section"] === "yes") // Starts a new section? echo ''; echo ''."\n"; echo ''."\n"; echo ''."\n"; echo ''."\n"; } unset($__refs, $__v); } foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v; do_action("ws_plugin__s2member_during_users_list_edit_cols_during_custom_fields_after", get_defined_vars()); unset($__refs, $__v); } foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v; do_action("ws_plugin__s2member_during_users_list_edit_cols_after_custom_fields", get_defined_vars()); unset($__refs, $__v); echo ''."\n"; echo ''."\n"; echo ''."\n"; } foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v; do_action("ws_plugin__s2member_during_users_list_edit_cols_before_notes", get_defined_vars()); unset($__refs, $__v); echo ''."\n"; echo ''."\n"; echo ''."\n"; echo ''."\n"; foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v; do_action("ws_plugin__s2member_during_users_list_edit_cols_after_notes", get_defined_vars()); unset($__refs, $__v); foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v; do_action("ws_plugin__s2member_during_users_list_edit_cols_after", get_defined_vars()); unset($__refs, $__v); echo '
[?]
[?]'."\n"; echo '
[?]
[?]
[?]
[?]
[?]
[?]'.((is_multisite()) ? '
(for this Blog)' : '').'
[?]'.(($auto_eot_time) ? '
(Universal Time / GMT)' : '').'
[?]    
[?]
[?]
[?]
[?]'.((c_ws_plugin__s2member_ip_restrictions::specific_ip_restriction_at_or_above_max(strtolower($user->user_login)) || c_ws_plugin__s2member_ip_restrictions::specific_ip_restriction_breached_security(strtolower($user->user_login))) ? '
*WARNING* this User is at (or above) max allowable IP addresses (based on your IP Restrictions).' : '
*Note* this User is NOT currently banned by any of your IP Restrictions.').'
'."\n"; echo '
'."\n"; echo '
'.((!empty($field["sectitle"])) ? $field["sectitle"] : '').'
'.c_ws_plugin__s2member_custom_reg_fields::custom_field_gen(__FUNCTION__, $field, "ws_plugin__s2member_profile_", "ws-plugin--s2member-profile-", "", ((preg_match("/^(text|textarea|select|selects)$/", $field["type"])) ? "width:99%;" : ""), "", "", $fields, @$fields[$field_var], "administrative").'
'."\n"; echo '
'."\n"; echo '
[?]

These Notations are private; Users/Members will never see any of these notes.
'."\n"; echo '
'."\n"; } else if($current_user->ID === $user->ID) // Otherwise, a User can always edit their own Profile. { if($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_fields"] /* Only if configured. */) if($fields_applicable = c_ws_plugin__s2member_custom_reg_fields::custom_fields_configured_at_level($level, "profile")) { echo '
'."\n"; echo '

'._x("Additional Profile Fields", "s2member-front", "s2member").((is_multisite()) ? ' '._x("(for this site)", "s2member-front", "s2member") : "").'

'."\n"; echo ''."\n"; foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v; do_action("ws_plugin__s2member_during_users_list_edit_cols_before", get_defined_vars()); unset($__refs, $__v); $fields = get_user_option("s2member_custom_fields", $user_id); // Existing fields. foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v; do_action("ws_plugin__s2member_during_users_list_edit_cols_before_custom_fields", get_defined_vars()); unset($__refs, $__v); foreach(json_decode($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_fields"], TRUE) as $field) { foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v; do_action("ws_plugin__s2member_during_users_list_edit_cols_during_custom_fields_before", get_defined_vars()); unset($__refs, $__v); if(in_array($field["id"], $fields_applicable)) // Field applicable? { $field_var = preg_replace("/[^a-z0-9]/i", "_", strtolower($field["id"])); $field_id_class = preg_replace("/_/", "-", $field_var); foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v; if(apply_filters("ws_plugin__s2member_during_users_list_edit_cols_during_custom_fields_display", TRUE, get_defined_vars())) { if(!empty($field["section"]) && $field["section"] === "yes") // Starts a new section? echo ''; echo ''."\n"; echo ''."\n"; echo ''."\n"; echo ''."\n"; } unset($__refs, $__v); } foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v; do_action("ws_plugin__s2member_during_users_list_edit_cols_during_custom_fields_after", get_defined_vars()); unset($__refs, $__v); } foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v; do_action("ws_plugin__s2member_during_users_list_edit_cols_after_custom_fields", get_defined_vars()); unset($__refs, $__v); foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v; do_action("ws_plugin__s2member_during_users_list_edit_cols_after", get_defined_vars()); unset($__refs, $__v); echo '
'.((!empty($field["sectitle"])) ? $field["sectitle"] : '').'
'.c_ws_plugin__s2member_custom_reg_fields::custom_field_gen(__FUNCTION__, $field, "ws_plugin__s2member_profile_", "ws-plugin--s2member-profile-", "", ((preg_match("/^(text|textarea|select|selects)$/", $field["type"])) ? "width:99%;" : ""), "", "", $fields, $fields[$field_var], "profile").'
'."\n"; echo '
'."\n"; } } } foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v; do_action("ws_plugin__s2member_after_users_list_edit_cols", get_defined_vars()); unset($__refs, $__v); } /** * Saves Custom Fields after an admin updates Profile. * * @package s2Member\Users_List * @since 3.5 * * @attaches-to ``add_action("edit_user_profile_update");`` * @attaches-to ``add_action("personal_options_update");`` * * @param int|string $user_id Expects a numeric WordPress User ID passed in by the Action Hook. */ public static function users_list_update_cols($user_id = '') { global $current_site, $current_blog; // Multisite networks. foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v; do_action("ws_plugin__s2member_before_users_list_update_cols", get_defined_vars()); unset($__refs, $__v); $user = new WP_User($user_id); // We need both of these objects. `$user` and `$current_user`. $current_user = (is_user_logged_in()) ? wp_get_current_user() : FALSE; // Current user. if(is_object($user) && !empty($user->ID) && ($user_id = $user->ID) && is_object($current_user) && !empty($current_user->ID)) { if(current_user_can("edit_users") && (!is_multisite() || is_super_admin() || is_user_member_of_blog($user_id))) { if(!empty($_POST) && is_array($_p = c_ws_plugin__s2member_utils_strings::trim_deep(stripslashes_deep($_POST)))) { $old_user = unserialize(serialize($user)); // Copy existing User obj. $old_role = c_ws_plugin__s2member_user_access::user_access_role($old_user); $role = isset($_p["role"]) && $_p["role"] !== $old_role ? $_p["role"] : $old_role; $level = c_ws_plugin__s2member_user_access::user_access_role_to_level($role); $user->roles = isset($_p["role"]) && $_p["role"] !== $old_role ? array($_p["role"]) : $old_user->roles; $user->user_email = isset($_p["email"]) && is_email($_p["email"]) && $_p["email"] !== $old_user->user_email && !email_exists($_p["email"]) ? $_p["email"] : $old_user->user_email; $user->first_name = isset($_p["first_name"]) && $_p["first_name"] !== $old_user->first_name ? $_p["first_name"] : $old_user->first_name; $user->last_name = isset($_p["last_name"]) && $_p["last_name"] !== $old_user->last_name ? $_p["last_name"] : $old_user->last_name; $auto_eot_time = !empty($_p["ws_plugin__s2member_profile_s2member_auto_eot_time"]) ? strtotime($_p["ws_plugin__s2member_profile_s2member_auto_eot_time"]) : ""; if($role !== $old_role) // In this case, we need to fire Hook: `ws_plugin__s2member_during_collective_mods`. do_action("ws_plugin__s2member_during_collective_mods", $user_id, get_defined_vars(), "user-role-change", "modification", $role, $user, $old_user); if(isset($_p["ws_plugin__s2member_profile_s2member_originating_blog"]) && is_multisite() && is_super_admin()) update_user_meta($user_id, "s2member_originating_blog", $_p["ws_plugin__s2member_profile_s2member_originating_blog"]); if(isset($_p["ws_plugin__s2member_profile_s2member_subscr_gateway"])) update_user_option($user_id, "s2member_subscr_gateway", $_p["ws_plugin__s2member_profile_s2member_subscr_gateway"]); if(isset($_p["ws_plugin__s2member_profile_s2member_subscr_id"])) update_user_option($user_id, "s2member_subscr_id", $_p["ws_plugin__s2member_profile_s2member_subscr_id"]); if(isset($_p["ws_plugin__s2member_profile_s2member_subscr_cid"])) update_user_option($user_id, "s2member_subscr_cid", $_p["ws_plugin__s2member_profile_s2member_subscr_cid"]); if(isset($_p["ws_plugin__s2member_profile_s2member_custom"])) update_user_option($user_id, "s2member_custom", $_p["ws_plugin__s2member_profile_s2member_custom"]); if(isset($_p["ws_plugin__s2member_profile_s2member_coupon_codes"])) update_user_option($user_id, "s2member_coupon_codes", array_map('trim', preg_split('/,+/', $_p["ws_plugin__s2member_profile_s2member_coupon_codes"], -1, PREG_SPLIT_NO_EMPTY))); if(isset($_p["ws_plugin__s2member_profile_s2member_registration_ip"])) update_user_option($user_id, "s2member_registration_ip", $_p["ws_plugin__s2member_profile_s2member_registration_ip"]); if(isset($_p["ws_plugin__s2member_profile_s2member_notes"])) update_user_option($user_id, "s2member_notes", $_p["ws_plugin__s2member_profile_s2member_notes"]); if(isset($_p["ws_plugin__s2member_profile_s2member_auto_eot_time"]) && isset($auto_eot_time)) update_user_option($user_id, "s2member_auto_eot_time", $auto_eot_time); if(isset($_p["ws_plugin__s2member_profile_s2member_reminders_enable"])) update_user_option($user_id, "s2member_reminders_enable", (string)(int)$_p["ws_plugin__s2member_profile_s2member_reminders_enable"]); if(isset($_p["ws_plugin__s2member_profile_s2member_ccaps"])) { foreach($user->allcaps as $cap => $cap_enabled) if(preg_match("/^access_s2member_ccap_/", $cap)) $user->remove_cap($ccap = $cap); if(!empty($_p["ws_plugin__s2member_profile_s2member_ccaps"])) foreach(preg_split("/[\r\n\t\s;,]+/", $_p["ws_plugin__s2member_profile_s2member_ccaps"]) as $ccap) if(strlen($ccap = trim(strtolower(preg_replace("/[^a-z_0-9]/i", "", $ccap))))) $user->add_cap("access_s2member_ccap_".$ccap); } if($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_fields"]) { foreach(json_decode($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_fields"], TRUE) as $field) { $field_var = preg_replace("/[^a-z0-9]/i", "_", strtolower($field["id"])); $field_id_class = preg_replace("/_/", "-", $field_var); if(isset($_p["ws_plugin__s2member_profile_".$field_var]) /* Field being set? */) { if((is_array($_p["ws_plugin__s2member_profile_".$field_var]) && !empty($_p["ws_plugin__s2member_profile_".$field_var])) || (is_string($_p["ws_plugin__s2member_profile_".$field_var]) && strlen($_p["ws_plugin__s2member_profile_".$field_var]))) $fields[$field_var] = $_p["ws_plugin__s2member_profile_".$field_var]; else if(isset($fields)) unset($fields[$field_var]); } else if(isset($fields)) unset($fields[$field_var]); } } if(!empty($fields)) update_user_option($user_id, "s2member_custom_fields", $fields); else delete_user_option($user_id, "s2member_custom_fields"); if($level > 0 /* We only process this if they are higher than Level #0. */) { $pr_times = (array) get_user_option("s2member_paid_registration_times", $user_id); $pr_times["level"] = (empty($pr_times["level"])) ? time() : $pr_times["level"]; $pr_times["level".$level] = (empty($pr_times["level".$level])) ? time() : $pr_times["level".$level]; update_user_option($user_id, "s2member_paid_registration_times", $pr_times); // Update now. } if(!empty($_p["ws_plugin__s2member_profile_opt_in"]) && !empty($role) && $level >= 0 /* Should we process List Servers? */) c_ws_plugin__s2member_list_servers::process_list_servers($role, $level, $user->user_login, ((!empty($_p["pass1"])) ? $_p["pass1"] : ""), $user->user_email, $user->first_name, $user->last_name, FALSE, TRUE, TRUE, $user_id); if(!empty($_p["ws_plugin__s2member_profile_ip_restrictions"]) /* Delete/reset IP Restrictions? */) c_ws_plugin__s2member_ip_restrictions::delete_reset_specific_ip_restrictions(strtolower($user->user_login)); if(!empty($_p["ws_plugin__s2member_profile_reset_pass_resend"]) && c_ws_plugin__s2member_utils_conds::pro_is_installed() /* Reset password & resend email notification? */) c_ws_plugin__s2member_email_configs::reset_pass_resend_new_user_notification($user_id, ((!empty($_p["pass1"])) ? $_p["pass1"] : ""), array("user"), $user->user_email); foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v; do_action("ws_plugin__s2member_during_users_list_update_cols", get_defined_vars()); unset($__refs, $__v); } } else if($current_user->ID === $user->ID /* Otherwise, a User can always edit their own Profile. */) { if(!empty($_POST) && is_array($_p = c_ws_plugin__s2member_utils_strings::trim_deep(stripslashes_deep($_POST)))) { $role = c_ws_plugin__s2member_user_access::user_access_role($user /* Role is not changing here. */); $level = c_ws_plugin__s2member_user_access::user_access_role_to_level($role); if($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_fields"]) if($fields_applicable = c_ws_plugin__s2member_custom_reg_fields::custom_fields_configured_at_level($level, "profile")) { $fields = array(); // Initialize. $_existing_fields = get_user_option("s2member_custom_fields", $user_id); foreach(json_decode($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_fields"], TRUE) as $field) { $field_var = preg_replace("/[^a-z0-9]/i", "_", strtolower($field["id"])); $field_id_class = preg_replace("/_/", "-", $field_var); if(!in_array($field["id"], $fields_applicable) || strpos($field["editable"], "no") === 0) { if(isset($_existing_fields[$field_var]) && ((is_array($_existing_fields[$field_var]) && !empty($_existing_fields[$field_var])) || (is_string($_existing_fields[$field_var]) && strlen($_existing_fields[$field_var])))) $fields[$field_var] = $_existing_fields[$field_var]; else unset($fields[$field_var]); } else if($field["required"] === "yes" && (!isset($_p["ws_plugin__s2member_profile_".$field_var]) || (!is_array($_p["ws_plugin__s2member_profile_".$field_var]) && !is_string($_p["ws_plugin__s2member_profile_".$field_var])) || (is_array($_p["ws_plugin__s2member_profile_".$field_var]) && empty($_p["ws_plugin__s2member_profile_".$field_var])) || (is_string($_p["ws_plugin__s2member_profile_".$field_var]) && !strlen($_p["ws_plugin__s2member_profile_".$field_var])))) { if(isset($_existing_fields[$field_var]) && ((is_array($_existing_fields[$field_var]) && !empty($_existing_fields[$field_var])) || (is_string($_existing_fields[$field_var]) && strlen($_existing_fields[$field_var])))) $fields[$field_var] = $_existing_fields[$field_var]; else unset($fields[$field_var]); } else if(isset($_p["ws_plugin__s2member_profile_".$field_var])) { if((is_array($_p["ws_plugin__s2member_profile_".$field_var]) && !empty($_p["ws_plugin__s2member_profile_".$field_var])) || (is_string($_p["ws_plugin__s2member_profile_".$field_var]) && strlen($_p["ws_plugin__s2member_profile_".$field_var]))) $fields[$field_var] = $_p["ws_plugin__s2member_profile_".$field_var]; else unset($fields[$field_var]); } else unset($fields[$field_var]); } if(!empty($fields)) update_user_option($user_id, "s2member_custom_fields", $fields); else delete_user_option($user_id, "s2member_custom_fields"); } foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v; do_action("ws_plugin__s2member_during_users_list_update_cols", get_defined_vars()); unset($__refs, $__v); } } } foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v; do_action("ws_plugin__s2member_after_users_list_update_cols", get_defined_vars()); unset($__refs, $__v); } } }