File: /home/elrashedytravel/www/wp-content/themes/reviewnews/admin-dashboard/rest-api/class-ajaxcall.php
<?php
if (!defined('ABSPATH')) exit;
add_action('wp_ajax_reviewnews_plugin_installer', 'reviewnews_plugin_installer'); // Install plugin
add_action('wp_ajax_reviewnews_plugin_activation', 'reviewnews_plugin_activation'); // Activate plugin
add_action('wp_ajax_reviewnews_plugin_installer_activation', 'reviewnews_plugin_installer_activation'); // Activate plugin
function reviewnews_plugin_installer()
{
if (! current_user_can('install_plugins'))
wp_die(__('Sorry, you are not allowed to install plugins on this site.', 'reviewnews'));
$nonce = $_POST["nonce"];
$plugin = $_POST["plugin"];
// Check our nonce, if they don't match then bounce!
if (! wp_verify_nonce($nonce, 'aft_installer_nonce'))
wp_die(__('Error - unable to verify nonce, please try again.', 'reviewnews'));
// Include required libs for installation
require_once(ABSPATH . 'wp-admin/includes/plugin-install.php');
require_once(ABSPATH . 'wp-admin/includes/class-wp-upgrader.php');
require_once(ABSPATH . 'wp-admin/includes/class-wp-ajax-upgrader-skin.php');
require_once(ABSPATH . 'wp-admin/includes/class-plugin-upgrader.php');
// Get Plugin Info
$api = plugins_api(
'plugin_information',
array(
'slug' => $plugin,
'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,
),
)
);
$skin = new WP_Ajax_Upgrader_Skin();
$upgrader = new Plugin_Upgrader($skin);
$upgrader->install($api->download_link);
if ($api->name) {
$status = 'success';
$msg = $api->name . ' successfully installed.';
} else {
$status = 'failed';
$msg = 'There was an error installing ' . $api->name . '.';
}
$json = array(
'status' => $status,
'msg' => $msg,
);
wp_send_json($json);
}
function reviewnews_plugin_activation()
{
if (! current_user_can('install_plugins'))
wp_die(__('Sorry, you are not allowed to activate plugins on this site.', 'reviewnews'));
$nonce = $_POST["nonce"];
$plugin = $_POST["plugin"];
// Check our nonce, if they don't match then bounce!
if (! wp_verify_nonce($nonce, 'aft_installer_nonce'))
die(__('Error - unable to verify nonce, please try again.', 'reviewnews'));
// Include required libs for activation
require_once(ABSPATH . 'wp-admin/includes/plugin-install.php');
require_once(ABSPATH . 'wp-admin/includes/class-wp-upgrader.php');
require_once(ABSPATH . 'wp-admin/includes/class-plugin-upgrader.php');
// Get Plugin Info
$api = plugins_api(
'plugin_information',
array(
'slug' => $plugin,
'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,
),
)
);
if ($api->name) {
$main_plugin_file = reviewnews_get_plugin_file($plugin);
$status = 'success';
if ($main_plugin_file) {
activate_plugin($main_plugin_file, '', false, true);
$msg = $api->name . ' successfully activated.';
}
} else {
$status = 'failed';
$msg = 'There was an error activating ' . $api->name . '.';
}
if ($plugin == 'templatespare') {
$page = 'reviewnews';
} else {
$page = $plugin;
}
$json = array(
'status' => $status,
'msg' => $msg,
'plugin' => $plugin,
'redirectUrl' => get_admin_url() . 'admin.php?page=' . $page
);
wp_send_json($json);
}
function reviewnews_plugin_installer_activation()
{
if (! current_user_can('install_plugins'))
wp_die(__('Sorry, you are not allowed to install plugins on this site.', 'reviewnews'));
$nonce = $_POST["nonce"];
// Check our nonce, if they don't match then bounce!
if (! wp_verify_nonce($nonce, 'aft_installer_nonce'))
wp_die(__('Error - unable to verify nonce, please try again.', 'reviewnews'));
$install = isset($_POST['install']) ? $_POST['install'] : '';
$activate = isset($_POST['activate']) ? $_POST['activate'] : '';
$page = isset($_POST['page']) ? $_POST['page'] : '';
if (is_array($install)) {
$sanitinzed_plugins = array_map('sanitize_key', $install);
} else {
$sanitinzed_plugins = sanitize_key($install);
}
$is_active = 'false';
if (is_array($activate)) {
$is_active = 'true';
$sanitinzed_activate = array_map('sanitize_key', $activate);
} else {
$is_active = 'true';
$sanitinzed_activate = array(sanitize_key($activate));
}
// Include required libs for installation
require_once(ABSPATH . 'wp-admin/includes/plugin-install.php');
require_once(ABSPATH . 'wp-admin/includes/class-wp-upgrader.php');
require_once(ABSPATH . 'wp-admin/includes/class-wp-ajax-upgrader-skin.php');
require_once(ABSPATH . 'wp-admin/includes/class-plugin-upgrader.php');
$data = [];
// Get Plugin Info
if (!empty($sanitinzed_plugins)) {
foreach ($sanitinzed_plugins as $pl) {
$api = plugins_api(
'plugin_information',
array(
'slug' => $pl,
'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,
),
)
);
$skin = new WP_Ajax_Upgrader_Skin();
$upgrader = new Plugin_Upgrader($skin);
$upgrader->install($api->download_link);
if ($api->name) {
$status = 'success';
$msg = $api->name . ' successfully installed.';
} else {
$status = 'failed';
$msg = 'There was an error installing ' . $api->name . '.';
}
array_push($sanitinzed_activate, $pl);
}
$json = array(
'status' => 'success',
'url' => site_url() . '/wp-admin/admin.php?page=' . $page
);
}
$list_of_plugins = array_merge($sanitinzed_activate, $sanitinzed_activate);
$list_of_plugins = array_filter($sanitinzed_activate, 'strlen');
if (!empty($list_of_plugins)) {
$data = reviewnews_activate_plugin_list($sanitinzed_activate);
}
if ($data == 'success') {
$json = array(
'status' => 'success',
'url' => site_url() . '/wp-admin/admin.php?page=' . $page
);
return wp_send_json($json);
}
}
function reviewnews_activate_plugin_list($sanitinzed_activate)
{
$count = 0;
$total = count($sanitinzed_activate);
foreach ($sanitinzed_activate as $plugin) {
$count++;
if ($plugin == 'elespare-pro') {
activate_plugin('elespare-pro/elespare.php', '', false, true);
}
if ($plugin == 'blockspare-pro') {
activate_plugin('blockspare-pro/blockspare.php', '', false, true);
} else if (!is_plugin_active($plugin . '/' . $plugin . '.php')) {
activate_plugin($plugin . '/' . $plugin . '.php', '', false, true);
}
}
return "success";
}