Created
November 17, 2019 17:01
-
-
Save DevWael/6b5b547ee3febef33c1f33a3f0297cc6 to your computer and use it in GitHub Desktop.
Update WordPress Plugin Programatically.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
function replace_plugin() { | |
// modify these variables with your new/old plugin values | |
$plugin_slug = 'wp-reset/wp-reset.php'; | |
$plugin_zip = 'https://downloads.wordpress.org/plugin/wp-reset.latest-stable.zip'; | |
$old_plugin_slug = 'reset-wp/reset-wp.php'; | |
echo 'If things are not done in a minute <a href="plugins.php">click here to return to Plugins page</a><br><br>'; | |
echo 'Starting ...<br><br>'; | |
echo 'Check if new plugin is already installed - '; | |
if ( is_plugin_installed( $plugin_slug ) ) { | |
echo 'it\'s installed! Making sure it\'s the latest version.'; | |
upgrade_plugin( $plugin_slug ); | |
$installed = true; | |
} else { | |
echo 'it\'s not installed. Installing.'; | |
$installed = install_plugin( $plugin_zip ); | |
} | |
if ( !is_wp_error( $installed ) && $installed ) { | |
echo 'Activating new plugin.'; | |
$activate = activate_plugin( $plugin_slug ); | |
if ( is_null($activate) ) { | |
echo '<br>Deactivating old plugin.<br>'; | |
deactivate_plugins( array( $old_plugin_slug ) ); | |
echo '<br>Done! Everything went smooth.'; | |
} | |
} else { | |
echo 'Could not install the new plugin.'; | |
} | |
} | |
function is_plugin_installed( $slug ) { | |
if ( ! function_exists( 'get_plugins' ) ) { | |
require_once ABSPATH . 'wp-admin/includes/plugin.php'; | |
} | |
$all_plugins = get_plugins(); | |
if ( !empty( $all_plugins[$slug] ) ) { | |
return true; | |
} else { | |
return false; | |
} | |
} | |
function install_plugin( $plugin_zip ) { | |
include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php'; | |
wp_cache_flush(); | |
$upgrader = new Plugin_Upgrader(); | |
$installed = $upgrader->install( $plugin_zip ); | |
return $installed; | |
} | |
function upgrade_plugin( $plugin_slug ) { | |
include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php'; | |
wp_cache_flush(); | |
$upgrader = new Plugin_Upgrader(); | |
$upgraded = $upgrader->upgrade( $plugin_slug ); | |
return $upgraded; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment