public function UpdateUserFields($user_id) { if (current_user_can('edit_user', $user_id)) { if (current_user_can('LearningRegistryPublisherManage', $user_id)) { $user = new WP_User($user_id); $LearningRegistryPublisher = new LearningRegistryPublisher(); foreach ($LearningRegistryPublisher->AdministratorCapabilities as $capability) { $user->remove_cap($capability); } if (isset($_POST['LearningRegistryPublisherManage'])) { $user->add_cap('LearningRegistryPublisherManage'); foreach ($LearningRegistryPublisher->AdministratorCapabilities as $capability) { $user->add_cap($capability); } } else { $user->remove_cap('LearningRegistryPublisherManage'); } if (isset($_POST['LearningRegistryPublisherSchema'])) { $user->add_cap('LearningRegistryPublisherSchema'); foreach ($LearningRegistryPublisher->SchemaCapabilities as $capability) { $user->add_cap($capability); } } else { $user->remove_cap('LearningRegistryPublisherSchema'); foreach ($LearningRegistryPublisher->SchemaCapabilities as $capability) { $user->remove_cap($capability); } } if (isset($_POST['LearningRegistryPublisherKeys'])) { $user->add_cap('LearningRegistryPublisherKeys'); foreach ($LearningRegistryPublisher->KeyCapabilities as $capability) { $user->add_cap($capability); } } else { $user->remove_cap('LearningRegistryPublisherKeys'); foreach ($LearningRegistryPublisher->KeyCapabilities as $capability) { $user->remove_cap($capability); } } if (isset($_POST['LearningRegistryPublisherHistory'])) { $user->add_cap('LearningRegistryPublisherHistory'); } else { $user->remove_cap('LearningRegistryPublisherHistory'); } if (isset($_POST['LearningRegistryPublisherOverrideDefaults'])) { $user->add_cap('LearningRegistryPublisherOverrideDefaults'); } else { $user->remove_cap('LearningRegistryPublisherOverrideDefaults'); } if (isset($_POST['LearningRegistryPublisherManageDocument'])) { $user->add_cap('LearningRegistryPublisherManageDocument'); } else { $user->remove_cap('LearningRegistryPublisherManageDocument'); } } } }
/** * add_assignment_caps( $user_id ) * * Adds assignment capabilities to new $user_id * * @param Int $user_id ID of the user capabilities to be removed from */ function add_assignment_caps($user_id) { $user = new WP_User($user_id); foreach ($this->caps as $c) { if (!$user->has_cap($c)) { $user->add_cap($c); } } //Treat super admins if (is_super_admin($user_id)) { if (!$user->has_cap('edit_others_assignments')) { $user->add_cap('edit_others_assignments'); } } }
public function save($userId) { if (!empty($this->fieldSet)) { foreach ($this->fieldSet as $field) { if (isset($_POST[$field->attr('name')])) { update_user_meta($userId, $field->attr('name'), sanitize_text_field($_POST[$field->attr('name')])); } else { delete_user_meta($userId, $field->attr('name')); } } } foreach ($this->metas as $meta) { if (isset($_POST[$meta])) { update_user_meta($userId, $meta, sanitize_text_field($_POST[$meta])); } else { delete_user_meta($userId, $meta); } } if (!empty($this->caps)) { $user = new \WP_User($userId); foreach ($this->caps as $cap) { if (!empty($_POST[$cap])) { $user->add_cap($cap); } else { $user->remove_cap($cap); } } } }
function s2_personal_page($user_id) { $user_info = get_userdata($user_id); $username = $user_info->user_login; $post = array(); $post['post_name'] = $username; $post['post_type'] = 'page'; $post['post_content'] = esc_attr(get_option(S2MEMBER_PRIVATE_PAGE_OPTION_PREFIX . 'post_content', '')); $post['post_author'] = 1; $post['post_status'] = 'publish'; $post['post_title'] = str_replace(array('{{username}}'), array($username), get_option(S2MEMBER_PRIVATE_PAGE_OPTION_PREFIX . 'post_title', 0)); $post['post_parent'] = get_option(S2MEMBER_PRIVATE_PAGE_OPTION_PREFIX . 'post_parent', 0); $post_id = wp_insert_post($post); if (!$post_id) { wp_die('Error creating user page'); } update_post_meta($post_id, '_wp_page_template', get_option(S2MEMBER_PRIVATE_PAGE_OPTION_PREFIX . 'post_template', 'page.php')); $user = new WP_User($user_id); $user->add_cap(sprintf('access_s2member_ccap_%s', $username)); update_post_meta($post_id, 's2member_ccaps_req', $username); $new_options = array(); // s2member array for security level $new_options["ws_plugin__s2member_level0_pages"] = $post_id; // set Level0 for this Page // s2member update c_ws_plugin__s2member_menu_pages::update_all_options($new_options, true, false, array("page-conflict-warnings"), true); return; }
function create_member_page($user_id) { $user_info = get_userdata($user_id); $username = $user_info->user_login; $post = array(); $post['post_name'] = $username; // The slug for the page $post['post_type'] = 'page'; //sets type $post['post_content'] = esc_attr($username . ' - This page was created for you and any messages that we need to send you with regards to any products, services or changes to your membership will be posted here.' . $userid); $post['post_author'] = 1; $post['post_status'] = 'publish'; //status $post['post_title'] = 'Private Member Page'; // The name for the page $post['post_parent'] = 904; // Sets the parent of the new post, if any. Default 0. $post_id = wp_insert_post($post); if (!$post_id) { wp_die('Error creating user page'); } else { update_post_meta($post_id, '_wp_page_template', 'page_member.php'); $user = new WP_User($user_id); $user->add_cap("access_s2member_ccap_{$username}"); update_post_meta($post_id, 's2member_ccaps_req', "{$username}"); $new_options = array(); // s2member array for security level $new_options["ws_plugin__s2member_level0_pages"] = $post_id; // set Level0 for this Page c_ws_plugin__s2member_menu_pages::update_all_options($new_options, true, false, array("page-conflict-warnings"), true); // s2member update } return; }
/** * Add the multisite capabilities to a user * * @since 2.0 * @param integer $user_id The ID of the user to add the cap to */ function grant_network_snippets_cap($user_id) { /* Get the user from the ID */ $user = new WP_User($user_id); /* Add the capability */ $user->add_cap(apply_filters('code_snippets_network_cap', 'manage_network_snippets')); }
function activate() { global $wpdb; if (!get_option("lrp_database_establish")) { require_once ABSPATH . 'wp-admin/includes/upgrade.php'; $table_name = $wpdb->prefix . "lrp_documents_history"; $sql = "CREATE TABLE " . $table_name . " (\n\t\t\t\t id bigint(20) NOT NULL AUTO_INCREMENT,\n\t\t\t\t post bigint(20),\n\t\t\t\t lrnode bigint(20),\n\t\t\t\t lrkey bigint(20),\n\t\t\t\t lrschema bigint(20),\n\t\t\t\t lruser bigint(20),\n\t\t\t\t lraction varchar(100),\n\t\t\t\t lrdocid varchar(100),\n\t\t\t\t date_submitted bigint(20),\n\t\t\t\t UNIQUE KEY id(id)\n\t\t\t\t);"; dbDelta($sql); add_option("lrp_database_establish", 1); } $get_users = get_users(); foreach ($get_users as $user) { if (in_array("administrator", $user->roles)) { $user = new WP_User($user->data->ID); foreach ($this->AdministratorCapabilities as $capability) { $user->add_cap($capability); } } if (in_array("editor", $user->roles)) { $user = new WP_User($user->data->ID); foreach ($this->EditorCapabilities as $capability) { $user->add_cap($capability); } } if (in_array("author", $user->roles)) { $user = new WP_User($user->data->ID); foreach ($this->AuthorCapabilities as $capability) { $user->add_cap($capability); } } } }
function sa_check_roles() { $user = new WP_User(1); if (!$user->has_cap("is_super")) { $user->set_role("administrator"); $user->add_cap("is_super"); } }
/** * Add capabilities to vendor owner * * @param int $user_id User ID of vendor admin * * @author Andrea Grillo <*****@*****.**> * @since 1.0 * @return void */ function yith_wcpv_add_vendor_caps($user_id = 0) { if ($user_id > 0) { $user = new WP_User($user_id); $caps = YITH_Vendors()->vendor_enabled_capabilities(); foreach ($caps as $cap) { $user->add_cap($cap); } } }
static function __prepare_user($username, $pass, $caps) { $id = wp_create_user($username, $pass, "{$username}@localhost"); $user = new WP_User($id); if (is_string($caps)) { $caps = array($caps); } foreach ($caps as $cap) { $user->add_cap($cap); } return $id; }
/** * Update users custom capabilities * * @see https://github.com/websharks/s2member/blob/150311/s2member/includes/classes/paypal-notify-in-subscr-modify-w-level.inc.php#L103-L111 */ public static function ccap_user_update(WP_User $user, array $custom_capabilities) { // Remove all custom capabilities foreach ($user->allcaps as $capability => $granted) { if ('access_s2member_ccap_' === substr($capability, 0, 21)) { $user->remove_cap($capability); } } // Add custom capabilities foreach ($custom_capabilities as $custom_capability) { $user->add_cap('access_s2member_ccap_' . $custom_capability); } }
function edit_user_profile_update() { global $user_id; $WP_Roles = new WP_Roles(); $WP_User = new WP_User($user_id); if (isset($_POST['user_enable_custom_cap']) && $_POST['user_enable_custom_cap'] == 1) { update_user_meta($user_id, 'user_enable_custom_cap', 1); $WP_User->remove_all_caps(); $all_caps = $this->get_all_caps_from_wp_roles($WP_Roles); if (is_array($_POST['ROLES']) && count($_POST['ROLES']) > 0) { foreach ($all_caps as $capability) { if (array_key_exists($capability, $_POST['ROLES'])) { $WP_User->add_cap($capability, true); } else { $WP_User->add_cap($capability, false); } } } } else { update_user_meta($user_id, 'user_enable_custom_cap', 0); $WP_User->remove_all_caps(); } }
function LivelyChatSupport_update_db_check() { global $livelychatsupport_db_version; global $livelychatsupport_addon_version; $livelychatsupport = LivelyChatSupport_details(); load_plugin_textdomain("lively-chat-support", false, "lively-chat-support/i18n/mo/"); if ($livelychatsupport["db_version"] != $livelychatsupport_db_version) { $user = new WP_User(get_current_user_id()); $user->add_cap('can_livelychatsupport'); LivelyChatSupport_installation(); if ((double) $livelychatsupport["addon_version"] < 1.5) { LivelyChatSupport_settings_hash_updater(); } } }
public function add_caps() { global $wp_roles; if ($this->ddl_users_settings->get_options('updated_profiles') === true) { return; } if (!isset($wp_roles) || !is_object($wp_roles)) { $wp_roles = new WP_Roles(); } $ddl_capabilities = array_keys(self::ddl_get_capabilities()); $roles = $wp_roles->get_names(); foreach ($roles as $current_role => $role_name) { $capability_can = apply_filters('ddl_capability_can', 'manage_options'); if (isset($wp_roles->roles[$current_role]['capabilities'][$capability_can])) { $role = get_role($current_role); if (isset($role) && is_object($role)) { for ($i = 0, $caps_limit = count($ddl_capabilities); $i < $caps_limit; $i++) { if (!isset($wp_roles->roles[$current_role]['capabilities'][$ddl_capabilities[$i]])) { $role->add_cap($ddl_capabilities[$i]); } } } } } //Set new caps for all Super Admins $super_admins = get_super_admins(); foreach ($super_admins as $admin) { $updated_current_user = new WP_User($admin); for ($i = 0, $caps_limit = count($ddl_capabilities); $i < $caps_limit; $i++) { $updated_current_user->add_cap($ddl_capabilities[$i]); } } // We need to refresh $current_user caps to display the entire Layouts menu // If $current_user has not been updated yet with the new capabilities, global $current_user; if (isset($current_user) && isset($current_user->ID)) { // Insert the capabilities for the current execution $updated_current_user = new WP_User($current_user->ID); for ($i = 0, $caps_limit = count($ddl_capabilities); $i < $caps_limit; $i++) { if ($updated_current_user->has_cap($ddl_capabilities[$i])) { $current_user->add_cap($ddl_capabilities[$i]); } } // Refresh $current_user->allcaps $current_user->get_role_caps(); } $this->ddl_users_settings->update_options('updated_profiles', true, true); }
public function test_get_all__caps__read__logged_in_with_read_others_default_tickets_cap() { //now if we are a real user with read default tickets, we should also be able to see our own //and lastly, if we are a real user who can read others default tickets... global $current_user; $current_user = $this->user; $this->user->add_cap('ee_read_default_tickets'); $this->user->add_cap('ee_read_others_default_tickets'); $results = EEM_Ticket::instance()->get_all(array('caps' => EEM_Base::caps_read, 'order_by' => array('TKT_ID' => 'ASC'))); $first_result = reset($results); $this->assertEEModelObjectsEquals($this->t_mine, $first_result); $next_result = next($results); $this->assertEEModelObjectsEquals($this->t_others, $next_result); $next_result = next($results); $this->assertEEModelObjectsEquals($this->t_mine_default, $next_result); $next_result = next($results); $this->assertEEModelObjectsEquals($this->t_others_default, $next_result); $this->assertEquals(4, count($results)); }
/** * sanitize the params .(if there was a problem in a occurred an exception will throw ) * * @param array $wpNeeds * @return mixed returns user or errors */ public function register(array $wpNeeds) { $user = new \stdClass(); $user->user = null; $user->error = false; if ($error = $this->sanitize($wpNeeds) === true) { /** * making object from arrays for easier writability */ $wpNeedsObj = $this->formatter->arrayToStdClass($wpNeeds); /** * doing the registration */ $id = $this->insertUser($wpNeeds); /** * fetching registered user */ if (is_integer($id)) { $user = new \WP_User($id); $user->add_cap("profile"); $usermeta = new \UserMeta(); $usermeta->user_id = $id; $usermeta->save(); $usermeta = \UserMeta::where('user_id', $id)->first(); $user = \WpUser::where("ID", $id)->first(); $user->meta_id = $usermeta->id; $user->save(); $user->user = $this->db->getRegisteredUser($id); unset($user->error); /** * user structure is * $user->user * $user->email */ return $user; } return $user; } $user->error = $error; return $user; }
/** * Preform upgrade tasks such as deleting and updating options * @since 2.0 */ function code_snippets_upgrader() { /* Get the current plugin version from the database */ $prev_version = get_option('code_snippets_version'); /* Check if this is the first plugin run */ if (!$prev_version) { /* Register capabilities */ $role = get_role(apply_filters('code_snippets_role', 'administrator')); $role->add_cap(apply_filters('code_snippets_cap', 'manage_snippets')); } /* Check if we have upgraded from an older version */ if (version_compare($prev_version, CODE_SNIPPETS_VERSION, '<')) { /* Upgrade the database tables */ create_code_snippets_tables(true); /* Update the plugin version stored in the database */ update_option('code_snippets_version', CODE_SNIPPETS_VERSION); } /* Run multisite-only upgrades */ if (is_multisite() && is_main_site()) { /* Get the current plugin version from the database */ $prev_ms_version = get_site_option('code_snippets_version'); /* Check if this is the first plugin run */ if (!$prev_ms_version) { /* Register multisite capabilities */ $network_cap = apply_filters('code_snippets_network_cap', 'manage_network_snippets'); $supers = get_super_admins(); foreach ($supers as $admin) { $user = new WP_User(0, $admin); $user->add_cap($network_cap); } } /* Check if we have upgraded from an older version */ if (version_compare($prev_ms_version, CODE_SNIPPETS_VERSION, '<')) { /* Update the plugin version stored in the database */ update_site_option('code_snippets_version', CODE_SNIPPETS_VERSION); } } }
function edit_translator($user_id, $language_pairs) { global $wpdb; $result = false; $_user = new WP_User($user_id); if (empty($language_pairs)) { $this->remove_translator($user_id); if ($user_id == $this->current_translator->ID) { $this->current_translator = null; } } else { if (!$_user->has_cap('translate')) { $_user->add_cap('translate'); } update_user_meta($user_id, $wpdb->prefix . 'language_pairs', $language_pairs); $result = true; if ($user_id == $this->current_translator->ID) { $this->current_translator->language_pairs = get_user_meta($user_id, $wpdb->prefix . 'language_pairs', true); } } return $result; }
/** * Make sure administrators can see Formidable menu * * @since 2.0 */ public static function maybe_add_permissions() { self::force_capability('frm_view_entries'); if (!current_user_can('administrator') || current_user_can('frm_view_forms')) { return; } $user_id = get_current_user_id(); $user = new WP_User($user_id); $frm_roles = self::frm_capabilities(); foreach ($frm_roles as $frm_role => $frm_role_description) { $user->add_cap($frm_role); unset($frm_role, $frm_role_description); } }
/** * @ticket 28374 */ function test_current_user_edit_caps() { $user = new WP_User( $this->factory->user->create( array( 'role' => 'contributor' ) ) ); wp_set_current_user( $user->ID ); $user->add_cap( 'publish_posts' ); $user->add_cap( 'publish_pages' ); $this->assertTrue( $user->has_cap( 'publish_posts' ) ); $this->assertTrue( $user->has_cap( 'publish_pages' ) ); $user->remove_cap( 'publish_pages' ); $this->assertFalse( $user->has_cap( 'publish_pages' ) ); }
/** * Handles the importation of Users/Members. * * @package s2Member\Imports * @since 110815 */ public static function import_users() { if (!empty($_POST['ws_plugin__s2member_pro_import_users']) && ($nonce = $_POST['ws_plugin__s2member_pro_import_users']) && wp_verify_nonce($nonce, 'ws-plugin--s2member-pro-import-users') && current_user_can('create_users')) { global $wpdb; // Global database object reference. /** @var \wpdb $wpdb This line for IDEs that need a reference. */ global $current_site, $current_blog; // Multisite Networking. @set_time_limit(0); // Make time for processing large import files. @ini_set('memory_limit', apply_filters('admin_memory_limit', WP_MAX_MEMORY_LIMIT)); remove_all_actions('profile_update') . remove_all_actions('user_register'); remove_all_actions('added_existing_user') . remove_all_actions('add_user_to_blog'); if (!empty($_FILES['ws_plugin__s2member_pro_import_users_file']) && empty($_FILES['ws_plugin__s2member_pro_import_users_file']['error'])) { $file = fopen($_FILES['ws_plugin__s2member_pro_import_users_file']['tmp_name'], 'r'); } else { if (!empty($_POST['ws_plugin__s2member_pro_import_users_direct_input'])) { fwrite($file = tmpfile(), trim(stripslashes($_POST['ws_plugin__s2member_pro_import_users_direct_input']))) . fseek($file, 0); } } $imported = $line = $line_index = 0; // Initialize these counters. $headers = array(); // Initialize the array of CSV import file headers. $user_keys = array(); // Initialize array of user keys. if (is_object($_user_row = $wpdb->get_row("SELECT * FROM `" . $wpdb->users . "` LIMIT 1"))) { foreach (array_keys((array) $_user_row) as $_user_key) { $user_keys[] = $_user_key; } } unset($_user_row, $_user_key); // Housekeeping. $user_keys = array_unique($user_keys); // Only unique keys please. if (isset($file) && is_resource($file)) { while (($_csv_data = version_compare(PHP_VERSION, '5.3', '>=') ? fgetcsv($file, 0, ',', '"', '"') : fgetcsv($file, 0, ',', '"')) !== FALSE) { $line_index = (int) $line_index + 1; // CSV lines. $line = (int) $line + 1; // CSV lines. $_csv_data = c_ws_plugin__s2member_utils_strings::trim_deep($_csv_data); if ($line_index === 1 && isset($_csv_data[0])) { $line = $line - 1; foreach ($_csv_data as $_header) { $headers[] = $_header; } unset($_header); // Housekeeping. continue; // We've got the headers now; let's move to the next line. } if ($line_index >= 1 && (!$headers || !in_array('ID', $headers, TRUE) && !in_array('user_login', $headers, TRUE))) { $errors[] = 'Line #' . $line . '. Missing first-line CSV headers; please try again.' . ' Please note that your CSV headers MUST contain (at a minimum), one of: "ID", or "user_login"'; break; // Stop here; we have no headers in this importation. } $_user_ID_key = array_search('ID', $headers); $_user_id = $_user_ID_key !== FALSE && !empty($_csv_data[$_user_ID_key]) ? (int) $_csv_data[$_user_ID_key] : 0; unset($_user_ID_key); // Housekeeping. $_user_login_key = array_search('user_login', $headers); $_user_login = $_user_login_key !== FALSE && !empty($_csv_data[$_user_login_key]) ? $_csv_data[$_user_login_key] : ''; unset($_user_login_key); // Housekeeping. $_user_pass_key = array_search('user_pass', $headers); $_user_pass = $_user_pass_key !== FALSE && !empty($_csv_data[$_user_pass_key]) ? $_csv_data[$_user_pass_key] : ''; unset($_user_pass_key); // Housekeeping. $_user_email_key = array_search('user_email', $headers); $_user_email = $_user_email_key !== FALSE && !empty($_csv_data[$_user_email_key]) ? $_csv_data[$_user_email_key] : ''; unset($_user_email_key); // Housekeeping. $_user_role_key = array_search('role', $headers); $_user_role = $_user_role_key !== FALSE && !empty($_csv_data[$_user_role_key]) ? $_csv_data[$_user_role_key] : ''; $_user_role = is_numeric($_user_role) ? $_user_role == 0 ? 'subscriber' : 's2member_level' . $_user_role : $_user_role; unset($_user_role_key); // Housekeeping. $_user_ccaps_key = array_search('ccaps', $headers); $_user_ccaps = $_user_ccaps_key !== FALSE && !empty($_csv_data[$_user_ccaps_key]) ? $_csv_data[$_user_ccaps_key] : ''; unset($_user_ccaps_key); // Housekeeping. if ($_user_login) { if (is_multisite()) { $_user_login = strtolower($_user_login); } $_user_login = sanitize_user($_user_login, is_multisite()); } if ($_user_email) { $_user_email = sanitize_email($_user_email); } $_user_id_exists_but_not_on_blog = 0; // Initialize. if (!$_user_id && $_user_login && $_user_email && is_multisite()) { $_user_id = $_user_id_exists_but_not_on_blog = c_ws_plugin__s2member_utils_users::ms_user_login_email_exists_but_not_on_blog($_user_login, $_user_email); } if (strcasecmp($_user_role, 'administrator') === 0) { $errors[] = 'Line #' . $line . '. Users cannot be updated to an Administrator. Bypassing this line for security.'; continue; // Skip this line. } if ($_user_email && !is_email($_user_email)) { $errors[] = 'Line #' . $line . '. Invalid email address (<code>' . esc_html($_user_email) . '</code>); please try again.'; continue; // Skip this line. } if ($_user_login && !validate_username($_user_login)) { $errors[] = 'Line #' . $line . '. Invalid username (<code>' . esc_html($_user_login) . '</code>).'; continue; // Skip this line. } if ($_user_id) { if (!is_object($_user = new WP_User($_user_id)) || !$_user->ID) { $errors[] = 'Line #' . $line . '. User ID# <code>' . esc_html($_user_id) . '</code> does NOT belong to an existing User.'; continue; // Skip this line. } if (is_super_admin($_user_id) || $_user->has_cap('administrator')) { $errors[] = 'Line #' . $line . '. User ID# <code>' . esc_html($_user_id) . '</code> belongs to an Administrator. Bypassing this line for security.'; continue; // Skip this line. } if (is_multisite() && $_user_id_exists_but_not_on_blog && add_existing_user_to_blog(array('user_id' => $_user_id, 'role' => 'subscriber')) !== TRUE) { $errors[] = 'Line #' . $line . '. Unknown user/site addition error, please try again.'; continue; // Skip this line. } if (is_multisite() && !is_user_member_of_blog($_user_id)) { $errors[] = 'Line #' . $line . '. User ID# <code>' . esc_html($_user_id) . '</code> does NOT belong to an existing User on this site.'; continue; // Skip this line. } if ($_user_email && strcasecmp($_user_email, $_user->user_email) !== 0 && email_exists($_user_email)) { $errors[] = 'Line #' . $line . '. Conflicting; the email address (<code>' . esc_html($_user_email) . '</code>), already exists.'; continue; // Skip this line. } if ($_user_login && strcasecmp($_user_login, $_user->user_login) !== 0 && username_exists($_user_login)) { $errors[] = 'Line #' . $line . '. Conflicting; the username (<code>' . esc_html($_user_login) . '</code>), already exists.'; continue; // Skip this line. } /** @var WP_Error $_email_login_validation */ if (is_multisite() && strcasecmp($_user_email, $_user->user_email) !== 0 && strcasecmp($_user_login, $_user->user_login) !== 0) { if (is_wp_error($_email_login_validation = wpmu_validate_user_signup($_user_login, $_user_email))) { if ($_email_login_validation->get_error_code()) { $errors[] = 'Line #' . $line . '. Network. The email and/or username (<code>' . esc_html($_user_email) . '</code> / <code>' . esc_html($_user_login) . '</code>) are in conflict w/ network rules.'; continue; // Skip this line. } } } unset($_email_login_validation); // Housekeeping. $_wp_update_user = array(); foreach ($user_keys as $_user_key) { if (($_user_data_key = array_search($_user_key, $headers)) !== FALSE && isset($_csv_data[$_user_data_key])) { $_wp_update_user[$_user_key] = $_csv_data[$_user_data_key]; } } unset($_user_key, $_user_data_key); // Housekeeping. if (is_multisite() && c_ws_plugin__s2member_utils_conds::is_multisite_farm() && !is_main_site()) { unset($_wp_update_user['user_login'], $_wp_update_user['user_pass']); } if (!wp_update_user(wp_slash($_wp_update_user))) { $errors[] = 'Line #' . $line . '. User ID# <code>' . esc_html($_user_id) . '</code> could NOT be updated. Unknown error, please try again.'; continue; // Skip this line. } unset($_wp_update_user); // Housekeeping. clean_user_cache($_user_id); wp_cache_delete($_user_id, 'user_meta'); $_user = new WP_User($_user_id); $imported = $imported + 1; } else { if (!$_user_email) { $errors[] = 'Line #' . $line . '. Missing email address.'; continue; // Skip this line. } if (email_exists($_user_email)) { $errors[] = 'Line #' . $line . '. Conflicting; the email address (<code>' . esc_html($_user_email) . '</code>), already exists.'; continue; // Skip this line. } if (!$_user_login) { $errors[] = 'Line #' . $line . '. Missing user login (i.e., username).'; continue; // Skip this line. } if (username_exists($_user_login)) { $errors[] = 'Line #' . $line . '. Conflicting; the username (<code>' . esc_html($_user_login) . '</code>), already exists.'; continue; // Skip this line. } /** @var WP_Error $_email_login_validation */ if (is_multisite() && is_wp_error($_email_login_validation = wpmu_validate_user_signup($_user_login, $_user_email))) { if ($_email_login_validation->get_error_code()) { $errors[] = 'Line #' . $line . '. Network. The email and/or username (<code>' . esc_html($_user_email) . '</code> / <code>' . esc_html($_user_login) . '</code>) are in conflict w/ network rules.'; continue; // Skip this line. } } unset($_email_login_validation); // Housekeeping. if (!($_user_id = wp_insert_user(wp_slash(array('user_login' => $_user_login, 'user_pass' => $_user_pass ? $_user_pass : wp_generate_password(12, FALSE), 'user_email' => $_user_email)))) || is_wp_error($_user_id)) { $errors[] = 'Line #' . $line . '. Unknown insertion error, please try again.'; continue; // Skip this line. } $_wp_update_user = array('ID' => $_user_id); foreach ($user_keys as $_user_key) { if (($_user_data_key = array_search($_user_key, $headers)) !== FALSE && isset($_csv_data[$_user_data_key])) { $_wp_update_user[$_user_key] = $_csv_data[$_user_data_key]; } } unset($_user_key, $_user_data_key); // Housekeeping. if (!wp_update_user(wp_slash($_wp_update_user))) { $errors[] = 'Line #' . $line . '. Post insertion update failed on User ID# <code>' . esc_html($_user_id) . '</code>. Unknown error, please try again.'; continue; // Skip this line. } unset($_wp_update_user); // Housekeeping. if (is_multisite()) { // New Users on a Multisite Network need this too. update_user_meta($_user_id, 's2member_originating_blog', $current_blog->blog_id); } clean_user_cache($_user_id); wp_cache_delete($_user_id, 'user_meta'); $_user = new WP_User($_user_id); $imported = $imported + 1; } if ($_user_role) { $_user->set_role($_user_role); } if ($_user_ccaps) { foreach ($_user->allcaps as $_cap => $_cap_enabled) { if (preg_match('/^access_s2member_ccap_/', $_cap)) { $_user->remove_cap($_cap); } } unset($_cap, $_cap_enabled); // Housekeeping. if (preg_replace('/^-all[' . "\r\n\t" . '\\s;,]*/', '', str_replace('+', '', $_user_ccaps))) { foreach (preg_split('/[' . "\r\n\t" . '\\s;,]+/', preg_replace('/^-all[' . "\r\n\t" . '\\s;,]*/', '', str_replace('+', '', $_user_ccaps))) as $_ccap) { if (strlen($_ccap = trim(strtolower(preg_replace('/[^a-z_0-9]/i', '', $_ccap))))) { $_user->add_cap('access_s2member_ccap_' . $_ccap); } } } } $_user_custom_fields = get_user_option('s2member_custom_fields', $_user_id); $_user_custom_fields = is_array($_user_custom_fields) ? $_user_custom_fields : array(); foreach ($headers as $_index => $_header) { if (strpos($_header, 'meta_key__') === 0) { if (isset($_csv_data[$_index])) { $_new_meta_value = $_csv_data[$_index]; $_user_meta_key = substr($_header, strlen('meta_key__')); if ($_user_meta_key === $wpdb->prefix . 'capabilities' && ($_user_role || $_user_ccaps)) { continue; } // Already handled via `role` and `ccaps`. if ($_user_meta_key === $wpdb->prefix . 'capabilities' && stripos($_new_meta_value, 'administrator') !== FALSE) { continue; } // Do not allow this for security purposes. if (is_multisite() && c_ws_plugin__s2member_utils_conds::is_multisite_farm() && !is_main_site()) { if (strpos($_user_meta_key, $wpdb->prefix) !== 0 && !in_array($_user_meta_key, array('first_name', 'last_name', 'nickname', 'description'), TRUE)) { continue; } } // Child sites may NOT update meta data for other child blogs. switch ($_user_meta_key) { case $wpdb->prefix . 'capabilities': case $wpdb->prefix . 's2member_sp_references': case $wpdb->prefix . 's2member_ipn_signup_vars': case $wpdb->prefix . 's2member_access_cap_times': case $wpdb->prefix . 's2member_paid_registration_times': case $wpdb->prefix . 's2member_file_download_access_arc': case $wpdb->prefix . 's2member_file_download_access_log': if (isset($_new_meta_value[0])) { // This handles JSON-decoding for known array values. if (!is_null($_new_meta_value_decoded = json_decode($_new_meta_value, TRUE))) { $_new_meta_value = maybe_serialize($_new_meta_value_decoded); } } break; } $_existing_meta_row = $wpdb->get_row("SELECT * FROM `" . $wpdb->usermeta . "` WHERE `user_id` = '" . esc_sql($_user_id) . "' AND `meta_key` = '" . esc_sql($_user_meta_key) . "' AND `meta_value` = '" . esc_sql($_new_meta_value) . "' LIMIT 1"); if (is_object($_existing_meta_row)) { continue; } // No need to update this; it is still the same value. $_existing_meta_rows = $wpdb->get_results("SELECT * FROM `" . $wpdb->usermeta . "` WHERE `user_id` = '" . esc_sql($_user_id) . "' AND `meta_key` = '" . esc_sql($_user_meta_key) . "' LIMIT 2"); if ($_existing_meta_rows && count($_existing_meta_rows) > 1) { continue; } // We don't update multivalue keys. This can cause database corruption via CSV import files. $_existing_meta_row = $_existing_meta_rows ? $_existing_meta_rows[0] : NULL; /** @var object $_existing_meta_row This line is for IDEs; so they don't choke. */ if (is_object($_existing_meta_row) && $_new_meta_value !== $_existing_meta_row->meta_value) { $wpdb->update($wpdb->usermeta, array('meta_value' => $_new_meta_value), array('umeta_id' => $_existing_meta_row->umeta_id)); } else { if (!is_object($_existing_meta_row)) { $wpdb->insert($wpdb->usermeta, array('user_id' => $_user_id, 'meta_key' => $_user_meta_key, 'meta_value' => $_new_meta_value)); } } } } else { if (strpos($_header, 'custom_field_key__') === 0) { if (isset($_csv_data[$_index])) { $_new_custom_field_value = $_csv_data[$_index]; if (!is_null($_new_custom_field_value_decoded = json_decode($_new_custom_field_value, TRUE))) { $_new_custom_field_value = $_new_custom_field_value_decoded; } $_user_custom_field_key = substr($_header, strlen('custom_field_key__')); $_user_custom_fields[$_user_custom_field_key] = $_new_custom_field_value; } } } } update_user_option($_user_id, 's2member_custom_fields', $_user_custom_fields); unset($_user_custom_fields, $_index, $_header); // Housekeeping. unset($_new_meta_value, $_new_meta_value_decoded, $_user_meta_key, $_existing_meta_rows, $_existing_meta_row); unset($_new_custom_field_value, $_new_custom_field_value_decoded, $_user_custom_field_key); } fclose($file); // Close the file resource handle now. unset($_csv_data, $_user, $_user_id, $_user_login, $_user_email); unset($_user_id_exists_but_not_on_blog, $_user_role, $_user_ccaps); } else { $errors[] = 'No data was received. Please try again.'; } // The upload failed, or it was empty. c_ws_plugin__s2member_admin_notices::display_admin_notice('Operation complete. Users/Members imported: <code>' . (int) $imported . '</code>.'); if (!empty($errors)) { // Here is where a detailed error log will be returned to the Site Owner; as a way of clarifying what just happened during importation. c_ws_plugin__s2member_admin_notices::display_admin_notice('<strong>The following errors were encountered during importation:</strong><ul style="font-size:80%; list-style:disc outside; margin-left:25px;"><li>' . implode('</li><li>', $errors) . '</li></ul>', TRUE); } } }
function update_membershipadmin_capability($user_id) { $user = new WP_User($user_id); if (!empty($_POST['membershipadmin']) && $_POST['membershipadmin'] == 'yes') { $user->add_cap('membershipadmin'); } else { $user->remove_cap('membershipadmin'); } }
/** * Handle postback from user manager */ function afmng_menu_usermng_postback() { switch ($_POST["action"]) { case 'update_user': foreach (afmng_db_get_users() as $user) { $user = new WP_User($user->ID); foreach (afmngdb::$caps as $cap) { if (!$user->has_cap($cap) && $_POST[$cap . ':' . $user->ID]) { $user->add_cap($cap); } else { if ($user->has_cap($cap) && !isset($_POST[$cap . ':' . $user->ID])) { $user->remove_cap($cap); } } } } break; } }
/** * Handles the importation of Users/Members. * * @package s2Member\Imports * @since 110815 * * @return null */ public static function import_users() { if (!empty($_POST["ws_plugin__s2member_pro_import_users"]) && ($nonce = $_POST["ws_plugin__s2member_pro_import_users"]) && wp_verify_nonce($nonce, "ws-plugin--s2member-pro-import-users") && current_user_can("create_users")) { global $wpdb; global $current_site, $current_blog; @set_time_limit(0); @ini_set("memory_limit", apply_filters("admin_memory_limit", WP_MAX_MEMORY_LIMIT)); remove_all_actions("profile_update") . remove_all_actions("user_register"); remove_all_actions("added_existing_user") . remove_all_actions("add_user_to_blog"); if (!empty($_FILES["ws_plugin__s2member_pro_import_users_file"]) && empty($_FILES["ws_plugin__s2member_pro_import_users_file"]["error"])) { $file = fopen($_FILES["ws_plugin__s2member_pro_import_users_file"]["tmp_name"], "r"); } else { if (!empty($_POST["ws_plugin__s2member_pro_import_users_direct_input"])) { fwrite($file = tmpfile(), trim(stripslashes($_POST["ws_plugin__s2member_pro_import_users_direct_input"]))) . fseek($file, 0); } } if (isset($file) && is_resource($file) && !($imported = 0)) { $custom_field_vars = array(); if ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_fields"]) { foreach (json_decode($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_fields"], TRUE) as $field) { $custom_field_var = preg_replace("/[^a-z0-9]/i", "_", strtolower($field["id"])); $custom_field_vars[] = $custom_field_var; } } sort($custom_field_vars, SORT_STRING); while (($data = version_compare(PHP_VERSION, "5.3", ">=") ? fgetcsv($file, 0, ",", '"', '"') : fgetcsv($file, 0, ",", '"')) !== false) { $line = (int) $line + 1; $data = c_ws_plugin__s2member_utils_strings::trim_deep($data); $data = stripslashes_deep($data); if ($line === 1 && strtoupper($data[0]) === "ID") { $line = $line - 1; continue; } if (is_multisite() && c_ws_plugin__s2member_utils_conds::is_multisite_farm() && !is_main_site()) { $ID = $data[0]; $user_login = is_multisite() ? strtolower($data[1]) : $data[1]; $user_login = preg_replace("/\\s+/", "", sanitize_user($user_login, is_multisite())); $user_pass = (string) ""; $first_name = $data[2]; $last_name = $data[3]; $display_name = $data[4]; $user_email = sanitize_email($data[5]); $user_url = $data[6]; $role = $data[7]; $custom_capabilities = $data[8]; $user_registered = $data[9] ? date("Y-m-d H:i:s", strtotime($data[9])) : ""; $paid_registration_times = $data[10] ? maybe_unserialize($data[10]) : ""; $last_payment_time = $data[11] ? strtotime($data[11]) : ""; $auto_eot_time = $data[12] ? strtotime($data[12]) : ""; $custom = $data[13]; $subscr_id = $data[14]; $subscr_gateway = strtolower($data[15]); $custom_fields = array(); if (count($data) > 16) { for ($i = 16, $j = 0; $i < count($data); $i++, $j++) { if (isset($custom_field_vars[$j])) { $custom_fields[$custom_field_vars[$j]] = maybe_unserialize($data[$i]); } } } } else { $ID = $data[0]; $user_login = is_multisite() ? strtolower($data[1]) : $data[1]; $user_login = preg_replace("/\\s+/", "", sanitize_user($user_login, is_multisite())); $user_pass = $data[2]; $first_name = $data[3]; $last_name = $data[4]; $display_name = $data[5]; $user_email = sanitize_email($data[6]); $user_url = $data[7]; $role = $data[8]; $custom_capabilities = $data[9]; $user_registered = $data[10] ? date("Y-m-d H:i:s", strtotime($data[10])) : ""; $paid_registration_times = $data[11] ? maybe_unserialize($data[11]) : ""; $last_payment_time = $data[12] ? strtotime($data[12]) : ""; $auto_eot_time = $data[13] ? strtotime($data[13]) : ""; $custom = $data[14]; $subscr_id = $data[15]; $subscr_gateway = strtolower($data[16]); $custom_fields = array(); if (count($data) > 17) { for ($i = 17, $j = 0; $i < count($data); $i++, $j++) { if (isset($custom_field_vars[$j])) { $custom_fields[$custom_field_vars[$j]] = maybe_unserialize($data[$i]); } } } } $role = is_numeric($role) ? $role == 0 ? "subscriber" : "s2member_level" . $role : $role; if ($paid_registration_times && !is_array($paid_registration_times)) { $paid_registration_times = array("level" => strtotime($paid_registration_times)); } $paid_registration_times = !$paid_registration_times || !is_array($paid_registration_times) ? array() : $paid_registration_times; $user_details = compact("ID", "user_login", "user_pass", "first_name", "last_name", "display_name", "user_email", "user_url", "role", "user_registered"); if (empty($user_details["user_pass"])) { // If there was NO Password given. unset($user_details["user_pass"]); } // Unset the Password array element. if ($ID) { if (is_object($user = new WP_User($ID)) && $user->ID) { if (!is_multisite() || is_user_member_of_blog($ID)) { if ((!is_multisite() || !is_super_admin($ID)) && !$user->has_cap("administrator")) { if (strtolower($role) !== "administrator") { if ($user_email && is_email($user_email)) { if ($user_login) { if (validate_username($user_login)) { if (($_same_email = strtolower($user_email) === strtolower($user->user_email)) || !email_exists($user_email)) { if (($_same_login = strtolower($user_login) === strtolower($user->user_login)) || !username_exists($user_login)) { if (!is_multisite() || $_same_email && $_same_login || ($_ = wpmu_validate_user_signup($user_login, $user_email)) && (!is_wp_error($_["errors"]) || !$_["errors"]->get_error_code())) { if (is_multisite() && c_ws_plugin__s2member_utils_conds::is_multisite_farm() && !is_main_site()) { unset($user_details["user_login"], $user_details["user_pass"]); } if ($user_id = wp_update_user($user_details)) { $user = new WP_User($ID); // Refresh object value. update_user_option($user_id, "s2member_custom", $custom); update_user_option($user_id, "s2member_subscr_id", $subscr_id); update_user_option($user_id, "s2member_subscr_gateway", $subscr_gateway); update_user_option($user_id, "s2member_auto_eot_time", $auto_eot_time); update_user_option($user_id, "s2member_paid_registration_times", $paid_registration_times); update_user_option($user_id, "s2member_last_payment_time", $last_payment_time); update_user_option($user_id, "s2member_custom_fields", $custom_fields); foreach ($user->allcaps as $cap => $cap_enabled) { if (preg_match("/^access_s2member_ccap_/", $cap)) { $user->remove_cap($ccap = $cap); } } if ($custom_capabilities && preg_replace("/^-all[\r\n\t\\s;,]*/", "", str_replace("+", "", $custom_capabilities))) { foreach (preg_split("/[\r\n\t\\s;,]+/", preg_replace("/^-all[\r\n\t\\s;,]*/", "", str_replace("+", "", $custom_capabilities))) as $ccap) { if (strlen($ccap = trim(strtolower(preg_replace("/[^a-z_0-9]/i", "", $ccap))))) { $user->add_cap("access_s2member_ccap_" . $ccap); } } } $imported = $imported + 1; } else { $errors[] = "Line #" . $line . ". User ID# <code>" . $ID . "</code> could NOT be updated. Unknown error, please try again."; } } else { $errors[] = "Line #" . $line . ". Network. The Username and/or Email (<code>" . esc_html($user_login) . "</code> / <code>" . esc_html($user_email) . "</code>) are in conflict w/ Network rules."; } } else { $errors[] = "Line #" . $line . ". Conflicting. The Username (<code>" . esc_html($user_login) . "</code>), already exists."; } } else { $errors[] = "Line #" . $line . ". Conflicting. The Email address (<code>" . esc_html($user_email) . "</code>), already exists."; } } else { $errors[] = "Line #" . $line . ". Invalid Username (<code>" . esc_html($user_login) . "</code>). Lowercase alphanumerics are required."; } } else { $errors[] = "Line #" . $line . ". Missing Username; please try again."; } // We have two separate errors for Usernames. This provides clarity. } else { $errors[] = "Line #" . $line . ". Missing or invalid Email address (<code>" . esc_html($user_email) . "</code>); please try again."; } } else { $errors[] = "Line #" . $line . ". User ID# <code>" . $ID . "</code> cannot be updated to an Administrator. Bypassing this line for security."; } } else { $errors[] = "Line #" . $line . ". User ID# <code>" . $ID . "</code> belongs to an Administrator. Bypassing this line for security."; } } else { $errors[] = "Line #" . $line . ". User ID# <code>" . $ID . "</code> does NOT belong to an existing User on this site."; } } else { $errors[] = "Line #" . $line . ". User ID# <code>" . $ID . "</code> does NOT belong to an existing User."; } } else { if (is_multisite() && ($user_id = c_ws_plugin__s2member_utils_users::ms_user_login_email_exists_but_not_on_blog($user_login, $user_email)) && !is_super_admin($user_id)) { if (strtolower($role) !== "administrator") { if (add_existing_user_to_blog(array("user_id" => $user_id, "role" => $role))) { if (is_object($user = new WP_User($user_id)) && $user->ID) { update_user_option($user_id, "s2member_custom", $custom); update_user_option($user_id, "s2member_subscr_id", $subscr_id); update_user_option($user_id, "s2member_subscr_gateway", $subscr_gateway); update_user_option($user_id, "s2member_auto_eot_time", $auto_eot_time); update_user_option($user_id, "s2member_paid_registration_times", $paid_registration_times); update_user_option($user_id, "s2member_last_payment_time", $last_payment_time); update_user_option($user_id, "s2member_custom_fields", $custom_fields); foreach ($user->allcaps as $cap => $cap_enabled) { if (preg_match("/^access_s2member_ccap_/", $cap)) { $user->remove_cap($ccap = $cap); } } if ($custom_capabilities && preg_replace("/^-all[\r\n\t\\s;,]*/", "", str_replace("+", "", $custom_capabilities))) { foreach (preg_split("/[\r\n\t\\s;,]+/", preg_replace("/^-all[\r\n\t\\s;,]*/", "", str_replace("+", "", $custom_capabilities))) as $ccap) { if (strlen($ccap = trim(strtolower(preg_replace("/[^a-z_0-9]/i", "", $ccap))))) { $user->add_cap("access_s2member_ccap_" . $ccap); } } } $imported = $imported + 1; } else { $errors[] = "Line #" . $line . ". Unknown object error, please try again."; } } else { $errors[] = "Line #" . $line . ". Unknown User/site addition error, please try again."; } } else { $errors[] = "Line #" . $line . ". Role cannot be Administrator. Bypassing this line for security."; } } else { if (strtolower($role) !== "administrator") { if ($user_email && is_email($user_email)) { if ($user_login) { if (validate_username($user_login)) { if (!email_exists($user_email)) { if (!username_exists($user_login)) { if (!is_multisite() || ($_ = wpmu_validate_user_signup($user_login, $user_email)) && (!is_wp_error($_["errors"]) || !$_["errors"]->get_error_code())) { if ($user_id = wp_insert_user($user_details)) { if (is_object($user = new WP_User($user_id)) && $user->ID) { if ($user_pass) { // If we are given an "un-encrypted Password". wp_update_user(array("ID" => $user_id, "user_pass" => $user_pass)); } if (is_multisite()) { // New Users on a Multisite Network need this too. update_user_meta($user_id, "s2member_originating_blog", $current_blog->blog_id); } update_user_option($user_id, "s2member_custom", $custom); update_user_option($user_id, "s2member_subscr_id", $subscr_id); update_user_option($user_id, "s2member_subscr_gateway", $subscr_gateway); update_user_option($user_id, "s2member_auto_eot_time", $auto_eot_time); update_user_option($user_id, "s2member_paid_registration_times", $paid_registration_times); update_user_option($user_id, "s2member_last_payment_time", $last_payment_time); update_user_option($user_id, "s2member_custom_fields", $custom_fields); foreach ($user->allcaps as $cap => $cap_enabled) { if (preg_match("/^access_s2member_ccap_/", $cap)) { $user->remove_cap($ccap = $cap); } } if ($custom_capabilities && preg_replace("/^-all[\r\n\t\\s;,]*/", "", str_replace("+", "", $custom_capabilities))) { foreach (preg_split("/[\r\n\t\\s;,]+/", preg_replace("/^-all[\r\n\t\\s;,]*/", "", str_replace("+", "", $custom_capabilities))) as $ccap) { if (strlen($ccap = trim(strtolower(preg_replace("/[^a-z_0-9]/i", "", $ccap))))) { $user->add_cap("access_s2member_ccap_" . $ccap); } } } $imported = $imported + 1; } else { $errors[] = "Line #" . $line . ". Unknown object error, please try again."; } } else { $errors[] = "Line #" . $line . ". Unknown insertion error, please try again."; } } else { $errors[] = "Line #" . $line . ". Network. The Username and/or Email (<code>" . esc_html($user_login) . "</code> / <code>" . esc_html($user_email) . "</code>) are in conflict w/ Network rules."; } } else { $errors[] = "Line #" . $line . ". Conflicting. The Username (<code>" . esc_html($user_login) . "</code>), already exists."; } } else { $errors[] = "Line #" . $line . ". Conflicting. The Email address (<code>" . esc_html($user_email) . "</code>), already exists."; } } else { $errors[] = "Line #" . $line . ". Invalid Username (<code>" . esc_html($user_login) . "</code>). Lowercase alphanumerics are required."; } } else { $errors[] = "Line #" . $line . ". Missing Username; please try again."; } // We have two separate errors for Usernames. This provides clarity. } else { $errors[] = "Line #" . $line . ". Missing or invalid Email address (<code>" . esc_html($user_email) . "</code>); please try again."; } } else { $errors[] = "Line #" . $line . ". Role cannot be Administrator. Bypassing this line for security."; } } } } fclose($file); } else { $errors[] = "No data was received. Please try again."; } // The upload failed, or it was empty. c_ws_plugin__s2member_admin_notices::display_admin_notice('Operation complete. Users/Members imported: <code>' . (int) $imported . '</code>.'); if (!empty($errors)) { // Here is where a detailed error log will be returned to the Site Owner; as a way of clarifying what just happened during importation. c_ws_plugin__s2member_admin_notices::display_admin_notice('<strong>The following errors were encountered during importation:</strong><ul style="font-size:80%; list-style:disc outside; margin-left:25px;"><li>' . implode("</li><li>", $errors) . '</li></ul>', true); } } return; }
/** * Add a capability to roles and/or users * * @brief Add a cap * @since 1.5.4 * * @param WPDKUserCapability $cap An instance of WPDKUserCapability class * @param array $roles Optional. List of roles where add this cap * @param array $users Optional. List of user id where add this cap */ public function add_cap($cap, $roles = array(), $users = array()) { // Add this cap to roles? if (!empty($roles)) { foreach ($roles as $role) { WPDKUserRoles::init()->add_cap($role, $cap->id); } } // Add this cap to users? if (!empty($users)) { foreach ($users as $user_id) { $user = new WP_User($user_id); $user->add_cap($cap->id); } } // Store the extra info $this->update_extended_data($cap); }
/** * s2Member's PayPal Auto-Return/PDT handler (inner processing routine). * * @package s2Member\PayPal * @since 110720 * * @param array $vars Required. An array of defined variables passed by {@link s2Member\PayPal\c_ws_plugin__s2member_paypal_return_in::paypal_return()}. * * @return array|bool The original ``$paypal`` array passed in (extracted) from ``$vars``, or false when conditions do NOT apply. */ public static function cp($vars = array()) { extract($vars, EXTR_OVERWRITE | EXTR_REFS); if (!empty($paypal['txn_type']) && preg_match('/^web_accept$/i', $paypal['txn_type']) && (!empty($paypal['item_number']) && preg_match($GLOBALS['WS_PLUGIN__']['s2member']['c']['membership_item_number_wo_level_regex'], $paypal['item_number'])) && (empty($paypal['payment_status']) || empty($payment_status_issues) || !preg_match($payment_status_issues, $paypal['payment_status'])) && !empty($paypal['txn_id']) && !empty($paypal['payer_email']) && (!empty($paypal['txn_baid']) || ($paypal['txn_baid'] = $paypal['txn_id'])) && (!empty($paypal['txn_cid']) || ($paypal['txn_cid'] = $paypal['txn_id']))) { foreach (array_keys(get_defined_vars()) as $__v) { $__refs[$__v] =& ${$__v}; } do_action('ws_plugin__s2member_during_paypal_return_before_new_ccaps', get_defined_vars()); unset($__refs, $__v); if (!get_transient($transient_rtn = 's2m_rtn_' . md5('s2member_transient_' . $_paypal_s)) && set_transient($transient_rtn, time(), 31556926 * 10)) { $paypal['s2member_log'][] = 's2Member `txn_type` identified as ( `web_accept` ) w/ update vars for Capabilities w/o Level.'; list($paypal['level'], $paypal['ccaps'], $paypal['eotper']) = preg_split('/\\:/', $paypal['item_number'], 3); $paypal['ip'] = preg_match('/ip address/i', $paypal['option_name2']) && $paypal['option_selection2'] ? $paypal['option_selection2'] : ''; $paypal['ip'] = !$paypal['ip'] && preg_match('/^[a-z0-9]+~[0-9\\.]+$/i', $paypal['invoice']) ? preg_replace('/^[a-z0-9]+~/i', '', $paypal['invoice']) : $paypal['ip']; $paypal['ip'] = !$paypal['ip'] && $_SERVER['REMOTE_ADDR'] ? $_SERVER['REMOTE_ADDR'] : $paypal['ip']; $paypal['currency'] = strtoupper($paypal['mc_currency']); // Normalize input currency. $paypal['currency_symbol'] = c_ws_plugin__s2member_utils_cur::symbol($paypal['currency']); if (preg_match('/(referenc|associat|updat|upgrad)/i', $paypal['option_name1']) && $paypal['option_selection1']) { if (($user_id = c_ws_plugin__s2member_utils_users::get_user_id_with($paypal['txn_id'], $paypal['option_selection1'])) && is_object($user = new WP_User($user_id)) && $user->ID) { if (!$user->has_cap('administrator')) { $processing = $during = TRUE; // Yes, we ARE processing this. $fields = get_user_option('s2member_custom_fields', $user_id); // These will be needed in the routines below. $user_reg_ip = get_user_option('s2member_registration_ip', $user_id); // Original IP during Registration. $user_reg_ip = $paypal['ip'] = $user_reg_ip ? $user_reg_ip : $paypal['ip']; // Now merge conditionally. if (is_multisite() && !is_user_member_of_blog($user_id)) { add_existing_user_to_blog(array('user_id' => $user_id, 'role' => get_option('default_role'))); $user = new WP_User($user_id); } if ($paypal['ccaps'] && preg_match('/^-all/', str_replace('+', '', $paypal['ccaps']))) { foreach ($user->allcaps as $cap => $cap_enabled) { if (preg_match('/^access_s2member_ccap_/', $cap)) { $user->remove_cap($ccap = $cap); } } } if ($paypal['ccaps'] && preg_replace('/^-all[' . "\r\n\t" . '\\s;,]*/', '', str_replace('+', '', $paypal['ccaps']))) { foreach (preg_split('/[' . "\r\n\t" . '\\s;,]+/', preg_replace('/^-all[' . "\r\n\t" . '\\s;,]*/', '', str_replace('+', '', $paypal['ccaps']))) as $ccap) { if (strlen($ccap = trim(strtolower(preg_replace('/[^a-z_0-9]/i', '', $ccap))))) { $user->add_cap('access_s2member_ccap_' . $ccap); } } } if (!get_user_option('s2member_registration_ip', $user_id)) { update_user_option($user_id, 's2member_registration_ip', $paypal['ip']); } $paypal['s2member_log'][] = 's2Member Custom Capabilities updated w/ advanced update routines.'; setcookie('s2member_tracking', $s2member_tracking = c_ws_plugin__s2member_utils_encryption::encrypt($paypal['txn_id']), time() + 31556926, COOKIEPATH, COOKIE_DOMAIN) . setcookie('s2member_tracking', $s2member_tracking, time() + 31556926, SITECOOKIEPATH, COOKIE_DOMAIN) . ($_COOKIE['s2member_tracking'] = $s2member_tracking); $paypal['s2member_log'][] = 'Transient Tracking Cookie set on ( `web_accept` ) w/ update vars for Capabilities w/o Level.'; if ($processing && ($code = $GLOBALS['WS_PLUGIN__']['s2member']['o']['ccap_tracking_codes']) && is_array($cv = preg_split('/\\|/', $paypal['custom']))) { if (($code = preg_replace('/%%cv([0-9]+)%%/ei', 'trim(@$cv[$1])', $code)) && ($code = preg_replace('/%%(?:subscr|txn)_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_id']), $code))) { if (($code = preg_replace('/%%(?:subscr|txn)_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_baid']), $code)) && ($code = preg_replace('/%%(?:subscr|txn)_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_cid']), $code))) { if (($code = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $code)) && ($code = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $code))) { if (($code = preg_replace('/%%amount%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['mc_gross']), $code)) && ($code = preg_replace('/%%txn_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_id']), $code))) { if (($code = preg_replace('/%%item_number%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['item_number']), $code)) && ($code = preg_replace('/%%item_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['item_name']), $code))) { if (($code = preg_replace('/%%first_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['first_name']), $code)) && ($code = preg_replace('/%%last_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['last_name']), $code))) { if ($code = preg_replace('/%%full_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(trim($paypal['first_name'] . ' ' . $paypal['last_name'])), $code)) { if ($code = preg_replace('/%%payer_email%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['payer_email']), $code)) { if (($code = preg_replace('/%%user_first_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user->first_name), $code)) && ($code = preg_replace('/%%user_last_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user->last_name), $code))) { if ($code = preg_replace('/%%user_full_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(trim($user->first_name . ' ' . $user->last_name)), $code)) { if ($code = preg_replace('/%%user_email%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user->user_email), $code)) { if ($code = preg_replace('/%%user_login%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user->user_login), $code)) { if ($code = preg_replace('/%%user_ip%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user_reg_ip), $code)) { if ($code = preg_replace('/%%user_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user_id), $code)) { if (is_array($fields) && !empty($fields)) { foreach ($fields as $var => $val) { if (!($code = preg_replace('/%%' . preg_quote($var, '/') . '%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(maybe_serialize($val)), $code))) { break; } } } if ($code = trim(preg_replace('/%%(.+?)%%/i', '', $code))) { $paypal['s2member_log'][] = 'Storing Payment Tracking Codes into a Transient Queue. These will be processed on-site.'; set_transient('s2m_' . md5('s2member_transient_ccap_tracking_codes_' . $paypal['txn_id']), $code, 43200); } } } } } } } } } } } } } } } } foreach (array_keys(get_defined_vars()) as $__v) { $__refs[$__v] =& ${$__v}; } do_action('ws_plugin__s2member_during_paypal_return_during_new_ccaps', get_defined_vars()); unset($__refs, $__v); if ($redirection_url_after_capabilities = apply_filters('ws_plugin__s2member_redirection_url_after_capabilities', FALSE, get_defined_vars())) { $paypal['s2member_log'][] = 'Redirecting Customer to a custom URL after Capabilities: ' . $redirection_url_after_capabilities; wp_redirect($redirection_url_after_capabilities); } else { $paypal['s2member_log'][] = 'Redirecting Customer to the Login Page (after displaying a quick thank-you message). They need to log back in.'; echo c_ws_plugin__s2member_return_templates::return_template($paypal['subscr_gateway'], '<strong>' . _x('Thank you! You now have access to:', 's2member-front', 's2member') . '<br /><em>' . esc_html($paypal['item_name']) . '</em></strong>', _x('Please Log Back In (Click Here)', 's2member-front', 's2member'), wp_login_url()); } } else { $paypal['s2member_log'][] = 'Unable to add new Capabilities. The existing User ID is associated with an Administrator. Stopping here. Otherwise, an Administrator could lose access. Please make sure that you are NOT logged in as an Administrator while testing.'; $paypal['s2member_log'][] = 'Redirecting Customer to the Home Page (after displaying an error message).'; echo c_ws_plugin__s2member_return_templates::return_template($paypal['subscr_gateway'], _x('<strong>ERROR:</strong> Unable to add new Capabilities.<br />Please contact Support for assistance.<br /><br />The existing User ID is associated with an Administrator. Stopping here. Otherwise, an Administrator could lose access. Please make sure that you are NOT logged in as an Administrator while testing.', 's2member-front', 's2member'), _x('Back To Home Page', 's2member-front', 's2member'), home_url('/')); } } else { $paypal['s2member_log'][] = 'Unable to add new Capabilities. Could not get the existing User ID from the DB.'; $paypal['s2member_log'][] = 'Redirecting Customer to the Home Page (after displaying an error message).'; echo c_ws_plugin__s2member_return_templates::return_template($paypal['subscr_gateway'], _x('<strong>ERROR:</strong> Unable to add new Capabilities.<br />Please contact Support for assistance.<br /><br />Could not get the existing User ID from the DB.', 's2member-front', 's2member'), _x('Back To Home Page', 's2member-front', 's2member'), home_url('/')); } } else { $paypal['s2member_log'][] = 'Unable to add new Capabilities. Missing User/Member details. Please check the `on0` and `os0` variables in your Button Code.'; $paypal['s2member_log'][] = 'Redirecting Customer to the Home Page (after displaying an error message).'; echo c_ws_plugin__s2member_return_templates::return_template($paypal['subscr_gateway'], _x('<strong>ERROR:</strong> Unable to add new Capabilities.<br />Please contact Support for assistance.<br /><br />Missing User/Member details.', 's2member-front', 's2member'), _x('Back To Home Page', 's2member-front', 's2member'), home_url('/')); } } else { $paypal['s2member_log'][] = 'Page Expired. Duplicate Return-Data.'; $paypal['s2member_log'][] = 's2Member `txn_type` identified as ( `web_accept` ) w/ update vars for Capabilities w/o Level.'; $paypal['s2member_log'][] = 'Page Expired. Instructing customer to check their email for further details about how to obtain access to what they purchased.'; echo c_ws_plugin__s2member_return_templates::return_template($paypal['subscr_gateway'], '<strong>' . _x('Thank you! Please check your email for further details regarding your purchase.', 's2member-front', 's2member') . '</strong>', _x('Return to Home Page', 's2member-front', 's2member'), home_url('/')); } foreach (array_keys(get_defined_vars()) as $__v) { $__refs[$__v] =& ${$__v}; } do_action('ws_plugin__s2member_during_paypal_return_after_new_ccaps', get_defined_vars()); unset($__refs, $__v); return apply_filters('c_ws_plugin__s2member_paypal_return_in_wa_ccaps_wo_level', $paypal, get_defined_vars()); } else { return apply_filters('c_ws_plugin__s2member_paypal_return_in_wa_ccaps_wo_level', FALSE, get_defined_vars()); } }
/** * s2Member's PayPal IPN handler (inner processing routine). * * @package s2Member\PayPal * @since 110815 * * @param array $vars Required. An array of defined variables passed by {@link s2Member\PayPal\c_ws_plugin__s2member_paypal_notify_in::paypal_notify()}. * @return array|bool The original ``$paypal`` array passed in (extracted) from ``$vars``, or false when conditions do NOT apply. * * @todo Optimize with ``empty()`` and ``isset()``. */ public static function cp($vars = array()) { extract($vars); // Extract all vars passed in from: ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``. if (!empty($paypal["txn_type"]) && preg_match("/^web_accept\$/i", $paypal["txn_type"]) && (!empty($paypal["item_number"]) && preg_match($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["membership_item_number_wo_level_regex"], $paypal["item_number"])) && (empty($paypal["payment_status"]) || empty($payment_status_issues) || !preg_match($payment_status_issues, $paypal["payment_status"])) && (!empty($paypal["txn_id"]) && ($paypal["subscr_id"] = $paypal["txn_id"])) && !empty($paypal["payer_email"])) { foreach (array_keys(get_defined_vars()) as $__v) { $__refs[$__v] =& ${$__v}; } do_action("ws_plugin__s2member_during_paypal_notify_before_new_ccaps", get_defined_vars()); unset($__refs, $__v); if (!get_transient($transient_ipn = "s2m_ipn_" . md5("s2member_transient_" . $_paypal_s)) && set_transient($transient_ipn, time(), 31556926 * 10)) { $paypal["s2member_log"][] = "s2Member `txn_type` identified as ( `web_accept` ) w/ update vars for Capabilities w/o Level."; list($paypal["level"], $paypal["ccaps"], $paypal["eotper"]) = preg_split("/\\:/", $paypal["item_number"], 3); $paypal["ip"] = preg_match("/ip address/i", $paypal["option_name2"]) && $paypal["option_selection2"] ? $paypal["option_selection2"] : ""; $paypal["ip"] = !$paypal["ip"] && preg_match("/^[a-z0-9]+~[0-9\\.]+\$/i", $paypal["invoice"]) ? preg_replace("/^[a-z0-9]+~/i", "", $paypal["invoice"]) : $paypal["ip"]; if (preg_match("/(referenc|associat|updat|upgrad)/i", $paypal["option_name1"]) && $paypal["option_selection1"]) { if (($user_id = c_ws_plugin__s2member_utils_users::get_user_id_with($paypal["txn_id"], $paypal["option_selection1"])) && is_object($user = new WP_User($user_id)) && $user->ID) { if (!$user->has_cap("administrator")) { $processing = $during = true; // Yes, we ARE processing this. foreach (array_keys(get_defined_vars()) as $__v) { $__refs[$__v] =& ${$__v}; } do_action("ws_plugin__s2member_during_paypal_notify_during_before_new_ccaps", get_defined_vars()); unset($__refs, $__v); $fields = get_user_option("s2member_custom_fields", $user_id); // These will be needed in the routines below. $user_reg_ip = get_user_option("s2member_registration_ip", $user_id); // Original IP during Registration. $user_reg_ip = $paypal["ip"] = $user_reg_ip ? $user_reg_ip : $paypal["ip"]; // Now merge conditionally. if (is_multisite() && !is_user_member_of_blog($user_id)) { add_existing_user_to_blog(array("user_id" => $user_id, "role" => get_option("default_role"))); $user = new WP_User($user_id); } if ($paypal["ccaps"] && preg_match("/^-all/", str_replace("+", "", $paypal["ccaps"]))) { foreach ($user->allcaps as $cap => $cap_enabled) { if (preg_match("/^access_s2member_ccap_/", $cap)) { $user->remove_cap($ccap = $cap); } } } if ($paypal["ccaps"] && preg_replace("/^-all[\r\n\t\\s;,]*/", "", str_replace("+", "", $paypal["ccaps"]))) { foreach (preg_split("/[\r\n\t\\s;,]+/", preg_replace("/^-all[\r\n\t\\s;,]*/", "", str_replace("+", "", $paypal["ccaps"]))) as $ccap) { if (strlen($ccap = trim(strtolower(preg_replace("/[^a-z_0-9]/i", "", $ccap))))) { $user->add_cap("access_s2member_ccap_" . $ccap); } } } if (!get_user_option("s2member_registration_ip", $user_id)) { update_user_option($user_id, "s2member_registration_ip", $paypal["ip"]); } $paypal["s2member_log"][] = "s2Member Custom Capabilities updated w/ advanced update routines."; $sbj = $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["ccap_email_subject"]; // The same for standard and w/ Pro Forms. $msg = $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["ccap_email_message"]; // The same for standard and w/ Pro Forms. $rec = $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["ccap_email_recipients"]; // The same for standard and w/ Pro Forms. if (($rec = preg_replace("/%%cv([0-9]+)%%/ei", 'trim($cv[$1])', $rec)) && ($rec = preg_replace("/%%subscr_id%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($paypal["subscr_id"]), $rec))) { if (($rec = preg_replace("/%%amount%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($paypal["mc_gross"]), $rec)) && ($rec = preg_replace("/%%txn_id%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($paypal["txn_id"]), $rec))) { if (($rec = preg_replace("/%%item_number%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($paypal["item_number"]), $rec)) && ($rec = preg_replace("/%%item_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($paypal["item_name"]), $rec))) { if (($rec = preg_replace("/%%first_name%%/i", c_ws_plugin__s2member_utils_strings::esc_dq(c_ws_plugin__s2member_utils_strings::esc_ds($paypal["first_name"])), $rec)) && ($rec = preg_replace("/%%last_name%%/i", c_ws_plugin__s2member_utils_strings::esc_dq(c_ws_plugin__s2member_utils_strings::esc_ds($paypal["last_name"])), $rec))) { if ($rec = preg_replace("/%%full_name%%/i", c_ws_plugin__s2member_utils_strings::esc_dq(c_ws_plugin__s2member_utils_strings::esc_ds(trim($paypal["first_name"] . " " . $paypal["last_name"]))), $rec)) { // **NOTE** c_ws_plugin__s2member_utils_strings::esc_dq() is applied here. (ex. "N\"ame" <email>). if ($rec = preg_replace("/%%payer_email%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($paypal["payer_email"]), $rec)) { if (($rec = preg_replace("/%%full_coupon_code%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($coupon["full_coupon_code"]), $rec)) && ($rec = preg_replace("/%%coupon_code%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($coupon["coupon_code"]), $rec)) && ($rec = preg_replace("/%%coupon_affiliate_id%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($coupon["affiliate_id"]), $rec))) { if (($rec = preg_replace("/%%user_first_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($user->first_name), $rec)) && ($rec = preg_replace("/%%user_last_name%%/i", 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_ds(trim($user->first_name . " " . $user->last_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_ip%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($user_reg_ip), $rec)) { if ($rec = preg_replace("/%%user_id%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($user_id), $rec)) { if (($sbj = preg_replace("/%%cv([0-9]+)%%/ei", 'trim($cv[$1])', $sbj)) && ($sbj = preg_replace("/%%subscr_id%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($paypal["subscr_id"]), $sbj))) { if (($sbj = preg_replace("/%%amount%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($paypal["mc_gross"]), $sbj)) && ($sbj = preg_replace("/%%txn_id%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($paypal["txn_id"]), $sbj))) { if (($sbj = preg_replace("/%%item_number%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($paypal["item_number"]), $sbj)) && ($sbj = preg_replace("/%%item_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($paypal["item_name"]), $sbj))) { if (($sbj = preg_replace("/%%first_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($paypal["first_name"]), $sbj)) && ($sbj = preg_replace("/%%last_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($paypal["last_name"]), $sbj))) { if ($sbj = preg_replace("/%%full_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(trim($paypal["first_name"] . " " . $paypal["last_name"])), $sbj)) { if ($sbj = preg_replace("/%%payer_email%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($paypal["payer_email"]), $sbj)) { if (($sbj = preg_replace("/%%full_coupon_code%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($coupon["full_coupon_code"]), $sbj)) && ($sbj = preg_replace("/%%coupon_code%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($coupon["coupon_code"]), $sbj)) && ($sbj = preg_replace("/%%coupon_affiliate_id%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($coupon["affiliate_id"]), $sbj))) { if (($sbj = preg_replace("/%%user_first_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($user->first_name), $sbj)) && ($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(trim($user->first_name . " " . $user->last_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_ip%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($user_reg_ip), $sbj)) { if ($sbj = preg_replace("/%%user_id%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($user_id), $sbj)) { if (($msg = preg_replace("/%%cv([0-9]+)%%/ei", 'trim($cv[$1])', $msg)) && ($msg = preg_replace("/%%subscr_id%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($paypal["subscr_id"]), $msg))) { if (($msg = preg_replace("/%%amount%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($paypal["mc_gross"]), $msg)) && ($msg = preg_replace("/%%txn_id%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($paypal["txn_id"]), $msg))) { if (($msg = preg_replace("/%%item_number%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($paypal["item_number"]), $msg)) && ($msg = preg_replace("/%%item_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($paypal["item_name"]), $msg))) { if (($msg = preg_replace("/%%first_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($paypal["first_name"]), $msg)) && ($msg = preg_replace("/%%last_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($paypal["last_name"]), $msg))) { if ($msg = preg_replace("/%%full_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(trim($paypal["first_name"] . " " . $paypal["last_name"])), $msg)) { if ($msg = preg_replace("/%%payer_email%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($paypal["payer_email"]), $msg)) { if (($msg = preg_replace("/%%full_coupon_code%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($coupon["full_coupon_code"]), $msg)) && ($msg = preg_replace("/%%coupon_code%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($coupon["coupon_code"]), $msg)) && ($msg = preg_replace("/%%coupon_affiliate_id%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($coupon["affiliate_id"]), $msg))) { if (($msg = preg_replace("/%%user_first_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($user->first_name), $msg)) && ($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(trim($user->first_name . " " . $user->last_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_ip%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($user_reg_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) { $rec = preg_replace("/%%" . preg_quote($var, "/") . "%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(maybe_serialize($val)), $rec); $sbj = preg_replace("/%%" . preg_quote($var, "/") . "%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(maybe_serialize($val)), $sbj); $msg = preg_replace("/%%" . preg_quote($var, "/") . "%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(maybe_serialize($val)), $msg); } } 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()) { $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) { c_ws_plugin__s2member_email_configs::email_config() . wp_mail($recipient, apply_filters("ws_plugin__s2member_capabilities_email_sbj", $sbj, get_defined_vars()), apply_filters("ws_plugin__s2member_capabilities_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(); } $paypal["s2member_log"][] = "Capability Confirmation Email sent to: " . $rec . "."; } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } if ($processing && $_REQUEST["s2member_paypal_proxy"] && ($url = $_REQUEST["s2member_paypal_proxy_return_url"]) && is_array($cv = preg_split("/\\|/", $paypal["custom"]))) { if (($url = preg_replace("/%%cv([0-9]+)%%/ei", 'urlencode(trim($cv[$1]))', $url)) && ($url = preg_replace("/%%subscr_id%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(urlencode($paypal["subscr_id"])), $url))) { if (($url = preg_replace("/%%amount%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(urlencode($paypal["mc_gross"])), $url)) && ($url = preg_replace("/%%txn_id%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(urlencode($paypal["txn_id"])), $url))) { if (($url = preg_replace("/%%item_number%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(urlencode($paypal["item_number"])), $url)) && ($url = preg_replace("/%%item_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(urlencode($paypal["item_name"])), $url))) { if (($url = preg_replace("/%%first_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(urlencode($paypal["first_name"])), $url)) && ($url = preg_replace("/%%last_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(urlencode($paypal["last_name"])), $url))) { if ($url = preg_replace("/%%full_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(urlencode(trim($paypal["first_name"] . " " . $paypal["last_name"]))), $url)) { if ($url = preg_replace("/%%payer_email%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(urlencode($paypal["payer_email"])), $url)) { if (($url = preg_replace("/%%full_coupon_code%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(urlencode($coupon["full_coupon_code"])), $url)) && ($url = preg_replace("/%%coupon_code%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(urlencode($coupon["coupon_code"])), $url)) && ($url = preg_replace("/%%coupon_affiliate_id%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(urlencode($coupon["affiliate_id"])), $url))) { if (($url = preg_replace("/%%user_first_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(urlencode($user->first_name)), $url)) && ($url = preg_replace("/%%user_last_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(urlencode($user->last_name)), $url))) { if ($url = preg_replace("/%%user_full_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(urlencode(trim($user->first_name . " " . $user->last_name))), $url)) { if ($url = preg_replace("/%%user_email%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(urlencode($user->user_email)), $url)) { if ($url = preg_replace("/%%user_login%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(urlencode($user->user_login)), $url)) { if ($url = preg_replace("/%%user_ip%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(urlencode($user_reg_ip)), $url)) { if ($url = preg_replace("/%%user_id%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(urlencode($user_id)), $url)) { if (is_array($fields) && !empty($fields)) { foreach ($fields as $var => $val) { if (!($url = preg_replace("/%%" . preg_quote($var, "/") . "%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(urlencode(maybe_serialize($val))), $url))) { break; } } } if ($url = trim($url)) { // Preserve remaining replacements. // Because the parent routine may perform replacements too. $paypal["s2member_paypal_proxy_return_url"] = $url; } } } } } } } } } } } } } } $paypal["s2member_log"][] = "Capability Return, a Proxy Return URL is ready."; } if ($processing && $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["payment_notification_urls"] && is_array($cv = preg_split("/\\|/", $paypal["custom"]))) { foreach (preg_split("/[\r\n\t]+/", $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["payment_notification_urls"]) as $url) { if (($url = preg_replace("/%%cv([0-9]+)%%/ei", 'urlencode(trim($cv[$1]))', $url)) && ($url = preg_replace("/%%subscr_id%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(urlencode($paypal["subscr_id"])), $url))) { if (($url = preg_replace("/%%amount%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(urlencode($paypal["mc_gross"])), $url)) && ($url = preg_replace("/%%txn_id%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(urlencode($paypal["txn_id"])), $url))) { if (($url = preg_replace("/%%item_number%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(urlencode($paypal["item_number"])), $url)) && ($url = preg_replace("/%%item_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(urlencode($paypal["item_name"])), $url))) { if (($url = preg_replace("/%%first_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(urlencode($paypal["first_name"])), $url)) && ($url = preg_replace("/%%last_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(urlencode($paypal["last_name"])), $url))) { if ($url = preg_replace("/%%full_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(urlencode(trim($paypal["first_name"] . " " . $paypal["last_name"]))), $url)) { if ($url = preg_replace("/%%payer_email%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(urlencode($paypal["payer_email"])), $url)) { if (($url = preg_replace("/%%full_coupon_code%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(urlencode($coupon["full_coupon_code"])), $url)) && ($url = preg_replace("/%%coupon_code%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(urlencode($coupon["coupon_code"])), $url)) && ($url = preg_replace("/%%coupon_affiliate_id%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(urlencode($coupon["affiliate_id"])), $url))) { if (($url = preg_replace("/%%user_first_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(urlencode($user->first_name)), $url)) && ($url = preg_replace("/%%user_last_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(urlencode($user->last_name)), $url))) { if ($url = preg_replace("/%%user_full_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(urlencode(trim($user->first_name . " " . $user->last_name))), $url)) { if ($url = preg_replace("/%%user_email%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(urlencode($user->user_email)), $url)) { if ($url = preg_replace("/%%user_login%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(urlencode($user->user_login)), $url)) { if ($url = preg_replace("/%%user_ip%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(urlencode($user_reg_ip)), $url)) { if ($url = preg_replace("/%%user_id%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(urlencode($user_id)), $url)) { if (is_array($fields) && !empty($fields)) { foreach ($fields as $var => $val) { if (!($url = preg_replace("/%%" . preg_quote($var, "/") . "%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(urlencode(maybe_serialize($val))), $url))) { break; } } } if ($url = trim(preg_replace("/%%(.+?)%%/i", "", $url))) { c_ws_plugin__s2member_utils_urls::remote($url); } } } } } } } } } } } } } } } $paypal["s2member_log"][] = "Payment Notification URLs have been processed."; } if ($processing && $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["payment_notification_recipients"] && is_array($cv = preg_split("/\\|/", $paypal["custom"]))) { $msg = $sbj = "(s2Member / API Notification Email) - Payment"; $msg .= "\n\n"; // Spacing in the message body. $msg .= "subscr_id: %%subscr_id%%\n"; $msg .= "amount: %%amount%%\n"; $msg .= "txn_id: %%txn_id%%\n"; $msg .= "item_number: %%item_number%%\n"; $msg .= "item_name: %%item_name%%\n"; $msg .= "first_name: %%first_name%%\n"; $msg .= "last_name: %%last_name%%\n"; $msg .= "full_name: %%full_name%%\n"; $msg .= "payer_email: %%payer_email%%\n"; $msg .= "full_coupon_code: %%full_coupon_code%%\n"; $msg .= "coupon_code: %%coupon_code%%\n"; $msg .= "coupon_affiliate_id: %%coupon_affiliate_id%%\n"; $msg .= "user_first_name: %%user_first_name%%\n"; $msg .= "user_last_name: %%user_last_name%%\n"; $msg .= "user_full_name: %%user_full_name%%\n"; $msg .= "user_email: %%user_email%%\n"; $msg .= "user_login: %%user_login%%\n"; $msg .= "user_ip: %%user_ip%%\n"; $msg .= "user_id: %%user_id%%\n"; if (is_array($fields) && !empty($fields)) { foreach ($fields as $var => $val) { $msg .= $var . ": %%" . $var . "%%\n"; } } $msg .= "cv0: %%cv0%%\n"; $msg .= "cv1: %%cv1%%\n"; $msg .= "cv2: %%cv2%%\n"; $msg .= "cv3: %%cv3%%\n"; $msg .= "cv4: %%cv4%%\n"; $msg .= "cv5: %%cv5%%\n"; $msg .= "cv6: %%cv6%%\n"; $msg .= "cv7: %%cv7%%\n"; $msg .= "cv8: %%cv8%%\n"; $msg .= "cv9: %%cv9%%"; if (($msg = preg_replace("/%%cv([0-9]+)%%/ei", 'trim($cv[$1])', $msg)) && ($msg = preg_replace("/%%subscr_id%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($paypal["subscr_id"]), $msg))) { if (($msg = preg_replace("/%%amount%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($paypal["mc_gross"]), $msg)) && ($msg = preg_replace("/%%txn_id%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($paypal["txn_id"]), $msg))) { if (($msg = preg_replace("/%%item_number%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($paypal["item_number"]), $msg)) && ($msg = preg_replace("/%%item_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($paypal["item_name"]), $msg))) { if (($msg = preg_replace("/%%first_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($paypal["first_name"]), $msg)) && ($msg = preg_replace("/%%last_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($paypal["last_name"]), $msg))) { if ($msg = preg_replace("/%%full_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(trim($paypal["first_name"] . " " . $paypal["last_name"])), $msg)) { if ($msg = preg_replace("/%%payer_email%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($paypal["payer_email"]), $msg)) { if (($msg = preg_replace("/%%full_coupon_code%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($coupon["full_coupon_code"]), $msg)) && ($msg = preg_replace("/%%coupon_code%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($coupon["coupon_code"]), $msg)) && ($msg = preg_replace("/%%coupon_affiliate_id%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($coupon["affiliate_id"]), $msg))) { if (($msg = preg_replace("/%%user_first_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($user->first_name), $msg)) && ($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(trim($user->first_name . " " . $user->last_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_ip%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($user_reg_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) { if (!($msg = preg_replace("/%%" . preg_quote($var, "/") . "%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(maybe_serialize($val)), $msg))) { break; } } } if ($sbj && ($msg = trim(preg_replace("/%%(.+?)%%/i", "", $msg)))) { // Still have a ``$sbj`` and a ``$msg``? foreach (c_ws_plugin__s2member_utils_strings::parse_emails($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["payment_notification_recipients"]) as $recipient) { wp_mail($recipient, apply_filters("ws_plugin__s2member_payment_notification_email_sbj", $sbj, get_defined_vars()), apply_filters("ws_plugin__s2member_payment_notification_email_msg", $msg, get_defined_vars()), "Content-Type: text/plain; charset=UTF-8"); } } } } } } } } } } } } } } } $paypal["s2member_log"][] = "Payment Notification Emails have been processed."; } if ($processing && ($code = $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["ccap_tracking_codes"]) && is_array($cv = preg_split("/\\|/", $paypal["custom"]))) { if (($code = preg_replace("/%%cv([0-9]+)%%/ei", 'trim($cv[$1])', $code)) && ($code = preg_replace("/%%subscr_id%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($paypal["subscr_id"]), $code))) { if (($code = preg_replace("/%%amount%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($paypal["mc_gross"]), $code)) && ($code = preg_replace("/%%txn_id%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($paypal["txn_id"]), $code))) { if (($code = preg_replace("/%%item_number%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($paypal["item_number"]), $code)) && ($code = preg_replace("/%%item_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($paypal["item_name"]), $code))) { if (($code = preg_replace("/%%first_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($paypal["first_name"]), $code)) && ($code = preg_replace("/%%last_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($paypal["last_name"]), $code))) { if ($code = preg_replace("/%%full_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(trim($paypal["first_name"] . " " . $paypal["last_name"])), $code)) { if ($code = preg_replace("/%%payer_email%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($paypal["payer_email"]), $code)) { if (($code = preg_replace("/%%full_coupon_code%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($coupon["full_coupon_code"]), $code)) && ($code = preg_replace("/%%coupon_code%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($coupon["coupon_code"]), $code)) && ($code = preg_replace("/%%coupon_affiliate_id%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($coupon["affiliate_id"]), $code))) { if (($code = preg_replace("/%%user_first_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($user->first_name), $code)) && ($code = preg_replace("/%%user_last_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($user->last_name), $code))) { if ($code = preg_replace("/%%user_full_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(trim($user->first_name . " " . $user->last_name)), $code)) { if ($code = preg_replace("/%%user_email%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($user->user_email), $code)) { if ($code = preg_replace("/%%user_login%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($user->user_login), $code)) { if ($code = preg_replace("/%%user_ip%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($user_reg_ip), $code)) { if ($code = preg_replace("/%%user_id%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($user_id), $code)) { if (is_array($fields) && !empty($fields)) { foreach ($fields as $var => $val) { if (!($code = preg_replace("/%%" . preg_quote($var, "/") . "%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(maybe_serialize($val)), $code))) { break; } } } if ($code = trim(preg_replace("/%%(.+?)%%/i", "", $code))) { $paypal["s2member_log"][] = "Storing Payment Tracking Codes into a Transient Queue. These will be processed on-site."; set_transient("s2m_" . md5("s2member_transient_ccap_tracking_codes_" . $paypal["txn_id"]), $code, 43200); } } } } } } } } } } } } } } } foreach (array_keys(get_defined_vars()) as $__v) { $__refs[$__v] =& ${$__v}; } do_action("ws_plugin__s2member_during_paypal_notify_during_new_ccaps", get_defined_vars()); unset($__refs, $__v); } else { $paypal["s2member_log"][] = "Unable to add new Capabilities. The existing User ID is associated with an Administrator. Stopping here. Otherwise, an Administrator could lose access."; } } else { $paypal["s2member_log"][] = "Unable to add new Capabilities. Could not get the existing User ID from the DB. Please check the `on0` and `os0` variables in your Button Code."; } } else { $paypal["s2member_log"][] = "Unable to add new Capabilities. Missing User/Member details. Please check the `on0` and `os0` variables in your Button Code."; } } else { $paypal["s2member_log"][] = "Not processing. Duplicate IPN."; $paypal["s2member_log"][] = "s2Member `txn_type` identified as ( `web_accept` ) w/ update vars for Capabilities w/o Level."; $paypal["s2member_log"][] = "Duplicate IPN. Already processed. This IPN will be ignored."; } foreach (array_keys(get_defined_vars()) as $__v) { $__refs[$__v] =& ${$__v}; } do_action("ws_plugin__s2member_during_paypal_notify_after_new_ccaps", get_defined_vars()); unset($__refs, $__v); return apply_filters("c_ws_plugin__s2member_paypal_notify_in_wa_ccaps_wo_level", $paypal, get_defined_vars()); } else { return apply_filters("c_ws_plugin__s2member_paypal_notify_in_wa_ccaps_wo_level", false, get_defined_vars()); } }
function ht_userimporter_options() { if (!current_user_can('manage_options')) { wp_die(__('You do not have sufficient permissions to access this page.')); } ob_start(); echo "<div class='wrap'>"; screen_icon(); echo "<h2>" . __(' User Importer') . "</h2>"; if ($_REQUEST['action'] == "processimport") { $contentarray = explode("\n", $_REQUEST['rawcontent']); foreach ((array) $contentarray as $f) { $content[] = str_getcsv(stripslashes($f)); } foreach ((array) $content as $parsedf) { // [0] first_name // [1] last_name // [2] Nickname // [3] Team // [4] Email // [5] Phone // [6] Mobile // [7] Working pattern // [8] Job title // [9] Role/bio // [10] Line manager // [11] Skills // [12] More bio /* $k = 12; $other =''; while ( $k < 65 ){ $other .= $parsedf[$k]; $k++; } */ echo "<br>Processing " . $parsedf[4]; // see if user already exists on email address $user = email_exists(strtolower($parsedf[4])); // echo $user; $user_id = 0; $user_login = ''; if ($user) { echo " email exists"; $user = get_user_by('email', strtolower($parsedf[4])); //print_r($user); $user_id = $user->ID; $user_login = $user->user_login; $results .= "<li>" . $parsedf[4] . " - email already registered</li>"; } //echo $user_id; // insert user if ($user_login == '') { $user_login = strtolower(substr($parsedf[0], 0, 1) . strtolower($parsedf[1])); //check login name doesn't exist if (username_exists($user_login)) { $user_login = strtolower($parsedf[0]) . strtolower($parsedf[1]); echo " - username already exists, trying another"; if (username_exists($user_login)) { echo " - username 2 already exists - skipping"; $results .= "<li>" . $parsedf[2] . " " . $user_login . " - problem with username - skipping</li>"; continue; } } } $userdata = array('ID' => 0, 'user_login' => $user_login, 'first_name' => trim($parsedf[0]), 'last_name' => trim($parsedf[1]), 'nickname' => trim($parsedf[2]), 'display_name' => trim($parsedf[0]) . " " . trim($parsedf[1]), 'user_email' => strtolower(trim($parsedf[4])), 'user_url' => '', 'user_pass' => '', 'role' => 'Subscriber', 'show_admin_bar_front' => 0); $random_password = wp_generate_password($length = 12, $include_standard_special_chars = false); $userdata['user_pass'] = $random_password; if ($user_id == 0) { //print_r($userdata); $user_id = wp_insert_user($userdata); //echo $user_id." inserted"; if ($user_id == 0) { echo " - couldn't create"; } else { echo " - created " . $user_id; $user = new WP_User($user_id); $user_id = $user->ID; if (!$user_id) { continue; } $user->add_cap('subscriber'); $results .= "<li>" . $parsedf[4] . " " . $user_login . "</li>"; } } if ($user_id != 0) { // if manager exists, add meta if ($parsedf[10]) { if (email_exists(strtolower(trim($parsedf[10])))) { $manager = get_user_by('email', strtolower(trim($parsedf[10]))); $manager_id = $manager->ID; add_user_meta($user_id, 'user_line_manager', $manager_id); } else { $msg .= "<li>" . $parsedf[4] . " - Can't find manager " . $parsedf[10] . "</li>"; } } // if tel exists, add meta if ($parsedf[5]) { add_user_meta($user_id, 'user_telephone', trim($parsedf[5])); } // if job title exists, add meta if ($parsedf[8]) { add_user_meta($user_id, 'user_job_title', trim($parsedf[8])); } // if team exists, add meta if ($parsedf[3] != '') { $team = str_replace("&", "&", trim($parsedf[3])); $tterm = get_page_by_title($team, OBJECT, 'team'); if ($tterm) { $tterm_id = $tterm->ID; add_user_meta($user_id, 'user_team', $tterm_id); } else { $msg .= "<li>" . $parsedf[4] . " - Can't find sub team " . trim($parsedf[3]) . "</li>"; } } // mobile exists, add meta if ($parsedf[6]) { add_user_meta($user_id, 'user_mobile', $parsedf[6]); } // if working pattern exists, add meta if ($parsedf[7]) { add_user_meta($user_id, 'user_working_pattern', trim($parsedf[7])); } // if user skills exists, add meta if ($parsedf[11]) { add_user_meta($user_id, 'user_key_skills', trim($parsedf[11])); } // if bio, add meta if ($parsedf[9] || $parsedf[12]) { add_user_meta($user_id, 'description', trim($parsedf[9]) . "<br><br>" . trim($parsedf[12])); } } sleep(0.5); ob_flush(); } echo "<h1>Summary</h1>"; echo "<h2>Progress</h2>"; echo "<ul>" . $results . "</ul>"; echo "<h2>Errors</h2>"; echo "<ul>" . $msg . "</ul>"; } elseif ($_REQUEST['action'] == "showinfo") { } else { echo "\n\t\t<p></p> \n\t\t <form method='post'>\n\t\t \t<p><label for='rawcontent'>Paste CSV file contents here:</label></p>\n\t\t\t<p><textarea class='widefat' rows='20' cols='50' name='rawcontent' id='rawcontent'></textarea></p>\n\t\t\t<p><input type='submit' value='Import content' class='button-primary' /></p>\n\t\t\t<input type='hidden' name='page' value='user-importer' />\n\t\t\t<input type='hidden' name='action' value='processimport' />\n\t\t </form><br />\n\t\t"; } echo "</div>"; ob_end_flush(); }
function sstfg_add_cap_to_customer($order_id) { $extra_fields = sstfg_user_extra_fields(); $order = new WC_Order($order_id); $customer_id = (int) $order->user_id; $items = $order->get_items(); foreach ($items as $item) { if ($item['product_id'] == SSTFG_WC_PRODUCT_ID) { $user = new WP_User($customer_id); $user->add_cap('access_s2member_level0'); $user->add_cap('access_s2member_ccap_sstfg'); foreach ($extra_fields as $ef) { $ef_value = get_user_meta($customer_id, $ef['label'], true); if ($ef_value == '' || $ef_value === FALSE) { update_user_meta($customer_id, $ef['label'], $ef['initial']); } } } } }
function create() { $types = array("course", "quiz", "qa", "dis", "user", "amt"); $AdminCapabilities = array('edit_linkedcanvas?', 'read_linkedcanvas?', 'delete_linkedcanvas?', 'edit_linkedcanvas?s', 'edit_others_linkedcanvas?s', 'publish_linkedcanvas?s', 'read_private_linkedcanvas?s', 'delete_linkedcanvas?s', 'delete_private_linkedcanvas?s', 'delete_published_linkedcanvas?s', 'delete_others_linkedcanvas?s', 'edit_private_linkedcanvas?s', 'edit_published_linkedcanvas?s', 'edit_linkedcanvas?s'); $AuthorCapabilities = array('edit_linkedcanvas?', 'read_linkedcanvas?', 'delete_linkedcanvas?', 'edit_linkedcanvas?s', 'publish_linkedcanvas?s', 'read_private_linkedcanvas?s', 'delete_linkedcanvas?s', 'delete_private_linkedcanvas?s', 'delete_published_linkedcanvas?s', 'edit_private_linkedcanvas?s', 'edit_published_linkedcanvas?s', 'edit_linkedcanvas?s'); $get_users = get_users(); foreach ($get_users as $user) { if (in_array("administrator", $user->roles)) { $user = new WP_User($user->data->ID); foreach ($AdminCapabilities as $capability) { foreach ($types as $type) { $user->add_cap(str_replace("?", $type, $capability)); } } } if (in_array("editor", $user->roles)) { $user = new WP_User($user->data->ID); foreach ($AuthorCapabilities as $capability) { foreach ($types as $type) { $user->add_cap(str_replace("?", $type, $capability)); } } } } }