Пример #1
0
 /**
  * Handler of extension deactivation event
  */
 public static function onExtensionDeactivation($extension)
 {
     if ($extension == WPRC_PLUGIN_BASENAME) {
         return;
     }
     WPRC_Loader::includeUrlAnalyzer();
     $extension_type = '';
     $url = $_SERVER['REQUEST_URI'];
     $extension = WPRC_UrlAnalyzer::getExtensionFromUrl($url);
     $extension_type = $extension['type'];
     // if bulk deactivation skip
     if (defined('WPRC_SKIP_BULK_DEACTIVATION_REPORT') && WPRC_SKIP_BULK_DEACTIVATION_REPORT == true) {
         if (array_key_exists('checked', $_POST)) {
             return;
         }
     }
     $settings_model = WPRC_Loader::getModel('settings');
     $settings = $settings_model->getSettings();
     if (isset($settings['allow_compatibility_reporting']) && $settings['allow_compatibility_reporting'] == 1) {
         $url = $_SERVER['REQUEST_URI'];
         $url_params = WPRC_UrlAnalyzer::getUrlParams($url);
         if (count($url_params) > 0) {
             $report_send = '';
             if (array_key_exists('reported', $url_params)) {
                 $report_send = $url_params['reported'];
             }
             $plugin = '';
             if (array_key_exists('plugin', $url_params)) {
                 $plugin = $url_params['plugin'];
             }
             // prevent custom plugin decativation from triggering the deactivation form
             if ($report_send !== 'true' && !empty($extension_type) && $plugin !== WPRC_PLUGIN_NAME) {
                 WPRC_Loader::includeAdminTop();
                 WPRC_Loader::includePage('deactivation-reason-form');
                 exit;
             }
         } else {
             if (!isset($_REQUEST['reported']) && array_key_exists('checked', $_POST)) {
                 WPRC_Loader::includeAdminTop();
                 WPRC_Loader::includePage('deactivation-reason-form');
                 exit;
             }
         }
     }
 }