Allowing users to install a predefined bundle of plugins and themes with one action

would it be possible to offer a predefined bundle of plugins and themes made by various parties, which users could download,

Yes, assuming you have the permission of those parties to use their branding and trademarks, and act within the GPL licence, you can just zip the plugins and theme up together and offer it as a download, however…

and then install in (ideally) one action?

No.

The problem is that in order for such a thing to exist you would need to install a tool or install a downloader/installer plugin of some sort first, defeating the entire point of the exercise and making your install process very non-standard and unusual. Users would not be able to rely on familiar practices from other vendors, the .org documentation, or people online for help.

The closest you could get with WordPress core is:

  1. unzip the file then use multiple WP CLI commands to chain install commands together for plugins and themes
  2. Install a theme then have it automatically download and install the needed plugins

Option 1 is far beyond the capabilities of those uncomfortable with FTP, and option 2 could be problematic as the additional downloads and installs are a surprise, and include new complexity ( e.g. what if the plugins folder is readonly or managed by git? ).

Instead, it’s easier to provide multiple zips in 1, or as multiple downloads, ensuring if the user doesn’t install all of them, that the others will still work but with reduced functionality and a warning in the admin area. The user can easily install multiple items via multiple zips one at a time without any FTP/SSH knowledge.

The one case where what you want is “possible” is when using composer. Defining a package for each plugin/theme then declaring them as dependencies of a meta package would allow a user to run composer install yourmetapackagesname and it would fetch and install all of them. This is far beyond the abilities of someone struggling with FTP though and requires both SSH access, knowledge of CLI/terminals, and composer installed.

EDIT: Assuming one already has WP Core installed;

The other case it’s possible is when you pre-bundle them in a full WordPress install, but this would be suspicious and heavily implies that the copy of WordPress being bundled has.. additions

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)