/home/arranoyd/mice/wp-content/plugins/contact-form-maker/admin/controllers/Uninstall_fm.php
<?php
class FMControllerUninstall_fmc extends CFMAdminController {
private $model;
private $view;
private $addons = array(
'WD_FM_MAILCHIMP' => 'mailchimp',
'WD_FM_REG' => 'reg',
'WD_FM_POST_GEN' => 'post_gen_options',
'WD_FM_EMAIL_COND' => 'email_conditions',
'WD_FM_DBOX_INT' => 'dbox_int',
'WD_FM_GDRIVE_INT' => 'formmaker_gdrive_int',
'WD_FM_PDF' => array( 'pdf_options', 'pdf' ),
'WD_FM_PUSHOVER' => 'pushover',
'WD_FM_SAVE_PROG' => array( 'save_options', 'saved_entries', 'saved_attributes' ),
'WD_FM_STRIPE' => 'stripe',
'WD_FM_CALCULATOR' => 'calculator',
);
public function __construct() {
require_once WDFMInstance(self::PLUGIN)->plugin_dir . "/admin/models/Uninstall_fm.php";
$this->model = new FMModelUninstall_fmc();
require_once WDFMInstance(self::PLUGIN)->plugin_dir . "/admin/views/Uninstall_fm.php";
$this->view = new FMViewUninstall_fmc();
if ( WDFMInstance(self::PLUGIN)->is_free ) {
global $fm_options;
global $cfm_options;
if ( !class_exists("DoradoWebConfig") ) {
include_once(WDFMInstance(self::PLUGIN)->plugin_dir . "/wd/config.php");
}
$config = new DoradoWebConfig();
$config->set_options(WDFMInstance(self::PLUGIN)->is_free == 1 ? $fm_options : $cfm_options);
$deactivate_reasons = new DoradoWebDeactivate($config);
$deactivate_reasons->submit_and_deactivate();
}
}
public function execute() {
$task = ((isset($_POST['task'])) ? esc_html(stripslashes($_POST['task'])) : '');
if ( method_exists($this, $task) ) {
check_admin_referer(WDFMInstance(self::PLUGIN)->nonce, WDFMInstance(self::PLUGIN)->nonce);
$this->$task();
}
else {
$this->display();
}
}
public function display() {
$params = array();
$params['addons'] = $this->addons;
$params['page_title'] = sprintf(__('Uninstall %s', WDFMInstance(self::PLUGIN)->prefix), WDFMInstance(self::PLUGIN)->nicename);
$params['tables'] = $this->get_tables();
global $wpdb;
foreach ( $params['addons'] as $addon => $addon_name ) {
if ( is_array($addon_name) ) {
// If there are more than one db tables in an extension.
foreach ( $addon_name as $ad_name ) {
array_push($params['tables'], $wpdb->prefix . 'formmaker_' . $ad_name);
}
}
else {
array_push($params['tables'], $wpdb->prefix . 'formmaker_' . $addon_name);
}
}
$this->view->display($params);
}
/**
* Return DB tables names.
*
* @return array
*/
private function get_tables() {
global $wpdb;
$tables = array(
$wpdb->prefix . 'formmaker',
$wpdb->prefix . 'formmaker_backup',
$wpdb->prefix . 'formmaker_blocked',
$wpdb->prefix . 'formmaker_groups',
$wpdb->prefix . 'formmaker_submits',
$wpdb->prefix . 'formmaker_views',
$wpdb->prefix . 'formmaker_themes',
$wpdb->prefix . 'formmaker_sessions',
$wpdb->prefix . 'formmaker_query',
$wpdb->prefix . 'formmaker_display_options',
);
return $tables;
}
public function uninstall() {
$params['tables'] = $this->get_tables();
$this->model->delete_db_tables();
// Deactivate all extensions and form maker.
WDW_FM_Library(self::PLUGIN)->deactivate_all_addons(WDFMInstance(self::PLUGIN)->main_file);
wp_redirect(admin_url('plugins.php'));
exit();
}
}