$nonce = 'plugin-upload';
$url =
add_query_arg( array
( 'package' =>
$file_upload->id
), 'update.php?action=upload-plugin'
);
$type = 'upload'; // Install plugin type, From Web or an Upload.
$overwrite =
isset( $_GET['overwrite'
] ) ?
sanitize_text_field( $_GET['overwrite'
] ) : '';
$overwrite =
in_array( $overwrite, array
( 'update-plugin', 'downgrade-plugin'
), true
) ?
$overwrite : '';
$upgrader =
new Plugin_Upgrader( new Plugin_Installer_Skin( compact( 'type', 'title', 'nonce', 'url', 'overwrite'
) ) );
$result =
$upgrader->
install( $file_upload->package, array
( 'overwrite_package' =>
$overwrite ) );
if ( $result ||
is_wp_error( $result ) ) { $file_upload->
cleanup();
} require_once ABSPATH . 'wp-admin/admin-footer.php';
} elseif ( 'upload-plugin-cancel-overwrite' ===
$action ) { if ( !
current_user_can( 'upload_plugins'
) ) { wp_die( __( 'Sorry, you are not allowed to install plugins on this site.'
) );
} check_admin_referer( 'plugin-upload-cancel-overwrite'
);