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 );