Пример #1
0
 public static function trashExtension()
 {
     ob_start();
     $slug = $_POST['slug'];
     include_once ABSPATH . '/wp-admin/includes/plugin.php';
     $thePlugin = get_plugin_data($slug);
     if ($thePlugin != null && $thePlugin != '') {
         deactivate_plugins($slug);
     }
     if (file_exists(ABSPATH . '/wp-admin/includes/screen.php')) {
         include_once ABSPATH . '/wp-admin/includes/screen.php';
     }
     include_once ABSPATH . '/wp-admin/includes/file.php';
     include_once ABSPATH . '/wp-admin/includes/template.php';
     include_once ABSPATH . '/wp-admin/includes/misc.php';
     include_once ABSPATH . '/wp-admin/includes/class-wp-upgrader.php';
     include_once ABSPATH . '/wp-admin/includes/class-wp-filesystem-base.php';
     include_once ABSPATH . '/wp-admin/includes/class-wp-filesystem-direct.php';
     MainWP_Utility::getWPFilesystem();
     /** @global WP_Filesystem_Base $wp_filesystem */
     global $wp_filesystem;
     if (empty($wp_filesystem)) {
         $wp_filesystem = new WP_Filesystem_Direct(null);
     }
     $pluginUpgrader = new Plugin_Upgrader();
     $thePlugin = get_plugin_data($slug);
     if ($thePlugin != null && $thePlugin != '') {
         $pluginUpgrader->delete_old_plugin(null, null, null, array('plugin' => $slug));
     }
     ob_end_clean();
     die(json_encode(array('result' => 'SUCCESS')));
 }
 protected static function checkDirectoryMainWPDirectory()
 {
     $dirs = MainWP_Utility::getMainWPDir();
     $path = $dirs[0];
     if (!is_dir(dirname($path))) {
         //return self::renderDirectoryRow('MainWP upload directory', $path, 'Writable', 'Directory not found', false);
         return self::renderDirectoryRow('MainWP Upload Directory', 'Writable', 'Not Found', false, self::ERROR);
     }
     $hasWPFileSystem = MainWP_Utility::getWPFilesystem();
     /** @global WP_Filesystem_Base $wp_filesystem */
     global $wp_filesystem;
     if ($hasWPFileSystem && !empty($wp_filesystem)) {
         if (!$wp_filesystem->is_writable($path)) {
             //return self::renderDirectoryRow('MainWP upload directory', $path, 'Writable', 'Directory not writable', false);
             return self::renderDirectoryRow('MainWP Upload Directory', 'Writable', 'Not Writable', false, self::ERROR);
         }
     } else {
         if (!is_writable($path)) {
             //return self::renderDirectoryRow('MainWP upload directory', $path, 'Writable', 'Directory not writable', false);
             return self::renderDirectoryRow('MainWP Upload Directory', 'Writable', 'Not Writable', false, self::ERROR);
         }
     }
     //return self::renderDirectoryRow('MainWP upload directory', $path, 'Writable', '/', true);
     return self::renderDirectoryRow('MainWP Upload Directory', 'Writable', 'Writable', true, self::ERROR);
 }
Пример #3
0
 public static function installPlugin($url, $activatePlugin = false)
 {
     $hasWPFileSystem = MainWP_Utility::getWPFilesystem();
     /** @global WP_Filesystem_Base $wp_filesystem */
     global $wp_filesystem;
     if (file_exists(ABSPATH . '/wp-admin/includes/screen.php')) {
         include_once ABSPATH . '/wp-admin/includes/screen.php';
     }
     include_once ABSPATH . '/wp-admin/includes/template.php';
     include_once ABSPATH . '/wp-admin/includes/misc.php';
     include_once ABSPATH . '/wp-admin/includes/class-wp-upgrader.php';
     include_once ABSPATH . '/wp-admin/includes/plugin.php';
     $installer = new WP_Upgrader();
     $ssl_verifyhost = get_option('mainwp_sslVerifyCertificate');
     $ssl_api_verifyhost = get_option('mainwp_api_sslVerifyCertificate') === false || get_option('mainwp_api_sslVerifyCertificate') == 1 ? 1 : 0;
     if ($ssl_verifyhost === '0' || $ssl_api_verifyhost == 0) {
         add_filter('http_request_args', array(MainWP_Extensions::getClassName(), 'noSSLFilterFunction'), 99, 2);
     }
     add_filter('http_request_args', array(MainWP_Extensions::getClassName(), 'http_request_reject_unsafe_urls'), 99, 2);
     $result = $installer->run(array('package' => $url, 'destination' => WP_PLUGIN_DIR, 'clear_destination' => false, 'clear_working' => true, 'hook_extra' => array()));
     remove_filter('http_request_args', array(MainWP_Extensions::getClassName(), 'http_request_reject_unsafe_urls'), 99, 2);
     if ($ssl_verifyhost === '0') {
         remove_filter('http_request_args', array(MainWP_Extensions::getClassName(), 'noSSLFilterFunction'), 99);
     }
     if (is_wp_error($result)) {
         if ($result->get_error_data() && is_string($result->get_error_data())) {
             $error = $result->get_error_data();
             MainWP_Helper::error($error);
         } else {
             $error = $result->get_error_code();
             MainWP_Helper::error(implode(', ', $error));
         }
     }
     $error = $output = $plugin_slug = null;
     if (is_wp_error($result)) {
         if ($result->get_error_data() && is_string($result->get_error_data())) {
             $error = $result->get_error_data();
         } else {
             $error = $result->get_error_code();
         }
     } else {
         $path = $result['destination'];
         foreach ($result['source_files'] as $srcFile) {
             // to fix bug
             if ($srcFile == 'readme.txt') {
                 continue;
             }
             $thePlugin = get_plugin_data($path . $srcFile);
             if ($thePlugin != null && $thePlugin != '' && $thePlugin['Name'] != '') {
                 $output .= __('Successfully installed the plugin', 'mainwp') . ' ' . $thePlugin['Name'] . ' ' . $thePlugin['Version'];
                 $plugin_slug = $result['destination_name'] . '/' . $srcFile;
                 if ($activatePlugin) {
                     activate_plugin($path . $srcFile, '', false, true);
                     do_action('mainwp_api_extension_activated', $path . $srcFile);
                 }
                 break;
             }
         }
     }
     if (!empty($error)) {
         $return['error'] = $error;
     } else {
         $return['result'] = 'SUCCESS';
         $return['output'] = $output;
         $return['slug'] = $plugin_slug;
     }
     return $return;
 }
Пример #4
0
 /**
  * Save the file to the specified path
  * @return boolean TRUE on success
  */
 function save($path)
 {
     $wpFileSystem = MainWP_Utility::getWPFilesystem();
     if ($wpFileSystem != null) {
         $path = str_replace(MainWP_Utility::getBaseDir(), '', $path);
         $moved = $wpFileSystem->put_contents($path, file_get_contents($_FILES['qqfile']['tmp_name']));
     } else {
         $moved = move_uploaded_file($_FILES['qqfile']['tmp_name'], $path);
     }
     if (!$moved) {
         return false;
     }
     return true;
 }