Jetpack_Autoupdate::get_possible_failures PHP Method

get_possible_failures() static public method

static public get_possible_failures ( )
    static function get_possible_failures()
    {
        $result = array();
        // Lets check some reasons why it might not be working as expected
        include_once ABSPATH . '/wp-admin/includes/admin.php';
        include_once ABSPATH . '/wp-admin/includes/class-wp-upgrader.php';
        $upgrader = new WP_Automatic_Updater();
        if ($upgrader->is_disabled()) {
            $result[] = 'autoupdates-disabled';
        }
        if (!is_main_site()) {
            $result[] = 'is-not-main-site';
        }
        if (!is_main_network()) {
            $result[] = 'is-not-main-network';
        }
        if ($upgrader->is_vcs_checkout(ABSPATH)) {
            $result[] = 'site-on-vcs';
        }
        if ($upgrader->is_vcs_checkout(WP_PLUGIN_DIR)) {
            $result[] = 'plugin-directory-on-vcs';
        }
        if ($upgrader->is_vcs_checkout(WP_CONTENT_DIR)) {
            $result[] = 'content-directory-on-vcs';
        }
        $lock = get_option('auto_updater.lock');
        if ($lock > time() - HOUR_IN_SECONDS) {
            $result[] = 'lock-is-set';
        }
        $skin = new Automatic_Upgrader_Skin();
        include_once ABSPATH . 'wp-admin/includes/file.php';
        include_once ABSPATH . 'wp-admin/includes/template.php';
        if (!$skin->request_filesystem_credentials(false, ABSPATH, false)) {
            $result[] = 'no-system-write-access';
        }
        if (!$skin->request_filesystem_credentials(false, WP_PLUGIN_DIR, false)) {
            $result[] = 'no-plugin-directory-write-access';
        }
        if (!$skin->request_filesystem_credentials(false, WP_CONTENT_DIR, false)) {
            $result[] = 'no-wp-content-directory-write-access';
        }
        return $result;
    }

Usage Example

Esempio n. 1
0
 /**
  * Prepare actions according to screen and post type.
  *
  * @since 3.8.2
  *
  * @uses Jetpack_Autoupdate::get_possible_failures()
  *
  * @param object $screen
  */
 function prepare_jitms($screen)
 {
     if (!current_user_can('jetpack_manage_modules')) {
         return;
     }
     global $pagenow;
     // Only show auto update JITM if auto updates are allowed in this installation
     $possible_reasons_for_failure = Jetpack_Autoupdate::get_possible_failures();
     self::$auto_updates_allowed = empty($possible_reasons_for_failure);
     if ('media-new.php' == $pagenow && !Jetpack::is_module_active('photon')) {
         add_action('admin_enqueue_scripts', array($this, 'jitm_enqueue_files'));
         add_action('post-plupload-upload-ui', array($this, 'photon_msg'));
     } elseif ('post-new.php' == $pagenow && in_array($screen->post_type, array('post', 'page'))) {
         add_action('admin_enqueue_scripts', array($this, 'jitm_enqueue_files'));
         add_action('admin_notices', array($this, 'editor_msg'));
     } elseif (self::$auto_updates_allowed) {
         if ('update-core.php' == $pagenow && !Jetpack::is_module_active('manage')) {
             add_action('admin_enqueue_scripts', array($this, 'jitm_enqueue_files'));
             add_action('admin_notices', array($this, 'manage_msg'));
         } elseif ('plugins.php' == $pagenow) {
             if (isset($_GET['activate']) && 'true' === $_GET['activate'] || isset($_GET['activate-multi']) && 'true' === $_GET['activate-multi']) {
                 add_action('admin_enqueue_scripts', array($this, 'jitm_enqueue_files'));
                 add_action('pre_current_active_plugins', array($this, 'manage_pi_msg'));
             } else {
                 // Save plugins that are activated. This is used when one or more plugins are activated to know
                 // what was activated and use it in Jetpack_JITM::manage_pi_msg() before deleting the option.
                 $wp_list_table = _get_list_table('WP_Plugins_List_Table');
                 $action = $wp_list_table->current_action();
                 if ($action && ('activate' == $action || 'activate-selected' == $action)) {
                     update_option('jetpack_temp_active_plugins_before', get_option('active_plugins', array()));
                 }
             }
         }
     }
 }
All Usage Examples Of Jetpack_Autoupdate::get_possible_failures