public function validate_key($key) { $response = array(); $response['status'] = 0; if (!$key) { $response['message'] = sprintf(esc_html__('Hmmm... something\'s wrong with this validator. Please contact %ssupport%s.', 'tribe-common'), '<a href="http://m.tri.be/1u">', '</a>'); return $response; } $queryArgs = array('pu_install_key' => trim($key), 'pu_checking_for_updates' => '1'); //include version info $queryArgs['pue_active_version'] = $this->get_installed_version(); global $wp_version; $queryArgs['wp_version'] = $wp_version; // For multisite, return the network-level siteurl ... in // all other cases return the actual URL being serviced $queryArgs['domain'] = is_multisite() ? $this->get_network_domain() : $_SERVER['SERVER_NAME']; if (is_multisite()) { $queryArgs['multisite'] = 1; $queryArgs['network_activated'] = is_plugin_active_for_network($this->get_plugin_file()); global $wpdb; $queryArgs['active_sites'] = $wpdb->get_var("SELECT count(blog_id) FROM {$wpdb->blogs} WHERE public = '1' AND archived = '0' AND spam = '0' AND deleted = '0'"); } else { $queryArgs['multisite'] = 0; $queryArgs['network_activated'] = 0; $queryArgs['active_sites'] = 1; } // This method is primarily used during when validating keys by ajax, before they are // formally committed or saved by the user: for that reason we call request_info() // rather than license_key_status() as at this stage invalid or missing keys should // not result in admin notices being generated $plugin_info = $this->request_info($queryArgs); $expiration = isset($plugin_info->expiration) ? $plugin_info->expiration : esc_html__('unknown date', 'tribe-common'); $pue_notices = Tribe__Main::instance()->pue_notices(); $plugin_name = $this->get_plugin_name(); if (empty($plugin_info)) { $response['message'] = esc_html__('Sorry, key validation server is not available.', 'tribe-common'); } elseif (isset($plugin_info->api_expired) && $plugin_info->api_expired == 1) { $response['message'] = $this->get_license_expired_message(); $response['api_expired'] = true; } elseif (isset($plugin_info->api_upgrade) && $plugin_info->api_upgrade == 1) { $response['message'] = $this->get_api_message($plugin_info); $response['api_upgrade'] = true; } elseif (isset($plugin_info->api_invalid) && $plugin_info->api_invalid == 1) { $response['message'] = $this->get_api_message($plugin_info); $response['api_invalid'] = true; } else { $api_secret_key = get_option($this->pue_install_key); if ($api_secret_key && $api_secret_key === $queryArgs['pu_install_key']) { $default_success_msg = sprintf(esc_html__('Valid Key! Expires on %s', 'tribe-common'), $expiration); } else { // Set the key update_option($this->pue_install_key, $queryArgs['pu_install_key']); $default_success_msg = sprintf(esc_html__('Thanks for setting up a valid key. It will expire on %s', 'tribe-common'), $expiration); //Set SysInfo Key on Tec.com After Successful Validation of License $optin_key = get_option('tribe_systeminfo_optin'); if ($optin_key) { Tribe__Support::send_sysinfo_key($optin_key, $queryArgs['domain'], false, true); } } $pue_notices->clear_notices($plugin_name); $response['status'] = isset($plugin_info->api_message) ? 2 : 1; $response['message'] = isset($plugin_info->api_message) ? wp_kses($plugin_info->api_message, 'data') : $default_success_msg; $response['expiration'] = $expiration; if (isset($plugin_info->daily_limit)) { $response['daily_limit'] = intval($plugin_info->daily_limit); } } return $response; }
/** * Ajax Method to Create Unique Key and send to tec.com */ public static function ajax_sysinfo_optin() { if (!isset($_POST['confirm']) || !wp_verify_nonce($_POST['confirm'], 'sysinfo_optin_nonce')) { wp_send_json_error(__('Permission Error', 'tribe-common')); } if ('generate' == $_POST['generate_key']) { $random = base_convert(rand(0, getrandmax()), 10, 36); $optin_key = hash('sha1', $random); update_option('tribe_systeminfo_optin', $optin_key); //Only Connect If a License Exists $keys = apply_filters('tribe-pue-install-keys', array()); if (is_array($keys) && !empty($keys)) { Tribe__Support::send_sysinfo_key($optin_key); } else { wp_send_json_success(__('Unique System Info Key Generated', 'tribe-common')); } } elseif ('remove' == $_POST['generate_key']) { $optin_key = get_option('tribe_systeminfo_optin'); delete_option('tribe_systeminfo_optin'); Tribe__Support::send_sysinfo_key($optin_key, null, 'remove'); } wp_send_json_error(__('Permission Error', 'tribe-common')); }