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'); } } } }
/** * Remove the multisite capabilities from a user * * @since 2.0 * @param integer $user_id The ID of the user to remove the cap from */ function remove_network_snippets_cap($user_id) { /* Get the user from the ID */ $user = new WP_User($user_id); /* Remove the capability */ $user->remove_cap(apply_filters('code_snippets_network_cap', 'manage_network_snippets')); }
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 wpec_members_remove_capability_from_users($capability) { $users = new WP_User_Search('', '', $capability); $user_ids = $users->results; foreach ($user_ids as $user_id) { $user = new WP_User($user_id); $user->remove_cap($capability); $members_lengths = get_user_meta($user_id, '_subscription_ends', true); $subscription_lengths = get_user_meta($user_id, '_subscription_length', true); $subscription_starts = get_user_meta($user_id, '_subscription_starts', true); unset($subscription_lengths[$capability]); unset($members_lengths[$capability]); unset($subscription_starts[$capability]); //if the array is now empty then we know they only had one sub if (empty($members_lengths)) { delete_user_meta($user_id, '_subscription_starts'); delete_user_meta($user_id, '_subscription_ends'); delete_user_meta($user_id, '_subscription_length'); delete_user_meta($user_id, '_has_current_subscription'); } else { update_user_meta($user_id, '_subscription_starts', $subscription_starts); update_user_meta($user_id, '_subscription_ends', $members_lengths); update_user_meta($user_id, '_subscription_length', $subscription_lengths); } } }
/** * 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); } }
/** * remove_course_caps( $user_id ) * * Adds course capabilities to new $user_id * * @param Int $user_id ID of the user capabilities to be removed from */ function remove_course_caps($user_id) { //Treat super admins if (is_super_admin($user_id)) { return; } $user = new WP_User($user_id); foreach ($this->caps as $c) { if ($user->has_cap($c)) { $user->remove_cap($c); } } }
/** * 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 wplc_ma_set_user_as_agent($user_id) { if (!current_user_can('edit_user', $user_id)) { return false; } if (isset($_POST['wplc_ma_agent'])) { update_user_meta($user_id, 'wplc_ma_agent', $_POST['wplc_ma_agent']); } else { delete_user_meta($user_id, 'wplc_ma_agent'); } if ($_POST['wplc_ma_agent'] == '1') { $wplc_ma_user = new WP_User($user_id); $wplc_ma_user->add_cap('wplc_ma_agent'); update_user_meta($user_id, "wplc_chat_agent_online", time()); } else { $wplc_ma_user = new WP_User($user_id); $wplc_ma_user->remove_cap('wplc_ma_agent'); delete_user_meta($user_id, "wplc_ma_agent"); delete_user_meta($user_id, "wplc_chat_agent_online"); } }
/** * On activation, include the installer and run it. * * @access public * @return void */ function wcmp_plugins_loaded() { global $WCMp, $wpdb; //delete_option('dc_product_vendor_plugin_db_version'); $previous_plugin_version = get_option('dc_product_vendor_plugin_db_version'); if (!$previous_plugin_version || $previous_plugin_version < $WCMp->version) { $prev_general = get_option('dc_general_settings_name'); $prev_product = get_option('dc_product_settings_name'); $prev_capability = get_option('dc_capabilities_settings_name'); $prev_pages = get_option('dc_pages_settings_name'); $prev_payment = get_option('dc_payment_settings_name'); $new_general = $new_product = $new_capability = $new_pages = $new_payment = $new_frontend = array(); $new_payment = $prev_payment; if (!empty($prev_general)) { if (isset($prev_general['enable_registration'])) { $new_general['enable_registration'] = 'Enable'; } if (isset($prev_general['approve_vendor_manually'])) { $new_general['approve_vendor_manually'] = 'Enable'; } if (isset($prev_general['notify_configure_vendor_store'])) { $new_general['notify_configure_vendor_store'] = $prev_general['notify_configure_vendor_store']; } if (isset($prev_general['default_commission'])) { $new_payment['default_commission'] = $prev_general['default_commission']; } if (isset($prev_general['commission_type'])) { $new_payment['commission_type'] = $prev_general['commission_type']; } if (isset($prev_general['commission_include_coupon'])) { $new_payment['commission_include_coupon'] = $prev_general['commission_include_coupon']; } if (isset($prev_general['sold_by_catalog'])) { $new_frontend['sold_by_catalog'] = $prev_general['sold_by_catalog']; } if (isset($prev_general['catalog_colorpicker'])) { $new_frontend['catalog_colorpicker'] = $prev_general['catalog_colorpicker']; } if (isset($prev_general['catalog_hover_colorpicker'])) { $new_frontend['catalog_hover_colorpicker'] = $prev_general['catalog_hover_colorpicker']; } if (isset($prev_general['sold_by_cart_and_checkout'])) { $new_frontend['sold_by_cart_and_checkout'] = $prev_general['sold_by_cart_and_checkout']; } if (isset($prev_general['sold_by_text'])) { $new_frontend['sold_by_text'] = $prev_general['sold_by_text']; } if (isset($prev_general['block_vendor_desc'])) { $new_frontend['block_vendor_desc'] = $prev_general['block_vendor_desc']; } } if (!empty($prev_capability)) { $new_capability = $prev_capability; if (isset($new_capability['give_tax'])) { $new_payment['give_tax'] = $new_capability['give_tax']; unset($new_capability['give_tax']); } if (isset($new_capability['give_shipping'])) { $new_payment['give_shipping'] = $new_capability['give_shipping']; unset($new_capability['give_shipping']); } } if (!empty($prev_product)) { update_option('wcmp_product_settings_name', $prev_product); } if (!empty($prev_pages)) { update_option('wcmp_pages_settings_name', $prev_pages); } if (!empty($new_general)) { update_option('wcmp_general_settings_name', $new_general); } if (!empty($new_capability)) { update_option('wcmp_capabilities_settings_name', $new_capability); } if (!empty($new_payment)) { update_option('wcmp_payment_settings_name', $new_payment); } if (!empty($new_frontend)) { update_option('wcmp_frontend_settings_name', $new_frontend); } delete_option('dc_general_settings_name'); delete_option('dc_product_settings_name'); delete_option('dc_capabilities_settings_name'); delete_option('dc_payment_settings_name'); delete_option('dc_pages_settings_name'); $vendors = get_wcmp_vendors(); if (!empty($vendors)) { foreach ($vendors as $vendor) { $vendorusers = new WP_User($vendor->id); $vendorusers->remove_cap('manage_woocommerce'); $vendor_products = $vendor->get_products(); if (!empty($vendor_products)) { foreach ($vendor_products as $vendor_product) { wp_update_post(array('ID' => $vendor_product->ID, 'post_author' => $vendor->id)); $product_obj = wc_get_product($vendor_product->ID); if ($product_obj->is_type('variable')) { $childrens = $product_obj->get_children(); foreach ($childrens as $child_id) { wp_update_post(array('ID' => $child_id, 'post_author' => $vendor->id)); } } } } } } $vendor_role = get_role('dc_vendor'); $vendor_role->remove_cap('manage_woocommerce'); $wcmp_pages = get_option('wcmp_pages_settings_name'); $page_slug = 'wcmp_withdrawal_request'; $page_found = $wpdb->get_var("SELECT ID FROM " . $wpdb->posts . " WHERE post_name = '{$page_slug}' LIMIT 1;"); if (!$page_found) { $page_data = array('post_status' => 'publish', 'post_type' => 'page', 'post_author' => 1, 'post_name' => $page_slug, 'post_title' => __('Withdrawal Request Status', $WCMp->text_domain), 'post_content' => '[transaction_thankyou]', 'comment_status' => 'closed'); $transaction_withdrawal_page_id = wp_insert_post($page_data); update_option('wcmp_product_vendor_transaction_widthdrawal_page_id', $transaction_withdrawal_page_id); $wcmp_pages['vendor_transaction_thankyou'] = $transaction_withdrawal_page_id; } $page_slug = 'wcmp_transaction_details'; $page_foundd = $wpdb->get_var("SELECT ID FROM " . $wpdb->posts . " WHERE post_name = '{$page_slug}' LIMIT 1;"); if (!$page_foundd) { $page_data = array('post_status' => 'publish', 'post_type' => 'page', 'post_author' => 1, 'post_name' => $page_slug, 'post_title' => __('Transaction Details', $WCMp->text_domain), 'post_content' => '[transaction_details]', 'comment_status' => 'closed'); $transaction_details_page_id = wp_insert_post($page_data); update_option('wcmp_product_vendor_transaction_details_page_id', $transaction_details_page_id); $wcmp_pages['vendor_transaction_detail'] = $transaction_details_page_id; } $page_slug = 'wcmp_vendor_policies'; $page_foundd = $wpdb->get_var("SELECT ID FROM " . $wpdb->posts . " WHERE post_name = '{$page_slug}' LIMIT 1;"); if (!$page_foundd) { $page_data = array('post_status' => 'publish', 'post_type' => 'page', 'post_author' => 1, 'post_name' => $page_slug, 'post_title' => __('Vendor Policies', $WCMp->text_domain), 'post_content' => '[vendor_policies]', 'comment_status' => 'closed'); $policy_page_id = wp_insert_post($page_data); update_option('wcmp_product_vendor_policies_page_id', $policy_page_id); $wcmp_pages['vendor_policies'] = $policy_page_id; } $page_slug = 'wcmp_vendor_billing'; $page_foundd = $wpdb->get_var("SELECT ID FROM " . $wpdb->posts . " WHERE post_name = '{$page_slug}' LIMIT 1;"); if (!$page_foundd) { $page_data = array('post_status' => 'publish', 'post_type' => 'page', 'post_author' => 1, 'post_name' => $page_slug, 'post_title' => __('Vendor Billing', $WCMp->text_domain), 'post_content' => '[vendor_billing]', 'comment_status' => 'closed'); $vendor_billing_page_id = wp_insert_post($page_data); update_option('wcmp_product_vendor_billing_page_id', $vendor_billing_page_id); $wcmp_pages['vendor_billing'] = $vendor_billing_page_id; } $page_slug = 'wcmp_vendor_shipping'; $page_foundd = $wpdb->get_var("SELECT ID FROM " . $wpdb->posts . " WHERE post_name = '{$page_slug}' LIMIT 1;"); if (!$page_foundd) { $page_data = array('post_status' => 'publish', 'post_type' => 'page', 'post_author' => 1, 'post_name' => $page_slug, 'post_title' => __('Vendor Shipping', $WCMp->text_domain), 'post_content' => '[vendor_shipping_settings]', 'comment_status' => 'closed'); $vendor_shipping_page_id = wp_insert_post($page_data); update_option('wcmp_product_vendor_shipping_page_id', $vendor_shipping_page_id); $wcmp_pages['vendor_shipping'] = $vendor_shipping_page_id; } $page_slug = 'wcmp_vendor_report'; $page_foundd = $wpdb->get_var("SELECT ID FROM " . $wpdb->posts . " WHERE post_name = '{$page_slug}' LIMIT 1;"); if (!$page_foundd) { $page_data = array('post_status' => 'publish', 'post_type' => 'page', 'post_author' => 1, 'post_name' => $page_slug, 'post_title' => __('Vendor Report', $WCMp->text_domain), 'post_content' => '[vendor_report]', 'comment_status' => 'closed'); $vendor_report_page_id = wp_insert_post($page_data); update_option('wcmp_product_vendor_report_page_id', $vendor_report_page_id); $wcmp_pages['vendor_report'] = $vendor_report_page_id; } $page_slug = 'wcmp_vendor_widthdrawals'; $page_foundd = $wpdb->get_var("SELECT ID FROM " . $wpdb->posts . " WHERE post_name = '{$page_slug}' LIMIT 1;"); if (!$page_foundd) { $page_data = array('post_status' => 'publish', 'post_type' => 'page', 'post_author' => 1, 'post_name' => $page_slug, 'post_title' => __('Vendor Widthdrawals', $WCMp->text_domain), 'post_content' => '[vendor_widthdrawals]', 'comment_status' => 'closed'); $vendor_widthdrawals_page_id = wp_insert_post($page_data); update_option('wcmp_product_vendor_widthdrawals_page_id', $vendor_widthdrawals_page_id); $wcmp_pages['vendor_widthdrawals'] = $vendor_widthdrawals_page_id; } $page_slug = 'wcmp_vendor_university'; $page_foundd = $wpdb->get_var("SELECT ID FROM " . $wpdb->posts . " WHERE post_name = '{$page_slug}' LIMIT 1;"); if (!$page_foundd) { $page_data = array('post_status' => 'publish', 'post_type' => 'page', 'post_author' => 1, 'post_name' => $page_slug, 'post_title' => __('Vendor University', $WCMp->text_domain), 'post_content' => '[vendor_university]', 'comment_status' => 'closed'); $vendor_university_page_id = wp_insert_post($page_data); update_option('wcmp_product_vendor_university_page_id', $vendor_university_page_id); $wcmp_pages['vendor_university'] = $vendor_university_page_id; } $page_slug = 'wcmp_vendor_announcements'; $page_foundd = $wpdb->get_var("SELECT ID FROM " . $wpdb->posts . " WHERE post_name = 'wcmp_vendor_messages' LIMIT 1;"); $page_foundd2 = $wpdb->get_var("SELECT ID FROM " . $wpdb->posts . " WHERE post_name = 'wcmp_vendor_announcements' LIMIT 1;"); if (!$page_foundd && !$page_foundd2) { $page_data = array('post_status' => 'publish', 'post_type' => 'page', 'post_author' => 1, 'post_name' => $page_slug, 'post_title' => __('Vendor Announcements', $WCMp->text_domain), 'post_content' => '[vendor_announcements]', 'comment_status' => 'closed'); $vendor_announcements_page_id = wp_insert_post($page_data); update_option('wcmp_product_vendor_announcements_page_id', $vendor_announcements_page_id); $wcmp_pages['vendor_announcements'] = $vendor_announcements_page_id; } if ($page_foundd && !$page_foundd2) { wp_update_post(array('ID' => $wcmp_pages['vendor_messages'], 'post_content' => '[vendor_announcements]', 'post_name' => 'vendor_announcements', 'post_title' => 'Vendor Announcements')); $wcmp_pages['vendor_announcements'] = $wcmp_pages['vendor_messages']; unset($wcmp_pages['vendor_messages']); } wp_update_post(array('ID' => $wcmp_pages['vendor_dashboard'], 'post_content' => '[vendor_dashboard]')); wp_update_post(array('ID' => $wcmp_pages['view_order'], 'post_content' => '[vendor_orders]')); update_option('wcmp_pages_settings_name', $wcmp_pages); if (!empty($wpdb->charset)) { $charset_collate = "DEFAULT CHARACTER SET {$wpdb->charset}"; } if (!empty($wpdb->collate)) { $charset_collate .= " COLLATE {$wpdb->collate}"; } $migs = array(); // Create course_purchase table $migs[] = "\n\t\t\t\tCREATE TABLE IF NOT EXISTS `" . $wpdb->prefix . "wcmp_vendor_orders` (\n\t\t\t\t`ID` bigint(20) NOT NULL AUTO_INCREMENT,\n\t\t\t\t`order_id` bigint(20) NOT NULL,\n\t\t\t\t`commission_id` bigint(20) NOT NULL,\n\t\t\t\t`vendor_id` bigint(20) NOT NULL,\n\t\t\t\t`shipping_status` varchar(255) NOT NULL,\n\t\t\t\t`order_item_id` bigint(20) NOT NULL,\n\t\t\t\t`product_id` bigint(20) NOT NULL,\n\t\t\t\t`commission_amount` varchar(255) NOT NULL,\n\t\t\t\t`shipping` varchar(255) NOT NULL,\n\t\t\t\t`tax` varchar(255) NOT NULL,\n\t\t\t\t`is_trashed` varchar(10) NOT NULL,\t\t\t\t\n\t\t\t\t`created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,\t\t\t\t\n\t\t\t\tPRIMARY KEY (`ID`),\n\t\t\t\tCONSTRAINT vendor_orders UNIQUE (order_id, vendor_id, commission_id, product_id)\n\t\t\t){$charset_collate};"; $needed_migration = count($migs); for ($i = 0; $i < $needed_migration; $i++) { $mig = $migs[$i]; $wpdb->query($mig); } $WCMp_Calculate_Commission_obj = new WCMp_Calculate_Commission(); $vendors = get_wcmp_vendors(); if (!empty($vendors)) { $vendor_orders_array = array(); foreach ($vendors as $vendor) { $vendor_orders = $vendor->get_orders(); if (!empty($vendor_orders)) { foreach ($vendor_orders as $commission_id => $order_id) { $vendor_shipping_array = get_post_meta($order_id, 'dc_pv_shipped', true); $order = new WC_Order($order_id); $commission_array = array(); $mark_ship = false; $items = $order->get_items('line_item'); foreach ($items as $order_item_id => $item) { $comm_pro_id = $product_id = $order->get_item_meta($order_item_id, '_product_id', true); $variation_id = $order->get_item_meta($order_item_id, '_variation_id', true); if ($variation_id) { $comm_pro_id = $variation_id; } if ($product_id) { $product_vendors = get_wcmp_product_vendors($product_id); if ($product_vendors) { if (isset($product_vendors->id)) { if (isset($vendor_shipping_array) && !empty($vendor_shipping_array)) { if (in_array($product_vendors->id, $vendor_shipping_array)) { $mark_ship = true; } else { $mark_ship = 0; } } else { $mark_ship = 0; } $item_commission = $WCMp_Calculate_Commission_obj->get_item_commission($comm_pro_id, $comm_pro_id, $item, $order_id, $order_item_id); $vendor_shipping_costs = $vendor->get_wcmp_vendor_shipping_total($order_id, $item); $item_shipping = $vendor_shipping_costs['shipping_amount'] + $vendor_shipping_costs['shipping_tax']; $item_tax = get_metadata('order_item', $order_item_id, '_line_tax', true); $commission_vendor_term_id = get_post_meta($commission_id, '_commission_vendor', true); $vendor_term_id = get_user_meta($product_vendors->id, '_vendor_term_id', true); if ($commission_vendor_term_id == $vendor_term_id) { $vendor_orders_array[] = array($order_id, $commission_id, $product_vendors->id, $mark_ship, $order_item_id, $comm_pro_id, $order->order_date, $item_commission, $item_shipping, $item_tax); } } } } } } } } if (!empty($vendor_orders_array)) { usort($vendor_orders_array, function ($a, $b) { return $a[0] - $b[0]; }); if (!get_option('wcmp_vendor_orders_update')) { foreach ($vendor_orders_array as $vendor_orders) { $insert_query = $wpdb->query($wpdb->prepare("INSERT INTO `{$wpdb->prefix}wcmp_vendor_orders` ( order_id, commission_id, vendor_id, shipping_status, order_item_id, product_id, created, commission_amount, shipping, tax )\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t VALUES\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t ( %d, %d, %d, %s, %d, %d, %s, %s, %s, %s )", $vendor_orders[0], $vendor_orders[1], $vendor_orders[2], $vendor_orders[3], $vendor_orders[4], $vendor_orders[5], $vendor_orders[6], $vendor_orders[7], $vendor_orders[8], $vendor_orders[9])); } } update_option('wcmp_vendor_orders_update', 1); } } update_option('dc_product_vendor_plugin_db_version', $WCMp->version); } }
/** * 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()); } }
public function disable_all_caps() { global $wp_roles; if (!isset($wp_roles) || !is_object($wp_roles)) { $wp_roles = new WP_Roles(); } $ddl_capabilities = array_keys(self::ddl_get_capabilities()); foreach ($ddl_capabilities as $cap) { foreach (array_keys($wp_roles->roles) as $role) { $wp_roles->remove_cap($role, $cap); } } //Remove caps for all Super Admins $super_admins = get_super_admins(); foreach ($super_admins as $admin) { $user = new WP_User($admin); for ($i = 0, $caps_limit = count($ddl_capabilities); $i < $caps_limit; $i++) { $user->remove_cap($ddl_capabilities[$i]); } } $this->ddl_users_settings->update_options('updated_profiles', false, true); }
/** * 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; }
function spa_deactivate_plugin() { $uninstall = sp_get_option('sfuninstall'); if ($uninstall) { # uninstall - remove all data # remove any admin capabilities $admins = spdb_table(SFMEMBERS, 'admin=1'); foreach ($admins as $admin) { $user = new WP_User($admin->user_id); $user->remove_cap('SPF Manage Options'); $user->remove_cap('SPF Manage Forums'); $user->remove_cap('SPF Manage User Groups'); $user->remove_cap('SPF Manage Permissions'); $user->remove_cap('SPF Manage Tags'); $user->remove_cap('SPF Manage Components'); $user->remove_cap('SPF Manage Admins'); $user->remove_cap('SPF Manage Profiles'); $user->remove_cap('SPF Manage Users'); $user->remove_cap('SPF Manage Toolbox'); $user->remove_cap('SPF Manage Plugins'); $user->remove_cap('SPF Manage Themes'); $user->remove_cap('SPF Manage Integration'); $user->remove_cap('SPF Manage Configuration'); # no longer used but some may still have it } # remove any installed tables $tables = sp_get_option('installed_tables'); if ($tables) { foreach ($tables as $table) { spdb_query("DROP TABLE IF EXISTS {$table}"); } } # since we have removed our tables, need to turn off error logging to prevent onslaught of errors global $spGlobals; $spGlobals['record-errors'] = false; # Remove the Page record $sfpage = sp_get_option('sfpage'); if (!empty($sfpage)) { spdb_query('DELETE FROM ' . SFWPPOSTS . ' WHERE ID=' . sp_get_option('sfpage')); } # remove widget data delete_option('widget_spf'); delete_option('widget_sforum'); # remove any wp options we might have set delete_option('sfInstallID'); delete_option('sp_storage1'); delete_option('sp_storage2'); # Now remove user meta data $optionlist = array('sfadmin', 'location', 'msn', 'skype', 'icq', 'facebook', 'myspace', 'twitter', 'linkedin', 'youtube', 'googleplus', 'sfuse_quicktags', 'signature', 'sigimage'); foreach ($optionlist as $option) { spdb_query('DELETE FROM ' . SFUSERMETA . " WHERE meta_key='{$option}';"); } # send our uninstall action do_action('sph_uninstalled', $admins); # remove storage locations if so directed if (sp_get_option('removestorage')) { # let's remove our directories and storage global $spPaths; if (!empty($spPaths)) { foreach ($spPaths as $storage => $path) { # lets not remove plugins and themes if ($storage != 'plugins' && $storage != 'themes') { sp_remove_dir(SF_STORE_DIR . '/' . $path); } } } # remove the languages folder if it exists # note the sp-resources dire may not exist - but its our default. if user creates other parent dir for languages, we wont know about it sp_remove_dir(SF_STORE_DIR . '/sp-resources/forum-language'); } } # remove the combined css and js cache files sp_clear_combined_css('all'); sp_clear_combined_css('mobile'); sp_clear_combined_css('tablet'); # remove cron jobs for deactivaton or uninstall wp_clear_scheduled_hook('spf_cron_pm'); # left here for 5.0 who doesnt upgrade wp_clear_scheduled_hook('spf_cron_sitemap'); # left here for 5.0 who doesnt upgrade wp_clear_scheduled_hook('sph_cron_user'); wp_clear_scheduled_hook('sph_transient_cleanup_cron'); wp_clear_scheduled_hook('sph_stats_cron'); wp_clear_scheduled_hook('sph_news_cron'); # send deactivated action if (!$uninstall) { do_action('sph_deactivated'); } }
/** * 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. */ public static function cp($vars = array()) { extract($vars, EXTR_OVERWRITE | EXTR_REFS); // 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']) && !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_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']; $paypal['currency'] = strtoupper($paypal['mc_currency']); // Normalize input currency. $paypal['currency_symbol'] = c_ws_plugin__s2member_utils_cur::symbol($paypal['currency']); if (!empty($coupon['coupon_code']) && c_ws_plugin__s2member_utils_conds::pro_is_installed()) { $coupon_class = new c_ws_plugin__s2member_pro_coupons(); $coupon_class->update_uses($coupon['coupon_code']); } 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']); } if (!empty($coupon['full_coupon_code']) && c_ws_plugin__s2member_utils_conds::pro_is_installed()) { $user_coupons = is_array($user_coupons = get_user_option('s2member_coupon_codes', $user_id)) ? $user_coupons : array(); $user_coupons = array_unique(array_merge($user_coupons, (array) $coupon['full_coupon_code'])); update_user_option($user_id, 's2member_coupon_codes', $user_coupons); } $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 = c_ws_plugin__s2member_utils_strings::fill_cvs($rec, $paypal['custom'])) && ($rec = preg_replace('/%%(?:subscr|txn)_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_id']), $rec))) { if (($rec = preg_replace('/%%(?:subscr|txn)_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_baid']), $rec)) && ($rec = preg_replace('/%%(?:subscr|txn)_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_cid']), $rec))) { if (($rec = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $rec)) && ($rec = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $rec))) { if (($rec = preg_replace('/%%amount%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['mc_gross']), $rec)) && ($rec = preg_replace('/%%txn_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_id']), $rec))) { if (($rec = preg_replace('/%%item_number%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['item_number']), $rec)) && ($rec = preg_replace('/%%item_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($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_refs($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_refs($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_refs(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_refs($paypal['payer_email']), $rec)) { if (($rec = preg_replace('/%%full_coupon_code%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($coupon['full_coupon_code']), $rec)) && ($rec = preg_replace('/%%coupon_code%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($coupon['coupon_code']), $rec)) && ($rec = preg_replace('/%%coupon_affiliate_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($coupon['affiliate_id']), $rec))) { if (($rec = preg_replace('/%%user_first_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user->first_name), $rec)) && ($rec = preg_replace('/%%user_last_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user->last_name), $rec))) { if ($rec = preg_replace('/%%user_full_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(trim($user->first_name . ' ' . $user->last_name)), $rec)) { if ($rec = preg_replace('/%%user_email%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user->user_email), $rec)) { if ($rec = preg_replace('/%%user_login%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user->user_login), $rec)) { if ($rec = preg_replace('/%%user_ip%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user_reg_ip), $rec)) { if ($rec = preg_replace('/%%user_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user_id), $rec)) { if (($sbj = c_ws_plugin__s2member_utils_strings::fill_cvs($sbj, $paypal['custom'])) && ($sbj = preg_replace('/%%(?:subscr|txn)_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_id']), $sbj))) { if (($sbj = preg_replace('/%%(?:subscr|txn)_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_baid']), $sbj)) && ($sbj = preg_replace('/%%(?:subscr|txn)_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_cid']), $sbj))) { if (($sbj = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $sbj)) && ($sbj = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $sbj))) { if (($sbj = preg_replace('/%%amount%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['mc_gross']), $sbj)) && ($sbj = preg_replace('/%%txn_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_id']), $sbj))) { if (($sbj = preg_replace('/%%item_number%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['item_number']), $sbj)) && ($sbj = preg_replace('/%%item_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['item_name']), $sbj))) { if (($sbj = preg_replace('/%%first_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['first_name']), $sbj)) && ($sbj = preg_replace('/%%last_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['last_name']), $sbj))) { if ($sbj = preg_replace('/%%full_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(trim($paypal['first_name'] . ' ' . $paypal['last_name'])), $sbj)) { if ($sbj = preg_replace('/%%payer_email%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['payer_email']), $sbj)) { if (($sbj = preg_replace('/%%full_coupon_code%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($coupon['full_coupon_code']), $sbj)) && ($sbj = preg_replace('/%%coupon_code%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($coupon['coupon_code']), $sbj)) && ($sbj = preg_replace('/%%coupon_affiliate_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($coupon['affiliate_id']), $sbj))) { if (($sbj = preg_replace('/%%user_first_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user->first_name), $sbj)) && ($sbj = preg_replace('/%%user_last_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user->last_name), $sbj))) { if ($sbj = preg_replace('/%%user_full_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(trim($user->first_name . ' ' . $user->last_name)), $sbj)) { if ($sbj = preg_replace('/%%user_email%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user->user_email), $sbj)) { if ($sbj = preg_replace('/%%user_login%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user->user_login), $sbj)) { if ($sbj = preg_replace('/%%user_ip%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user_reg_ip), $sbj)) { if ($sbj = preg_replace('/%%user_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user_id), $sbj)) { if (($msg = c_ws_plugin__s2member_utils_strings::fill_cvs($msg, $paypal['custom'])) && ($msg = preg_replace('/%%(?:subscr|txn)_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_id']), $msg))) { if (($msg = preg_replace('/%%(?:subscr|txn)_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_baid']), $msg)) && ($msg = preg_replace('/%%(?:subscr|txn)_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_cid']), $msg))) { if (($msg = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $msg)) && ($msg = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $msg))) { if (($msg = preg_replace('/%%amount%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['mc_gross']), $msg)) && ($msg = preg_replace('/%%txn_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_id']), $msg))) { if (($msg = preg_replace('/%%item_number%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['item_number']), $msg)) && ($msg = preg_replace('/%%item_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['item_name']), $msg))) { if (($msg = preg_replace('/%%first_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['first_name']), $msg)) && ($msg = preg_replace('/%%last_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['last_name']), $msg))) { if ($msg = preg_replace('/%%full_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(trim($paypal['first_name'] . ' ' . $paypal['last_name'])), $msg)) { if ($msg = preg_replace('/%%payer_email%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['payer_email']), $msg)) { if (($msg = preg_replace('/%%full_coupon_code%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($coupon['full_coupon_code']), $msg)) && ($msg = preg_replace('/%%coupon_code%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($coupon['coupon_code']), $msg)) && ($msg = preg_replace('/%%coupon_affiliate_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($coupon['affiliate_id']), $msg))) { if (($msg = preg_replace('/%%user_first_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user->first_name), $msg)) && ($msg = preg_replace('/%%user_last_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user->last_name), $msg))) { if ($msg = preg_replace('/%%user_full_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(trim($user->first_name . ' ' . $user->last_name)), $msg)) { if ($msg = preg_replace('/%%user_email%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user->user_email), $msg)) { if ($msg = preg_replace('/%%user_login%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user->user_login), $msg)) { if ($msg = preg_replace('/%%user_ip%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user_reg_ip), $msg)) { if ($msg = preg_replace('/%%user_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user_id), $msg)) { if (is_array($fields) && !empty($fields)) { foreach ($fields as $var => $val) { $rec = preg_replace('/%%' . preg_quote($var, '/') . '%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(maybe_serialize($val)), $rec); $sbj = preg_replace('/%%' . preg_quote($var, '/') . '%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(maybe_serialize($val)), $sbj); $msg = preg_replace('/%%' . preg_quote($var, '/') . '%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(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\n" . 'Content-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'])) { if (($url = c_ws_plugin__s2member_utils_strings::fill_cvs($url, $paypal['custom'], true)) && ($url = preg_replace('/%%(?:subscr|txn)_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['txn_id'])), $url))) { if (($url = preg_replace('/%%(?:subscr|txn)_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['txn_baid'])), $url)) && ($url = preg_replace('/%%(?:subscr|txn)_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['txn_cid'])), $url))) { if (($url = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['currency'])), $url)) && ($url = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['currency_symbol'])), $url))) { if (($url = preg_replace('/%%amount%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['mc_gross'])), $url)) && ($url = preg_replace('/%%txn_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['txn_id'])), $url))) { if (($url = preg_replace('/%%item_number%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['item_number'])), $url)) && ($url = preg_replace('/%%item_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['item_name'])), $url))) { if (($url = preg_replace('/%%first_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['first_name'])), $url)) && ($url = preg_replace('/%%last_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['last_name'])), $url))) { if ($url = preg_replace('/%%full_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode(trim($paypal['first_name'] . ' ' . $paypal['last_name']))), $url)) { if ($url = preg_replace('/%%payer_email%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['payer_email'])), $url)) { if (($url = preg_replace('/%%full_coupon_code%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($coupon['full_coupon_code'])), $url)) && ($url = preg_replace('/%%coupon_code%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($coupon['coupon_code'])), $url)) && ($url = preg_replace('/%%coupon_affiliate_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($coupon['affiliate_id'])), $url))) { if (($url = preg_replace('/%%user_first_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($user->first_name)), $url)) && ($url = preg_replace('/%%user_last_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($user->last_name)), $url))) { if ($url = preg_replace('/%%user_full_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode(trim($user->first_name . ' ' . $user->last_name))), $url)) { if ($url = preg_replace('/%%user_email%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($user->user_email)), $url)) { if ($url = preg_replace('/%%user_login%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($user->user_login)), $url)) { if ($url = preg_replace('/%%user_ip%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($user_reg_ip)), $url)) { if ($url = preg_replace('/%%user_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(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_refs(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']) { foreach (preg_split('/[' . "\r\n\t" . ']+/', $GLOBALS['WS_PLUGIN__']['s2member']['o']['payment_notification_urls']) as $url) { if (($url = c_ws_plugin__s2member_utils_strings::fill_cvs($url, $paypal['custom'], true)) && ($url = preg_replace('/%%(?:subscr|txn)_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['txn_id'])), $url))) { if (($url = preg_replace('/%%(?:subscr|txn)_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['txn_baid'])), $url)) && ($url = preg_replace('/%%(?:subscr|txn)_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['txn_cid'])), $url))) { if (($url = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['currency'])), $url)) && ($url = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['currency_symbol'])), $url))) { if (($url = preg_replace('/%%amount%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['mc_gross'])), $url)) && ($url = preg_replace('/%%txn_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['txn_id'])), $url))) { if (($url = preg_replace('/%%item_number%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['item_number'])), $url)) && ($url = preg_replace('/%%item_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['item_name'])), $url))) { if (($url = preg_replace('/%%first_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['first_name'])), $url)) && ($url = preg_replace('/%%last_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['last_name'])), $url))) { if ($url = preg_replace('/%%full_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode(trim($paypal['first_name'] . ' ' . $paypal['last_name']))), $url)) { if ($url = preg_replace('/%%payer_email%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['payer_email'])), $url)) { if (($url = preg_replace('/%%full_coupon_code%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($coupon['full_coupon_code'])), $url)) && ($url = preg_replace('/%%coupon_code%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($coupon['coupon_code'])), $url)) && ($url = preg_replace('/%%coupon_affiliate_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($coupon['affiliate_id'])), $url))) { if (($url = preg_replace('/%%user_first_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($user->first_name)), $url)) && ($url = preg_replace('/%%user_last_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($user->last_name)), $url))) { if ($url = preg_replace('/%%user_full_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode(trim($user->first_name . ' ' . $user->last_name))), $url)) { if ($url = preg_replace('/%%user_email%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($user->user_email)), $url)) { if ($url = preg_replace('/%%user_login%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($user->user_login)), $url)) { if ($url = preg_replace('/%%user_ip%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($user_reg_ip)), $url)) { if ($url = preg_replace('/%%user_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(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_refs(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']) { $msg = $sbj = '(s2Member / API Notification Email) - Payment'; $msg .= "\n\n"; // Spacing in the message body. $msg .= 'currency: %%currency%%' . "\n"; $msg .= 'currency_symbol: %%currency_symbol%%' . "\n"; $msg .= 'amount: %%amount%%' . "\n"; $msg .= 'txn_id: %%txn_id%%' . "\n"; $msg .= 'txn_baid: %%txn_baid%%' . "\n"; $msg .= 'txn_cid: %%txn_cid%%' . "\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 = c_ws_plugin__s2member_utils_strings::fill_cvs($msg, $paypal['custom'])) && ($msg = preg_replace('/%%(?:subscr|txn)_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_id']), $msg))) { if (($msg = preg_replace('/%%(?:subscr|txn)_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_baid']), $msg)) && ($msg = preg_replace('/%%(?:subscr|txn)_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_cid']), $msg))) { if (($msg = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $msg)) && ($msg = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $msg))) { if (($msg = preg_replace('/%%amount%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['mc_gross']), $msg)) && ($msg = preg_replace('/%%txn_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_id']), $msg))) { if (($msg = preg_replace('/%%item_number%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['item_number']), $msg)) && ($msg = preg_replace('/%%item_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['item_name']), $msg))) { if (($msg = preg_replace('/%%first_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['first_name']), $msg)) && ($msg = preg_replace('/%%last_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['last_name']), $msg))) { if ($msg = preg_replace('/%%full_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(trim($paypal['first_name'] . ' ' . $paypal['last_name'])), $msg)) { if ($msg = preg_replace('/%%payer_email%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['payer_email']), $msg)) { if (($msg = preg_replace('/%%full_coupon_code%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($coupon['full_coupon_code']), $msg)) && ($msg = preg_replace('/%%coupon_code%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($coupon['coupon_code']), $msg)) && ($msg = preg_replace('/%%coupon_affiliate_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($coupon['affiliate_id']), $msg))) { if (($msg = preg_replace('/%%user_first_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user->first_name), $msg)) && ($msg = preg_replace('/%%user_last_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user->last_name), $msg))) { if ($msg = preg_replace('/%%user_full_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(trim($user->first_name . ' ' . $user->last_name)), $msg)) { if ($msg = preg_replace('/%%user_email%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user->user_email), $msg)) { if ($msg = preg_replace('/%%user_login%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user->user_login), $msg)) { if ($msg = preg_replace('/%%user_ip%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user_reg_ip), $msg)) { if ($msg = preg_replace('/%%user_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user_id), $msg)) { if (is_array($fields) && !empty($fields)) { foreach ($fields as $var => $val) { if (!($msg = preg_replace('/%%' . preg_quote($var, '/') . '%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(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'])) { if (($code = c_ws_plugin__s2member_utils_strings::fill_cvs($code, $paypal['custom'])) && ($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('/%%full_coupon_code%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($coupon['full_coupon_code']), $code)) && ($code = preg_replace('/%%coupon_code%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($coupon['coupon_code']), $code)) && ($code = preg_replace('/%%coupon_affiliate_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($coupon['affiliate_id']), $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_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 tdomf_create_dummy_user() { $rand_username = "******" . tdomf_random_string(5); $rand_password = tdomf_random_string(8); tdomf_log_message("Attempting to create dummy user {$rand_username}"); $user_id = wp_create_user($rand_username, $rand_password); $user = new WP_User($user_id); if ($user->has_cap("publish_posts")) { $user->remove_cap("publish_posts"); } $users = get_option(TDOMF_OPTION_CREATEDUSERS); if ($users == false) { $users = array($user_id); add_option(TDOMF_OPTION_CREATEDUSERS, $users); } else { $users = array_merge($users, array($user_id)); update_option(TDOMF_OPTION_CREATEDUSERS, $users); } update_option(TDOMF_DEFAULT_AUTHOR, $user_id); tdomf_log_message("Dummy user created for default author, user id = {$user_id}"); return $user_id; }
function LivelyChatSupport_admin() { global $wpdb; wp_register_style("LivelyChatSupport-admin-css", plugins_url("lively-chat-support/admin/css/style.css")); wp_register_style("LivelyChatSupport-chatbox-reset", plugins_url("lively-chat-support/chatbox/css/reset.css")); wp_register_style("LivelyChatSupport-chatbox-style", plugins_url("lively-chat-support/chatbox/css/style.css")); wp_register_style("LivelyChatSupport-jQuery-UI", plugins_url("lively-chat-support/admin/css/livelychatsupport.jquery-ui.min.css")); wp_enqueue_style(array("LivelyChatSupport-chatbox-reset", "LivelyChatSupport-chatbox-style", "LivelyChatSupport-chatbox-colours", "LivelyChatSupport-admin-css", "wp-color-picker", "LivelyChatSupport-jQuery-UI")); wp_register_script("LivelyChatSupport-admin-js", plugins_url("lively-chat-support/admin/js/admin.js")); wp_enqueue_script(array("jquery", "jquery-ui", "jquery-ui-datepicker", "wp-color-picker", "LivelyChatSupport-admin-js")); wp_enqueue_media(); if (isset($_POST)) { if (function_exists("flush_pgcache")) { flush_pgcache(); } if (function_exists("reset_oc_version")) { reset_oc_version(); } $posted_data = array(); $post_fields = array("subscriber_email", "subscriber_name", "default_responder_id", "visible_pages", "online", "offline_thanks", "colour", "position", "cta_online_text", "cta_offline_text", "cta_online_image_offset_y", "cta_online_image_offset_x", "cta_offline_image_offset_y", "cta_offline_image_offset_x", "cta_online_image", "cta_offline_image", "start", "finish", "twilio_sid", "twilio_auth", "sms_responder_id", "show_powered_by", "track_pages"); $allow_blanks = array(); foreach ($post_fields as $field) { if (isset($_POST[$field])) { $posted_data[$field] = trim(stripslashes($_POST[$field])); } } LivelyChatSupport_settings($posted_data); } if (isset($_POST["activation_code"])) { LivelyChatSupport_activate(); } if (isset($_GET["delete_convo"])) { LivelyChatSupport_delete_convo($_GET["convo_token"]); } if (isset($_POST["twilio_phone"])) { $agent = LivelyChatSupport_agent(get_current_user_id()); LivelyChatSupport_settings(array("twilio_phone" => "+" . preg_replace("/[^0-9]/", "", trim($_POST["twilio_phone"])))); LivelyChatSupport_send_sms("Site", "Your Lively Chat Support is installed!", $agent); } if (isset($_POST["agents"])) { foreach ($_POST["agents"] as $agent) { $active = $agent["active"] == "true" ? true : false; if (isset($agent["mobile"]) && $agent["mobile"] != "") { update_user_meta($agent["id"], "livelychatsupport-mobile", "+" . preg_replace("/[^0-9]/", "", trim($agent["mobile"]))); } if (isset($agent["avatar"])) { update_user_meta($agent["id"], "livelychatsupport-avatar", $agent["avatar"]); } if (isset($agent["name"])) { update_user_meta($agent["id"], "livelychatsupport-name", $agent["name"]); } if (isset($agent["active"])) { update_user_meta($agent["id"], "livelychatsupport-active", $active); } if ($active) { $user = new WP_User($agent["id"]); $user->add_cap("can_livelychatsupport"); } else { $user = new WP_User($agent["id"]); $user->remove_cap("can_livelychatsupport"); } } } if (isset($_POST["triggers"])) { foreach ($_POST["triggers"] as $trigger) { $now = date("Y-m-d H:i:s", current_time("timestamp")); if ($trigger["id"] != "template") { if ($trigger["delete"] == "1") { $wpdb->delete($wpdb->prefix . "livelychatsupport_triggers", array("id" => $trigger["id"])); } else { if ($trigger["body"] != "") { if ($trigger["id"] == "new") { $wpdb->insert($wpdb->prefix . "livelychatsupport_triggers", array("urls" => $trigger["urls"], "delay" => $trigger["delay"], "body" => filter_var($trigger["body"], FILTER_SANITIZE_STRING), "created_at" => $now, "updated_at" => $now)); } else { $wpdb->update($wpdb->prefix . "livelychatsupport_triggers", array("urls" => $trigger["urls"], "delay" => $trigger["delay"], "body" => filter_var($trigger["body"], FILTER_SANITIZE_STRING), "updated_at" => $now), array("id" => $trigger["id"])); } } } } } } if (isset($_POST["surveys"])) { foreach ($_POST["surveys"] as $survey) { $now = date("Y-m-d H:i:s", current_time("timestamp")); $questions = stripslashes($survey["questions"]); $title = stripslashes($survey["title"]); $urls = stripslashes($survey["urls"]); $delay = stripslashes($survey["delay"]); $thanks = stripslashes($survey["thanks"]); if ($survey["id"] != "template") { if ($survey["delete"] == "1") { $wpdb->delete($wpdb->prefix . "livelychatsupport_surveys", array("id" => $survey["id"])); } else { if ($title != "") { if ($survey["id"] == "new") { $wpdb->insert($wpdb->prefix . "livelychatsupport_surveys", array("title" => $title, "urls" => $urls, "delay" => $delay, "questions" => $questions, "thanks" => $thanks, "created_at" => $now, "updated_at" => $now)); } else { $wpdb->update($wpdb->prefix . "livelychatsupport_surveys", array("title" => $title, "urls" => $urls, "delay" => $delay, "questions" => $questions, "thanks" => $thanks, "updated_at" => $now), array("id" => $survey["id"])); } } } } } } if (isset($_POST["hours"])) { foreach ($_POST["hours"] as $hour) { $now = date("Y-m-d H:i:s", current_time("timestamp")); if (isset($hour["id"])) { if ($hour["id"] != "template") { if ($hour["delete"] == "1") { $wpdb->delete($wpdb->prefix . "livelychatsupport_hours", array("id" => $hour["id"])); } else { if ($hour["id"] == "new") { $wpdb->insert($wpdb->prefix . "livelychatsupport_hours", array("day" => $hour["day"], "open_at" => date("Hi", strtotime($hour["open_at"])), "close_at" => date("Hi", strtotime($hour["close_at"])), "responder_id" => $hour["responder_id"], "via" => $hour["via"], "created_at" => $now, "updated_at" => $now)); } else { $wpdb->update($wpdb->prefix . "livelychatsupport_hours", array("day" => $hour["day"], "open_at" => date("Hi", strtotime($hour["open_at"])), "close_at" => date("Hi", strtotime($hour["close_at"])), "responder_id" => $hour["responder_id"], "via" => $hour["via"], "updated_at" => $now), array("id" => $hour["id"])); } } } } } } $livelychatsupport = LivelyChatSupport_details(); echo '<div id="livelychatsupport" class="wrap">'; include_once LIVELYCHATSUPPORT_ROOT . "/admin/includes/header.php"; if ($livelychatsupport["subscriber_email"] == "" || $livelychatsupport["subscriber_name"] == "") { include_once LIVELYCHATSUPPORT_ROOT . "/admin/tabs/email_required.php"; } else { $_GET["tab"] = isset($_GET["tab"]) ? $_GET["tab"] : "visitors"; include_once LIVELYCHATSUPPORT_ROOT . "/admin/tabs/" . $_GET["tab"] . ".php"; } echo '</div>'; }
function LivelyChatSupport_save_user_profile_fields($user_id) { if (!current_user_can("edit_user", $user_id)) { return false; } $user = new WP_User($user_id); if (isset($_POST["livelychatsupport_access"])) { $user->add_cap("can_livelychatsupport"); } else { $user->remove_cap("can_livelychatsupport"); } }
/** * 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. * * @todo Optimize with ``empty()`` and ``isset()``. */ public static function cp($vars = array()) { extract($vars); 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_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"]; 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; $fields = get_user_option("s2member_custom_fields", $user_id); $user_reg_ip = get_user_option("s2member_registration_ip", $user_id); $user_reg_ip = $paypal["ip"] = $user_reg_ip ? $user_reg_ip : $paypal["ip"]; 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["subscr_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_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("/%%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_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. 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>Page Expired:</strong> Duplicate Return-Data.<br />Please contact Support if you need any assistance.', "s2member-front", "s2member"), _x("Back 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()); } }
/** * 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; } }
/** * @ticket 21786 */ function test_negative_caps() { $author = new WP_User($this->factory->user->create(array('role' => 'author'))); $author->add_cap('foo', false); $this->assertTrue(isset($author->caps['foo'])); $author->remove_cap('foo'); $this->assertFalse(isset($author->caps['foo'])); }
function sstfg_remove_cap_to_customer($user_id, $subscription_key) { $sub = wcs_get_subscription_from_key($subscription_key); $user = new WP_User($user_id); $user->remove_cap('access_s2member_level0'); $user->remove_cap('access_s2member_ccap_sstfg'); }
public function disable_all_caps() { global $wp_roles; if (!isset($wp_roles) || !is_object($wp_roles)) { $wp_roles = new WP_Roles(); } $wpcf_capabilities = array_keys(self::wpcf_get_capabilities()); foreach ($wpcf_capabilities as $cap) { foreach (array_keys($wp_roles->roles) as $role) { $wp_roles->remove_cap($role, $cap); } } //Remove caps for all Super Admins $super_admins = get_super_admins(); foreach ($super_admins as $admin) { $user = new WP_User($admin); for ($i = 0, $caps_limit = count($wpcf_capabilities); $i < $caps_limit; $i++) { $user->remove_cap($wpcf_capabilities[$i]); } } }
/** * 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 process_bulk_action() { $ids = isset($_GET['vendor']) ? $_GET['vendor'] : false; if (empty($ids)) { return; } if (!is_array($ids)) { $ids = array($ids); } $current_action = $_GET['action']; foreach ($ids as $id) { if ('approve_vendor' === $current_action) { if ($id < 2) { break; } if (user_can($id, 'fes_is_admin') || user_can($id, 'frontend_vendor')) { break; } if (!user_can($id, 'pending_vendor')) { break; } $user = new WP_User($id); $user->remove_role('pending_vendor'); $user->add_role('frontend_vendor'); $from_name = isset($edd_options['from_name']) ? $edd_options['from_name'] : get_bloginfo('name'); $from_email = isset($edd_options['from_email']) ? $edd_options['from_email'] : get_option('admin_email'); $subject = apply_filters('fes_application_approved_message_subj', __('Application Approved', 'edd_fes'), 0); $message = EDD_FES()->helper->get_option('fes-vendor-app-approved-email', ''); $type = "user"; $args['permissions'] = 'fes-vendor-app-approved-email-toggle'; EDD_FES()->emails->send_email($user->user_email, $from_name, $from_email, $subject, $message, $type, $id, $args); do_action('fes_approve_vendor_admin', $id); if (isset($_GET['redirect']) && $_GET['redirect'] == '2') { wp_redirect(admin_url('admin.php?page=fes-vendors&vendor=' . $id . '&action=edit&approved=2')); exit; } } if ('revoke_vendor' === $current_action) { if ($id < 2) { break; } if (!(user_can($id, 'fes_is_admin') || user_can($id, 'frontend_vendor'))) { break; } $user = new WP_User($id); $user->remove_role('frontend_vendor'); $user->remove_cap('fes_is_admin'); $user->add_role('subscriber'); // remove all their posts $args = array('post_type' => 'download', 'author' => $id, 'posts_per_page' => -1, 'fields' => 'ids', 'post_status' => 'any'); $query = new WP_Query($args); foreach ($query->posts as $id) { wp_delete_post($id, false); } $to = $user->user_email; $from_name = isset($edd_options['from_name']) ? $edd_options['from_name'] : get_bloginfo('name'); $from_email = isset($edd_options['from_email']) ? $edd_options['from_email'] : get_option('admin_email'); $subject = apply_filters('fes_application_revoked_message_subj', __('Application Revoked', 'edd_fes'), 0); $message = EDD_FES()->helper->get_option('fes-vendor-app-revoked-email', ''); $type = "user"; $id = $id; $args['permissions'] = 'fes-vendor-app-revoked-email-toggle'; EDD_FES()->emails->send_email($to, $from_name, $from_email, $subject, $message, $type, $id, $args); do_action('fes_revoke_vendor_admin', $id); } if ('decline_vendor' === $current_action) { if ($id < 2) { break; } if (user_can($id, 'fes_is_admin') || user_can($id, 'frontend_vendor')) { break; } if (!user_can($id, 'pending_vendor')) { break; } $user = new WP_User($id); $user->remove_role('pending_vendor'); $to = $user->user_email; $from_name = isset($edd_options['from_name']) ? $edd_options['from_name'] : get_bloginfo('name'); $from_email = isset($edd_options['from_email']) ? $edd_options['from_email'] : get_option('admin_email'); $subject = apply_filters('fes_application_declined_message_subj', __('Application Declined', 'edd_fes'), 0); $message = EDD_FES()->helper->get_option('fes-vendor-app-declined-email', ''); $type = "user"; $id = $id; $args['permissions'] = 'fes-vendor-app-declined-email-toggle'; EDD_FES()->emails->send_email($to, $from_name, $from_email, $subject, $message, $type, $id, $args); do_action('fes_decline_vendor_admin', $id); } if ('suspend_vendor' === $current_action) { if ($id < 2) { break; } if (user_can($id, 'pending_vendor')) { break; } if (user_can($id, 'suspended_vendor')) { break; } $user = new WP_User($id); $user->remove_role('frontend_vendor'); $user->add_role('suspended_vendor'); // remove all their posts $args = array('post_type' => 'download', 'author' => $id, 'posts_per_page' => -1, 'fields' => 'ids', 'post_status' => 'any'); $query = new WP_Query($args); foreach ($query->posts as $id) { $post = get_post($id); update_post_meta($id, 'fes_previous_status', $post->post_status); wp_delete_post($id, false); } $to = $user->user_email; $from_name = isset($edd_options['from_name']) ? $edd_options['from_name'] : get_bloginfo('name'); $from_email = isset($edd_options['from_email']) ? $edd_options['from_email'] : get_option('admin_email'); $subject = apply_filters('fes_vendor_suspended_message_subj', __('Suspended', 'edd_fes'), 0); $message = EDD_FES()->helper->get_option('fes-vendor-suspended-email', ''); $type = "user"; $id = $id; $args['permissions'] = 'fes-vendor-suspended-email-toggle'; EDD_FES()->emails->send_email($to, $from_name, $from_email, $subject, $message, $type, $id, $args); do_action('fes_vendor_suspended_admin', $id); if (isset($_GET['redirect']) && $_GET['redirect'] == '2') { wp_redirect(admin_url('admin.php?page=fes-vendors&vendor=' . $id . '&action=edit&approved=2')); exit; } } if ('unsuspend_vendor' === $current_action) { if ($id < 2) { break; } if (user_can($id, 'pending_vendor')) { break; } if (user_can($id, 'frontend_vendor')) { break; } $user = new WP_User($id); $user->add_role('frontend_vendor'); $user->remove_role('suspended_vendor'); // remove all their posts $args = array('post_type' => 'download', 'author' => $id, 'posts_per_page' => -1, 'fields' => 'ids', 'post_status' => 'trash'); $query = new WP_Query($args); foreach ($query->posts as $id) { $status = get_post_meta($id, 'fes_previous_status', true); if (!$status) { $status = 'publish'; } wp_update_post(array('ID' => $id, 'post_status' => $status)); } $to = $user->user_email; $from_name = isset($edd_options['from_name']) ? $edd_options['from_name'] : get_bloginfo('name'); $from_email = isset($edd_options['from_email']) ? $edd_options['from_email'] : get_option('admin_email'); $subject = apply_filters('fes_vendor_unsuspended_message_subj', __('Unsuspended', 'edd_fes'), 0); $message = EDD_FES()->helper->get_option('fes-vendor-unsuspended-email', ''); $type = "user"; $id = $id; $args['permissions'] = 'fes-vendor-unsuspended-email-toggle'; EDD_FES()->emails->send_email($to, $from_name, $from_email, $subject, $message, $type, $id, $args); do_action('fes_vendor_unsuspended_admin', $id); if (isset($_GET['redirect']) && $_GET['redirect'] == '2') { wp_redirect(admin_url('admin.php?page=fes-vendors&vendor=' . $id . '&action=edit&approved=2')); exit; } } } }
/** * Delete capabilities * * @brief Delete * * @param string|array $id Any single or array of caps */ public function delete($id) { // Makes array $id = (array) $id; // Get extra info $extra = get_option(self::OPTION_KEY); // Loop foreach ($id as $cap) { // Destroy extra info unset($extra[$cap]); /* * Remove this cap from users */ // Gets users $users = $this->usersWithCaps($cap); foreach ($users as $user_id) { $user = new WP_User($user_id); $user->remove_cap($cap); } /* * Remove cap from roles */ // Loop in roles foreach (WPDKUserRoles::init()->arrayCapabilitiesByRole as $role => $caps) { if (in_array($cap, array_keys($caps))) { WPDKUserRoles::init()->remove_cap($role, $cap); } } } // Update extra info update_option(self::OPTION_KEY, $extra); }
/** * @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' ) ); }
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'); } }
public function deactivateApplication($affiliateId) { if (!wp_get_current_user()->has_cap(WPAM_PluginConfig::$AdminCap)) { throw new Exception(__('Access denied.', 'affiliates-manager')); } $affiliateId = (int) $affiliateId; $db = new WPAM_Data_DataAccess(); $affiliate = $db->getAffiliateRepository()->load($affiliateId); if ($affiliate === NULL) { throw new Exception(__('Invalid affiliate', 'affiliates-manager')); } if (!$affiliate->isActive()) { throw new Exception(__('Access denied.', 'affiliates-manager')); } $affiliate->deactivate(); $db->getAffiliateRepository()->update($affiliate); $user = new WP_User($affiliate->userId); $user->remove_cap(WPAM_PluginConfig::$AffiliateActiveCap); return new JsonResponse(JsonResponse::STATUS_OK); }
function remove_translator($user_id) { global $wpdb; $user = new WP_User($user_id); $user->remove_cap('translate'); delete_user_meta($user_id, $wpdb->prefix . 'language_pairs'); $this->clear_cache(); }
/** * Change user capability * * @access public * @return void */ function user_change_cap($user_id) { global $WCMp; $user = new WP_User($user_id); $product_caps = array("edit_product", "delete_product", "edit_products", "edit_others_products", "delete_published_products", "delete_products", "delete_others_products", "edit_published_products"); $is_submit_product = get_user_meta($user_id, '_vendor_submit_product', true); if ($WCMp->vendor_caps->vendor_capabilities_settings('is_submit_product')) { if ($is_submit_product) { foreach ($product_caps as $product_cap_add) { $user->add_cap($product_cap_add); } } } if (empty($is_submit_product)) { foreach ($product_caps as $product_cap_remove) { $user->remove_cap($product_cap_remove); } } $coupon_caps = array("edit_shop_coupons", "delete_shop_coupons", "edit_shop_coupons", "edit_others_shop_coupons", "delete_published_shop_coupons", "delete_shop_coupons", "delete_others_shop_coupons", "edit_published_shop_coupons"); $is_submit_coupon = get_user_meta($user_id, '_vendor_submit_coupon', true); if ($WCMp->vendor_caps->vendor_capabilities_settings('is_submit_coupon')) { if ($is_submit_coupon) { foreach ($coupon_caps as $coupon_cap_add) { $user->add_cap($coupon_cap_add); } } } if (empty($is_submit_coupon)) { foreach ($coupon_caps as $coupon_cap_remove) { $user->remove_cap($coupon_cap_remove); } } }