$now) ? max(7 * DAY_IN_SECONDS, ($register_link_expiration - $now) + DAY_IN_SECONDS) : 7 * DAY_IN_SECONDS; //260612 Allow for custom registration link expiration. if($shrink && ($shorter_url = c_ws_plugin__s2member_utils_urls::shorten($register_link, '', TRUE, $register_link_expiration))) { $shorter_url_host = c_ws_plugin__s2member_utils_urls::parse_url($shorter_url, PHP_URL_HOST); $home_url_host = c_ws_plugin__s2member_utils_urls::parse_url(home_url('/'), PHP_URL_HOST); $domain_tag = ($shorter_url_host && $home_url_host && strcasecmp($shorter_url_host, $home_url_host) !== 0) ? '#'.$home_url_host : ''; //260612 Personalize external short links only. $register_link = $shorter_url.$domain_tag; } } return apply_filters('ws_plugin__s2member_register_link_gen', ((!empty($register_link)) ? $register_link : FALSE), get_defined_vars()); } /** * Generates Registration Access Links via AJAX. * * @package s2Member\Registrations * @since 3.5 * * @attaches-to ``add_action('wp_ajax_ws_plugin__s2member_reg_access_link_via_ajax');`` * * @return null Exits script execution after output is generated for AJAX caller. */ public static function reg_access_link_via_ajax() { do_action('ws_plugin__s2member_before_reg_access_link_via_ajax', get_defined_vars()); status_header(200); // Send a 200 OK status header. header('Content-Type: text/plain; charset=UTF-8'); // Content-Type with UTF-8. while(@ob_end_clean()) ; // Clean any existing output buffers. if(current_user_can('create_users')) // Check privileges as well. Ability to create Users? if(!empty($_POST['ws_plugin__s2member_reg_access_link_via_ajax']) && is_string($nonce = $_POST['ws_plugin__s2member_reg_access_link_via_ajax']) && wp_verify_nonce($nonce, 'ws-plugin--s2member-reg-access-link-via-ajax')) if(($_p = c_ws_plugin__s2member_utils_strings::trim_deep(stripslashes_deep($_POST))) && isset ($_p['s2member_reg_access_link_subscr_gateway'], $_p['s2member_reg_access_link_subscr_id'], $_p['s2member_reg_access_link_custom'], $_p['s2member_reg_access_link_item_number'])) $register_link = c_ws_plugin__s2member_register_access::register_link_gen((string)$_p['s2member_reg_access_link_subscr_gateway'], (string)$_p['s2member_reg_access_link_subscr_id'], (string)$_p['s2member_reg_access_link_custom'], (string)$_p['s2member_reg_access_link_item_number']); exit(apply_filters('ws_plugin__s2member_reg_access_link_via_ajax', ((!empty($register_link)) ? $register_link : ''), get_defined_vars())); } /** * Checks registration cookies. * * @package s2Member\Registrations * @since 110707 * * @return array|bool An array of cookies if they're OK, else false. */ public static function reg_cookies_ok() { global $wpdb; /** @var $wpdb \wpdb */ do_action('ws_plugin__s2member_before_reg_cookies_ok', get_defined_vars()); if(isset ($_COOKIE['s2member_subscr_gateway'], $_COOKIE['s2member_subscr_id'], $_COOKIE['s2member_custom'], $_COOKIE['s2member_item_number'])) if(($subscr_gateway = c_ws_plugin__s2member_utils_encryption::decrypt((string)$_COOKIE['s2member_subscr_gateway'])) && ($subscr_id = c_ws_plugin__s2member_utils_encryption::decrypt((string)$_COOKIE['s2member_subscr_id'])) && preg_match('/^'.preg_quote(preg_replace('/\:([0-9]+)$/', '', $_SERVER['HTTP_HOST']), '/').'/i', ($custom = c_ws_plugin__s2member_utils_encryption::decrypt((string)$_COOKIE['s2member_custom']))) && preg_match($GLOBALS['WS_PLUGIN__']['s2member']['c']['membership_item_number_w_level_regex'], ($item_number = c_ws_plugin__s2member_utils_encryption::decrypt((string)$_COOKIE['s2member_item_number']))) && !$wpdb->get_var("SELECT `user_id` FROM `".$wpdb->usermeta."` WHERE `meta_key` = '".$wpdb->prefix."s2member_subscr_id' AND `meta_value` = '".esc_sql($subscr_id)."' LIMIT 1")) $reg_cookies_ok = $reg_cookies = array('subscr_gateway' => $subscr_gateway, 'subscr_id' => $subscr_id, 'custom' => $custom, 'item_number' => $item_number); return apply_filters('ws_plugin__s2member_reg_cookies_ok', !empty($reg_cookies_ok) && !empty($reg_cookies) ? $reg_cookies : FALSE, get_defined_vars()); } } }