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?
- 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
- Plugin that supports the purchase and installation of other plugins?
- Allowing users to install a predefined bundle of plugins and themes with one action
- Privileges problem with add_submenu_page [closed]
- Adding inside wp-plugin jQuery script that receives JSON-formatted data, generated by php-function inside this plugin
- iframe not showing in post (with “allow php in posts” plugin activated)
- License validate function
- Plugin for an interactive image? [closed]
- CSS reset for plugin’s front end?
- Displaying syntax highlighted code [closed]
- Share buttons Facebook Twitter, just like wordpress.com without webservice
- How can I adjust my function so the page editor still loads in the backend?
- Issue calling my functions on Plugin activate in WordPress
- WPGlobus Multilingual – REST API
- Defining constant in a plugin to use in another plugin
- How Can I display Specific User Pages?
- Any way to self-host plugins and update them like wp-hosted plugins does?
- Custom SportsPress list
- Why is the WordPress update_option not working in this code?
- Display Powerpress media url
- Plugin Post 2 Posts: How to list most connected posts?
- multiple external urls in wordpress website
- How to add a filter conditionally based on page related Conditional Tags
- Additional scrollbar appears inside the browser on every page + lag scroll -Winner theme
- php include returns 1 as output with other outputs [closed]
- Custom GD Star Ratings Stars [closed]
- How do I transfer my plugin data?
- How to give different user access to different people?