Why does my hand-written plugin installer fail to find `request_filesystem_credentials`?

I forgot to include the files necessary for these functions to work.

And so, here’s your dirty-quick way to install plugins:

$plugin = THEME_DIR . '/Inc/Plugins/my-shortcodes.zip';
$options = array(
        'package' => $plugin,
        'destination' => WP_PLUGIN_DIR,
        'clear_destination' => false,
        'clear_working' => true,
        'is_multi' => true,
        'hook_extra' => array(
            'plugin' => $plugin,
        ),
);

require_once ABSPATH  . 'wp-admin/includes/misc.php';

if(!function_exists('request_filesystem_credentials')){
    require_once ABSPATH  . 'wp-admin/includes/file.php';
}

if( !class_exists('\Plugin_Upgrader')) {
    require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
}

class My_Upgrader extends Plugin_Upgrader
{
    public function run( $options )
    {
        $result = parent::run( $options );
        return $result;
    }
}

$upgrader = new My_Upgrader;
$upgrader->run($options);
$upgrader->install( $plugin );

Leave a Comment