[Back] <?php
if ( !function_exists('tmpcoder_is_plugin_installed') ){
function tmpcoder_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;
}
}
}
if ( !function_exists('tmpcoder_plugin_basefile_path') ){
function tmpcoder_plugin_basefile_path( $slug ) {
if ( ! function_exists( 'get_plugins' ) ) {
require_once ABSPATH . 'wp-admin/includes/plugin.php';
}
$all_plugins = get_plugins();
$plugin_basefile_path = '';
foreach( $all_plugins as $plg_key => $plg_val ){
$plug_folderArr = explode('/', $plg_key);
$plugin_folder_slug = $plug_folderArr[0];
if ( $plugin_folder_slug == $slug ){
//if ( $plg_val['TextDomain'] == $slug ){
$plugin_basefile_path = $plg_key;
break;
}
}
return $plugin_basefile_path;
}
}
/**
** Install a plugin.
*/
if (!function_exists('tmpcoder_install_plugin')) {
function tmpcoder_install_plugin( $plugin_slug ) {
if ( ! current_user_can( 'install_plugins' ) ) {
return;
}
if ( ! function_exists( 'plugins_api' ) ) {
require_once ABSPATH . 'wp-admin/includes/plugin-install.php';
}
if ( ! class_exists( 'WP_Upgrader' ) ) {
require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
}
if ( false === filter_var( $plugin_slug, FILTER_VALIDATE_URL ) ) {
$api = plugins_api(
'plugin_information',
array(
'slug' => $plugin_slug,
'fields' => array(
'short_description' => false,
'sections' => false,
'requires' => false,
'rating' => false,
'ratings' => false,
'downloaded' => false,
'last_updated' => false,
'added' => false,
'tags' => false,
'compatibility' => false,
'homepage' => false,
'donate_link' => false,
),
)
);
$download_link = $api->download_link;
} else {
$download_link = $plugin_slug;
}
// Use AJAX upgrader skin instead of plugin installer skin.
// ref: function wp_ajax_install_plugin().
$upgrader = new Plugin_Upgrader( new WP_Ajax_Upgrader_Skin() );
$install = $upgrader->install( $download_link );
if ( false === $install ) {
return false;
} else {
return true;
}
}
}
/**
** Update a plugin.
*/
if (!function_exists('tmpcoder_update_plugin')) {
function tmpcoder_update_plugin( $plugin_path ) {
if ( ! current_user_can( 'install_plugins' ) ) {
return;
}
if ( ! function_exists( 'plugins_api' ) ) {
require_once ABSPATH . 'wp-admin/includes/plugin-install.php';
}
if ( ! class_exists( 'WP_Upgrader' ) ) {
require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
}
// Use AJAX upgrader skin instead of plugin installer skin.
// ref: function wp_ajax_install_plugin().
$upgrader = new Plugin_Upgrader( new WP_Ajax_Upgrader_Skin() );
$upgrade = $upgrader->upgrade( $plugin_path );
if ( false === $upgrade ) {
return false;
} else {
return true;
}
}
}