You can take a look at TGM-Plugin-Activation plugin. It should give you good starting point. As written in the documentation:
TGM Plugin Activation is a PHP library that allows you to easily
require or recommend plugins for your WordPress themes (and plugins).
It allows your users to install and even automatically activate
plugins in singular or bulk fashion using native WordPress classes,
functions and interfaces. You can reference pre-packaged plugins,
plugins from the WordPress Plugin Repository or even plugins hosted
elsewhere on the internet.
Related Posts:
- wordpress on localhost lamp doesn’t let me install plugins
- Prompted for FTP details even with FS_DIRECT set to true
- What plugins do you commonly install on a fresh WordPress install?
- How can I create a bash install script for my WordPress sites setup (WP+plugins+theme)?
- Combine multiple plugins into one?
- How to automatically install default WordPress plugins?
- Does plugin uninstall always put WordPress back into original state?
- What is the purpose of the “Hello Dolly” plugin?
- How to properly secure my WordPress installation?
- WordPress plugin installation error
- Make plugin uninstalable on older versions of WordPress
- Please select a file error
- Install plugin remotely
- What is $tab in `install_plugins_{$tab}` hook?
- Plugin to install a plugin
- Distributing and packaging plugins
- Getting a 404 when trying to load /wp-admin/plugin-install.php
- Can’t use the built-in wordpress install/upgrade plugin feature [closed]
- How to check what plugins used to be on a WordPress installation?
- Error uploading plugin zip file
- What causes an Unexpected HTTP Error within install plugins?
- How does WordPress process plugin installations?
- CMB2 installation – cannot get it to work
- Theme and plugin install or update display error in localhost
- Hook (or other way) to find out when another plugin is activated / installed
- Pushing out updates to multiple installs?
- Installing a plugin on a premium site [closed]
- get 404 when accessing wp-admin/plugin-install.php
- Create a multisite network for an existing installation
- Theme/Plugin installation through url on button click
- Why this function not working for install database on plugin activation
- Import sql data from a large file when installing plugin
- Redirect to another page using contact form 7? [closed]
- Get plugin download URL from slug
- Modify wp_installed_email / wp_new_blog_notification
- Installing wordpress on a subdomain of an already existing static website
- plugin generated 751 characters of unexpected output during activation
- WordPress Plugins Don’t Automatically Update
- Can plugin2 uninstall plugin1 at the very beginning of plugin2’s installation?
- What are the correct permissions so WP doesn’t ask for FTP credentials if installing plugin?
- Problem installing plugin: unexpected T_STRING, expecting T_FUNCTION
- To perform the requested action, WordPress needs to access your web > server
- WooCommerce: after install hook
- WordPress unable to write files in the server
- Programmatically install and activate child-theme
- Installing plug ins on a wordpress hosted site
- Can’t Install/Upgrade Plugins Through WordPress
- Unable to install plugins
- Plugin Add New Installer failing
- Installing a Plugin ( Which is already manually uploaded )
- All new plugins generating 311 chars of unexpected output?
- Upload WordPress Plugin from ZIP Broken – Returns Symbols Squares & question marks
- Restoring a WordPress site
- Can’t install plugins after updating to WordPress 4.9
- WordPress Plugin Install / Update Problem
- WP-admin plugin installation via FTP silently fails on shared hosting
- Plugin install error: Installation failed: The package could not be installed
- database – multiple wordpress installations using same database – can they share plugin settings?
- How to install jquery dotdotdot plugin for WordPress?
- WordPress menu and plugin installation problem
- Hook into install email
- Is there going to an issue running different features of WP site in different subdomains?
- Moving to WordPress Premium versus a hosting provider
- Upacking the package… stalls, but installs plugin
- How to add plugin activity in the menus?
- What possible reasons can cause my plugin not to be listed in the plugin search in the back-end of wordpress installs?
- No feedback when installing plugins or updating
- Why do I get this “peer’s certificate issuer not recognised” error when trying to install a theme?
- Using one-click plugin upgrade feature securely on suexec server
- Can I install plugins manually on WP.com? [closed]
- Google analytics not working on WordPress
- WordPress – connection information
- Plugin installation works only with FTP – how to debug?
- automation of plugin installations
- Pass PHP variable to javascript
- Notify commenters about new replies
- How to structure a plugin into multiple files using classes?
- WordPress logo upload option in theme panel
- Woocommerce – Display active variation product price [closed]
- How can I disable widget from being visible on some pages?
- Is this the right way to execute some PHP in my plugin after a button click on an options page?
- Show Sub pages excerpt+thumbnail
- Is there a WordPress plugin that can post to Google+? [closed]
- WordPress checkbox and Illegal string offset
- dbDelta not adding additional columns in plugin database update
- Fatal error in form display plugin
- Infinite scroll messing up nth:of-type
- How to Show Author image and url in WordPress plugin directory? [closed]
- Renaming Custom Taxonomy Values
- jQuery code didn’t run on my plugin
- Create automatic latest version link
- Some error in mysql script ? Can’t working to create table
- list of custom post by custom field in frontend
- How to add a prefix to a WordPress post preview url?
- Exclude Tag Links from and Text
- Plugin that resets database and deletes all content, plugins
- In WordPress, after installing “Pie Register” plugin, admin permission is GONE! [closed]
- The plugin has been used here? [closed]
- Self-hosted Plugins & Themes store with auto-updates? [closed]
- I’m getting the following error: Fatal error: Uncaught Error: Call to undefined function oil_paint_regeneration() [closed]