<?php
class FMModelUninstall_fmc extends CFMAdminModel {
public function delete_db_tables() {
global $wpdb;
$remove_tables = FALSE;
$contact_form_ids = get_option('contact_form_forms');
if ( !WDFMInstance(self::PLUGIN)->is_free || $contact_form_ids == '' ) {
// Form maker paid or there is no contact form maker forms.
$remove_tables = TRUE;
}
else {
// Form maker free.
$forms_count = $wpdb->get_var('SELECT COUNT(*) FROM ' . $wpdb->prefix . 'formmaker WHERE `id` NOT IN (' . $contact_form_ids . ')');
// Contact form maker.
$contact_forms_count = $wpdb->get_var('SELECT COUNT(*) FROM ' . $wpdb->prefix . 'formmaker WHERE `id` IN (' . $contact_form_ids . ')');
if ( (WDFMInstance(self::PLUGIN)->is_free == 1 && $contact_forms_count == 0)
|| (WDFMInstance(self::PLUGIN)->is_free == 2 && $forms_count == 0) ) {
// Installed only Form maker free or only Contact form maker.
$remove_tables = TRUE;
}
}
if ( !$remove_tables ) {
// Installed both Form maker free and Contact form maker.
$wpdb->query('DELETE FROM ' . $wpdb->prefix . 'formmaker WHERE `id`' . (WDFMInstance(self::PLUGIN)->is_free == 1 ? ' NOT ' : ' ') . 'IN (' . $contact_form_ids . ')');
$wpdb->query('DELETE FROM ' . $wpdb->prefix . 'formmaker_submits WHERE `form_id`' . (WDFMInstance(self::PLUGIN)->is_free == 1 ? ' NOT ' : ' ') . 'IN (' . $contact_form_ids . ')');
$wpdb->query('DELETE FROM ' . $wpdb->prefix . 'formmaker_views WHERE `form_id`' . (WDFMInstance(self::PLUGIN)->is_free == 1 ? ' NOT ' : ' ') . 'IN (' . $contact_form_ids . ')');
}
else {
$email_verification_post_id = $wpdb->get_var('SELECT mail_verification_post_id FROM ' . $wpdb->prefix . 'formmaker WHERE mail_verification_post_id != 0');
delete_option('wd_form_maker_version');
delete_option('formmaker_cureent_version');
delete_option('contact_form_themes');
delete_option('contact_form_forms');
delete_option('form_maker_pro_active');
delete_option('fm_admin_notice');
delete_option('cfm_admin_notice');
delete_option('fm_settings');
delete_option('fmc_settings');
delete_option('fm_subscribe_done');
delete_option('cfm_subscribe_done');
delete_option('fm_subscribe_popup');
delete_option('cfm_subscribe_popup');
delete_option('tenweb_notice_status');
delete_option('wd_bk_notice_status');
wp_delete_post($email_verification_post_id);
// Delete form js and css files.
$wp_upload_dir = wp_upload_dir();
$frontend_js = $wp_upload_dir['basedir'] . '/form-maker-frontend/js/';
if ( is_dir($frontend_js) ) {
$js_files = scandir($frontend_js);
foreach ( $js_files as $js_file ) {
if ( is_file($frontend_js . $js_file) ) {
$filename = pathinfo($frontend_js . $js_file);
if ( $filename['extension'] == 'js' ) {
unlink($frontend_js . $js_file);
}
}
}
}
$frontend_css = $wp_upload_dir['basedir'] . '/form-maker-frontend/css/';
if ( is_dir($frontend_css) ) {
$css_files = scandir($frontend_css);
foreach ( $css_files as $css_file ) {
if ( is_file($frontend_css . $css_file) ) {
$filename = pathinfo($frontend_css . $css_file);
if ( $filename['extension'] == 'css' ) {
unlink($frontend_css . $css_file);
}
}
}
}
$wpdb->query('DROP TABLE IF EXISTS ' . $wpdb->prefix . 'formmaker');
$wpdb->query('DROP TABLE IF EXISTS ' . $wpdb->prefix . 'formmaker_groups');
$wpdb->query('DROP TABLE IF EXISTS ' . $wpdb->prefix . 'formmaker_submits');
$wpdb->query('DROP TABLE IF EXISTS ' . $wpdb->prefix . 'formmaker_views');
$wpdb->query('DROP TABLE IF EXISTS ' . $wpdb->prefix . 'formmaker_themes');
$wpdb->query('DROP TABLE IF EXISTS ' . $wpdb->prefix . 'formmaker_sessions');
$wpdb->query('DROP TABLE IF EXISTS ' . $wpdb->prefix . 'formmaker_blocked');
$wpdb->query('DROP TABLE IF EXISTS ' . $wpdb->prefix . 'formmaker_query');
$wpdb->query('DROP TABLE IF EXISTS ' . $wpdb->prefix . 'formmaker_backup');
$wpdb->query('DROP TABLE IF EXISTS ' . $wpdb->prefix . 'formmaker_mailchimp');
$wpdb->query('DROP TABLE IF EXISTS ' . $wpdb->prefix . 'formmaker_reg');
$wpdb->query('DROP TABLE IF EXISTS ' . $wpdb->prefix . 'formmaker_post_gen_options');
$wpdb->query('DROP TABLE IF EXISTS ' . $wpdb->prefix . 'formmaker_email_conditions');
$wpdb->query('DROP TABLE IF EXISTS ' . $wpdb->prefix . 'formmaker_dbox_int');
$wpdb->query('DROP TABLE IF EXISTS ' . $wpdb->prefix . 'formmaker_pdf_options');
$wpdb->query('DROP TABLE IF EXISTS ' . $wpdb->prefix . 'formmaker_pdf');
$wpdb->query('DROP TABLE IF EXISTS ' . $wpdb->prefix . 'formmaker_pushover');
$wpdb->query('DROP TABLE IF EXISTS ' . $wpdb->prefix . 'formmaker_stripe');
$wpdb->query('DROP TABLE IF EXISTS ' . $wpdb->prefix . 'formmaker_save_options');
$wpdb->query('DROP TABLE IF EXISTS ' . $wpdb->prefix . 'formmaker_saved_entries');
$wpdb->query('DROP TABLE IF EXISTS ' . $wpdb->prefix . 'formmaker_saved_attributes');
$wpdb->query('DROP TABLE IF EXISTS ' . $wpdb->prefix . 'formmaker_calculator');
$wpdb->query('DROP TABLE IF EXISTS ' . $wpdb->prefix . 'formmaker_gdrive_int');
$wpdb->query('DROP TABLE IF EXISTS ' . $wpdb->prefix . 'formmaker_display_options');
}
}
}