Пример #1
0
 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;
 }
Пример #2
0
 /**
  * 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'));
 }