public function show_upgrade_notices() { // Don't show notices on the upgrade handler page. if (isset($_GET['page']) && $this->slug == $_GET['page']) { return; } $upgrades = NF_UpgradeHandler()->upgrades; $upgrade_count = 0; foreach ($upgrades as $upgrade) { if (!$upgrade->isComplete()) { $upgrade_count++; } } if (0 < $upgrade_count) { printf('<div class="update-nag"><p>' . __('Ninja Forms needs to process %s upgrade(s). This may take a few minutes to complete. %sStart Upgrade%s', 'ninja-forms') . '</p></div>', $upgrade_count, '<a class="button button-primary" href="' . admin_url('admin.php?page=nf-upgrade-handler') . '">', '</a>'); } }
die; } /* * UTILITY METHODS */ public function getUpgradeByName($name) { foreach ($this->upgrades as $index => $upgrade) { if ($name == $upgrade->name) { return $upgrade; } } } public function getNextUpgrade($current_upgrade) { foreach ($this->upgrades as $index => $upgrade) { if ($current_upgrade->name == $upgrade->name) { if (isset($this->upgrades[$index + 1])) { return $this->upgrades[$index + 1]; } } } return FALSE; } } function NF_UpgradeHandler() { return NF_UpgradeHandler::instance(); } NF_UpgradeHandler();
function ninja_forms_uninstall() { global $wpdb; $settings = Ninja_Forms()->get_plugin_settings(); // Bail if we haven't checked the "delete on uninstall" box. if (isset($settings['delete_on_uninstall']) && 1 == $settings['delete_on_uninstall']) { // Remove our options. delete_option('ninja_forms_settings'); delete_option('nf_version_upgraded_from'); delete_option('nf_upgrade_notice'); delete_option('nf_database_migrations'); delete_option('nf_convert_notifications_forms'); delete_option('nf_convert_notifications_complete'); delete_option('nf_convert_subs_step'); delete_option('nf_email_fav_updated'); delete_option('nf_update_email_settings_complete'); delete_option('nf_converted_subs'); delete_option('nf_convert_subs_num'); delete_option('nf_convert_subs_step'); delete_option('nf_converted_forms'); delete_option('nf_converted_form_reset'); delete_option('nf_convert_forms_complete'); // Remove upgrade last step options require_once NF_PLUGIN_DIR . 'includes/admin/upgrades/class-upgrade.php'; require_once NF_PLUGIN_DIR . 'includes/admin/upgrades/upgrade-functions.php'; require_once NF_PLUGIN_DIR . 'includes/admin/upgrades/upgrades.php'; require_once NF_PLUGIN_DIR . 'includes/admin/upgrades/convert-forms-reset.php'; require_once NF_PLUGIN_DIR . 'includes/admin/upgrades/upgrade-handler-page.php'; require_once NF_PLUGIN_DIR . 'includes/admin/upgrades/class-upgrade-handler.php'; $upgrades = NF_UpgradeHandler()->upgrades; if ($upgrades and is_array($upgrades)) { foreach ($upgrades as $upgrade) { delete_option('nf_upgrade_' . $upgrade->name . '_last_step'); } } // Remove all of our submissions $items = get_posts(array('post_type' => 'nf_sub', 'post_status' => 'any', 'numberposts' => -1, 'fields' => 'ids')); if ($items) { foreach ($items as $item) { wp_delete_post($item, true); } } // Remove all of our custom tables $wpdb->query('DROP TABLE ' . NF_OBJECTS_TABLE_NAME); $wpdb->query('DROP TABLE ' . NF_OBJECT_META_TABLE_NAME); $wpdb->query('DROP TABLE ' . NF_OBJECT_RELATIONSHIPS_TABLE_NAME); $wpdb->query('DROP TABLE ' . NINJA_FORMS_TABLE_NAME); $wpdb->query('DROP TABLE ' . NINJA_FORMS_FIELDS_TABLE_NAME); $wpdb->query('DROP TABLE ' . NINJA_FORMS_FAV_FIELDS_TABLE_NAME); $wpdb->query('DROP TABLE ' . NINJA_FORMS_SUBS_TABLE_NAME); // Remove our daily cron job $timestamp = wp_next_scheduled('ninja_forms_daily_action'); wp_unschedule_event($timestamp, 'ninja_forms_daily_action'); } }
<div class="wrap"> <h2><?php _e('Ninja Forms Upgrade Processing', 'ninja-forms'); ?> </h2> <?php foreach (NF_UpgradeHandler()->upgrades as $upgrade) { ?> <?php if (!$upgrade->isComplete()) { ?> <div id="nf_upgrade_<?php echo $upgrade->name; ?> "> <dl class="menu-item-bar nf_upgrade"> <dt class="menu-item-handle"> <span class="item-title ninja-forms-field-title nf_upgrade__name"><?php echo $upgrade->nice_name; ?> </span> <span class="item-controls"> <span class="item-type"> <span class="item-type-name nf_upgrade__status"> <!-- TODO: Move inline styles to Stylesheet. --> <!-- Status: INCOMPLETE --> <span class="dashicons dashicons-no" style="color: red; display: none;"></span> <!-- Status: PROCESSING --> <span class="spinner" style="display: none;margin-top: -1.5px;margin-right: -2px;"></span>
delete_option('nf_version_upgraded_from'); delete_option('nf_upgrade_notice'); delete_option('nf_database_migrations'); delete_option('nf_convert_notifications_forms'); delete_option('nf_convert_notifications_complete'); delete_option('nf_convert_subs_step'); delete_option('nf_email_fav_updated'); delete_option('nf_update_email_settings_complete'); delete_option('nf_converted_subs'); delete_option('nf_convert_subs_num'); delete_option('nf_convert_subs_step'); delete_option('nf_converted_forms'); delete_option('nf_converted_form_reset'); delete_option('nf_convert_forms_complete'); // Remove upgrade last step options $upgrades = NF_UpgradeHandler()->upgrades; if ($upgrades and is_array($upgrades)) { foreach ($upgrades as $upgrade) { delete_option('nf_upgrade_' . $upgrade->name . '_last_step'); } } // Remove all of our submissions $items = get_posts(array('post_type' => 'nf_sub', 'post_status' => 'any', 'numberposts' => -1, 'fields' => 'ids')); if ($items) { foreach ($items as $item) { wp_delete_post($item, true); } } // Remove all of our custom tables $wpdb->query('DROP TABLE ' . NF_OBJECTS_TABLE_NAME); $wpdb->query('DROP TABLE ' . NF_OBJECT_META_TABLE_NAME);