public function loading()
 {
     // Remove old email settings.
     nf_change_email_fav();
     // Get our total number of forms.
     $form_count = nf_get_form_count();
     // Get all our forms
     $forms = ninja_forms_get_all_forms(true);
     $x = 1;
     if (is_array($forms)) {
         foreach ($forms as $form) {
             $this->args['forms'][$x] = $form['id'];
             $x++;
         }
     }
     if (empty($this->total_steps) || $this->total_steps <= 1) {
         $this->total_steps = $form_count;
     }
     $args = array('total_steps' => $this->total_steps, 'step' => 1);
     $this->redirect = admin_url('admin.php?page=ninja-forms');
     return $args;
 }
 public function loading()
 {
     global $wpdb;
     /**
      * Add our table structure for version 2.8.
      */
     require_once ABSPATH . 'wp-admin/includes/upgrade.php';
     // Create our object meta table
     $sql = "CREATE TABLE IF NOT EXISTS " . NF_OBJECT_META_TABLE_NAME . " (\n\t\t  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n\t\t  `object_id` bigint(20) NOT NULL,\n\t\t  `meta_key` varchar(255) NOT NULL,\n\t\t  `meta_value` longtext NOT NULL,\n\t\t  PRIMARY KEY (`id`)\n\t\t) DEFAULT CHARSET=utf8;";
     dbDelta($sql);
     // Create our object table
     $sql = "CREATE TABLE IF NOT EXISTS " . NF_OBJECTS_TABLE_NAME . " (\n\t\t  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n\t\t  `type` varchar(255) NOT NULL,\n\t\t  PRIMARY KEY (`id`)\n\t\t) DEFAULT CHARSET=utf8;";
     dbDelta($sql);
     // Create our object relationships table
     $sql = "CREATE TABLE IF NOT EXISTS " . NF_OBJECT_RELATIONSHIPS_TABLE_NAME . " (\n\t\t  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n\t\t  `child_id` bigint(20) NOT NULL,\n\t\t  `parent_id` bigint(20) NOT NULL,\n\t\t  `child_type` varchar(255) NOT NULL,\n\t\t  `parent_type` varchar(255) NOT NULL,\n\t\t  PRIMARY KEY (`id`)\n\t\t) DEFAULT CHARSET=utf8;";
     dbDelta($sql);
     // Remove old email settings.
     nf_change_email_fav();
     nf_remove_old_email_settings();
     // Get our total number of forms.
     $form_count = nf_get_form_count();
     // Get all our forms
     $forms = ninja_forms_get_all_forms(true);
     $x = 1;
     if (is_array($forms)) {
         foreach ($forms as $form) {
             $this->args['forms'][$x] = $form['id'];
             $x++;
         }
     }
     if (empty($this->total_steps) || $this->total_steps <= 1) {
         $this->total_steps = $form_count;
     }
     $args = array('total_steps' => $this->total_steps, 'step' => 1);
     $this->redirect = admin_url('index.php?page=nf-about');
     return $args;
 }
 private function removeOldEmailSettings()
 {
     nf_change_email_fav();
     nf_remove_old_email_settings();
 }
/**
 * Clearing out the old email favourite field and replacing it with the new version.
 *
 * @since 2.8.4
 * @return void
 */
function nf_clear_old_favs() {
	global $wpdb;

	$email_fav_updated = get_option( 'nf_email_fav_updated', false );

	if ( $email_fav_updated )
		return false;

	nf_change_email_fav();
	nf_remove_old_email_settings();
	nf_change_state_dropdown_fav();

	update_option( 'nf_email_fav_updated', true );
}
function ninja_forms_activation($network_wide)
{
    global $wpdb;
    if (!$network_wide) {
        // This is a single-site activation.
        wp_schedule_event(time(), 'daily', 'ninja_forms_daily_action');
        require_once ABSPATH . 'wp-admin/includes/upgrade.php';
        $plugin_settings = nf_get_settings();
        $current_version = isset($plugin_settings['version']) ? $plugin_settings['version'] : '';
        if ($current_version != '') {
            update_option('nf_version_upgraded_from', $current_version);
        }
        $forms = '';
        $opt = $plugin_settings;
        $sql = "CREATE TABLE IF NOT EXISTS " . NINJA_FORMS_FAV_FIELDS_TABLE_NAME . " (\n\t\t`id` int(11) NOT NULL AUTO_INCREMENT,\n\t\t`row_type` int(11) NOT NULL,\n\t\t`type` varchar(255) CHARACTER SET utf8 NOT NULL,\n\t\t`order` int(11) NOT NULL,\n\t\t`data` longtext CHARACTER SET utf8 NOT NULL,\n\t\t`name` varchar(255) CHARACTER SET utf8 NOT NULL,\n\t\tPRIMARY KEY (`id`)\n\t\t) DEFAULT CHARSET=utf8;";
        dbDelta($sql);
        if (!function_exists('nf_change_email_fav')) {
            require_once dirname(__FILE__) . '/admin/upgrades/upgrade-functions.php';
        }
        // Remove old email settings.
        nf_change_email_fav();
        $state_dropdown = $wpdb->get_row($wpdb->prepare("SELECT * FROM " . NINJA_FORMS_FAV_FIELDS_TABLE_NAME . " WHERE name = %s AND row_type = 0", 'State Dropdown'), ARRAY_A);
        if (!isset($state_dropdown['id'])) {
            $sql = 'INSERT INTO `' . NINJA_FORMS_FAV_FIELDS_TABLE_NAME . '` (`id`, `row_type`, `type`, `order`, `data`, `name`) VALUES
			(2, 0, \'_list\', 0, \'a:10:{s:5:\\"label\\";s:14:\\"State Dropdown\\";s:9:\\"label_pos\\";s:4:\\"left\\";s:9:\\"list_type\\";s:8:\\"dropdown\\";s:10:\\"multi_size\\";s:1:\\"5\\";s:15:\\"list_show_value\\";s:1:\\"1\\";s:4:\\"list\\";a:1:{s:7:\\"options\\";a:51:{i:0;a:3:{s:5:\\"label\\";s:7:\\"Alabama\\";s:5:\\"value\\";s:2:\\"AL\\";s:8:\\"selected\\";s:1:\\"0\\";}i:1;a:3:{s:5:\\"label\\";s:6:\\"Alaska\\";s:5:\\"value\\";s:2:\\"AK\\";s:8:\\"selected\\";s:1:\\"0\\";}i:2;a:3:{s:5:\\"label\\";s:7:\\"Arizona\\";s:5:\\"value\\";s:2:\\"AZ\\";s:8:\\"selected\\";s:1:\\"0\\";}i:3;a:3:{s:5:\\"label\\";s:8:\\"Arkansas\\";s:5:\\"value\\";s:2:\\"AR\\";s:8:\\"selected\\";s:1:\\"0\\";}i:4;a:3:{s:5:\\"label\\";s:10:\\"California\\";s:5:\\"value\\";s:2:\\"CA\\";s:8:\\"selected\\";s:1:\\"0\\";}i:5;a:3:{s:5:\\"label\\";s:8:\\"Colorado\\";s:5:\\"value\\";s:2:\\"CO\\";s:8:\\"selected\\";s:1:\\"0\\";}i:6;a:3:{s:5:\\"label\\";s:11:\\"Connecticut\\";s:5:\\"value\\";s:2:\\"CT\\";s:8:\\"selected\\";s:1:\\"0\\";}i:7;a:3:{s:5:\\"label\\";s:8:\\"Delaware\\";s:5:\\"value\\";s:2:\\"DE\\";s:8:\\"selected\\";s:1:\\"0\\";}i:8;a:3:{s:5:\\"label\\";s:20:\\"District of Columbia\\";s:5:\\"value\\";s:2:\\"DC\\";s:8:\\"selected\\";s:1:\\"0\\";}i:9;a:3:{s:5:\\"label\\";s:7:\\"Florida\\";s:5:\\"value\\";s:2:\\"FL\\";s:8:\\"selected\\";s:1:\\"0\\";}i:10;a:3:{s:5:\\"label\\";s:7:\\"Georgia\\";s:5:\\"value\\";s:2:\\"GA\\";s:8:\\"selected\\";s:1:\\"0\\";}i:11;a:3:{s:5:\\"label\\";s:6:\\"Hawaii\\";s:5:\\"value\\";s:2:\\"HI\\";s:8:\\"selected\\";s:1:\\"0\\";}i:12;a:3:{s:5:\\"label\\";s:5:\\"Idaho\\";s:5:\\"value\\";s:2:\\"ID\\";s:8:\\"selected\\";s:1:\\"0\\";}i:13;a:3:{s:5:\\"label\\";s:8:\\"Illinois\\";s:5:\\"value\\";s:2:\\"IL\\";s:8:\\"selected\\";s:1:\\"0\\";}i:14;a:3:{s:5:\\"label\\";s:7:\\"Indiana\\";s:5:\\"value\\";s:2:\\"IN\\";s:8:\\"selected\\";s:1:\\"0\\";}i:15;a:3:{s:5:\\"label\\";s:4:\\"Iowa\\";s:5:\\"value\\";s:2:\\"IA\\";s:8:\\"selected\\";s:1:\\"0\\";}i:16;a:3:{s:5:\\"label\\";s:6:\\"Kansas\\";s:5:\\"value\\";s:2:\\"KS\\";s:8:\\"selected\\";s:1:\\"0\\";}i:17;a:3:{s:5:\\"label\\";s:8:\\"Kentucky\\";s:5:\\"value\\";s:2:\\"KY\\";s:8:\\"selected\\";s:1:\\"0\\";}i:18;a:3:{s:5:\\"label\\";s:9:\\"Louisiana\\";s:5:\\"value\\";s:2:\\"LA\\";s:8:\\"selected\\";s:1:\\"0\\";}i:19;a:3:{s:5:\\"label\\";s:5:\\"Maine\\";s:5:\\"value\\";s:2:\\"ME\\";s:8:\\"selected\\";s:1:\\"0\\";}i:20;a:3:{s:5:\\"label\\";s:8:\\"Maryland\\";s:5:\\"value\\";s:2:\\"MD\\";s:8:\\"selected\\";s:1:\\"0\\";}i:21;a:3:{s:5:\\"label\\";s:13:\\"Massachusetts\\";s:5:\\"value\\";s:2:\\"MA\\";s:8:\\"selected\\";s:1:\\"0\\";}i:22;a:3:{s:5:\\"label\\";s:8:\\"Michigan\\";s:5:\\"value\\";s:2:\\"MI\\";s:8:\\"selected\\";s:1:\\"0\\";}i:23;a:3:{s:5:\\"label\\";s:9:\\"Minnesota\\";s:5:\\"value\\";s:2:\\"MN\\";s:8:\\"selected\\";s:1:\\"0\\";}i:24;a:3:{s:5:\\"label\\";s:11:\\"Mississippi\\";s:5:\\"value\\";s:2:\\"MS\\";s:8:\\"selected\\";s:1:\\"0\\";}i:25;a:3:{s:5:\\"label\\";s:8:\\"Missouri\\";s:5:\\"value\\";s:2:\\"MO\\";s:8:\\"selected\\";s:1:\\"0\\";}i:26;a:3:{s:5:\\"label\\";s:7:\\"Montana\\";s:5:\\"value\\";s:2:\\"MT\\";s:8:\\"selected\\";s:1:\\"0\\";}i:27;a:3:{s:5:\\"label\\";s:8:\\"Nebraska\\";s:5:\\"value\\";s:2:\\"NE\\";s:8:\\"selected\\";s:1:\\"0\\";}i:28;a:3:{s:5:\\"label\\";s:6:\\"Nevada\\";s:5:\\"value\\";s:2:\\"NV\\";s:8:\\"selected\\";s:1:\\"0\\";}i:29;a:3:{s:5:\\"label\\"3s:13:\\"New Hampshire\\";s:5:\\"value\\";s:2:\\"NH\\";s:8:\\"selected\\";s:1:\\"0\\";}i:30;a:3:{s:5:\\"label\\";s:10:\\"New Jersey\\";s:5:\\"value\\";s:2:\\"NJ\\";s:8:\\"selected\\";s:1:\\"0\\";}i:31;a:3:{s:5:\\"label\\";s:10:\\"New Mexico\\";s:5:\\"value\\";s:2:\\"NM\\";s:8:\\"selected\\";s:1:\\"0\\";}i:32;a:3:{s:5:\\"label\\";s:8:\\"New York\\";s:5:\\"value\\";s:2:\\"NY\\";s:8:\\"selected\\";s:1:\\"0\\";}i:33;a:3:{s:5:\\"label\\";s:14:\\"North Carolina\\";s:5:\\"value\\";s:2:\\"NC\\";s:8:\\"selected\\";s:1:\\"0\\";}i:34;a:3:{s:5:\\"label\\";s:12:\\"North Dakota\\";s:5:\\"value\\";s:2:\\"ND\\";s:8:\\"selected\\";s:1:\\"0\\";}i:35;a:3:{s:5:\\"label\\";s:4:\\"Ohio\\";s:5:\\"value\\";s:2:\\"OH\\";s:8:\\"selected\\";s:1:\\"0\\";}i:36;a:3:{s:5:\\"label\\";s:8:\\"Oklahoma\\";s:5:\\"value\\";s:2:\\"OK\\";s:8:\\"selected\\";s:1:\\"0\\";}i:37;a:3:{s:5:\\"label\\";s:6:\\"Oregon\\";s:5:\\"value\\";s:2:\\"OR\\";s:8:\\"selected\\";s:1:\\"0\\";}i:38;a:3:{s:5:\\"label\\";s:12:\\"Pennsylvania\\";s:5:\\"value\\";s:2:\\"PA\\";s:8:\\"selected\\";s:1:\\"0\\";}i:39;a:3:{s:5:\\"label\\";s:12:\\"Rhode Island\\";s:5:\\"value\\";s:2:\\"RI\\";s:8:\\"selected\\";s:1:\\"0\\";}i:40;a:3:{s:5:\\"label\\";s:14:\\"South Carolina\\";s:5:\\"value\\";s:2:\\"SC\\";s:8:\\"selected\\";s:1:\\"0\\";}i:41;a:3:{s:5:\\"label\\";s:12:\\"South Dakota\\";s:5:\\"value\\";s:2:\\"SD\\";s:8:\\"selected\\";s:1:\\"0\\";}i:42;a:3:{s:5:\\"label\\";s:9:\\"Tennessee\\";s:5:\\"value\\";s:2:\\"TN\\";s:8:\\"selected\\";s:1:\\"0\\";}i:43;a:3:{s:5:\\"label\\";s:5:\\"Texas\\";s:5:\\"value\\";s:2:\\"TX\\";s:8:\\"selected\\";s:1:\\"0\\";}i:44;a:3:{s:5:\\"label\\";s:4:\\"Utah\\";s:5:\\"value\\";s:2:\\"UT\\";s:8:\\"selected\\";s:1:\\"0\\";}i:45;a:3:{s:5:\\"label\\";s:7:\\"Vermont\\";s:5:\\"value\\";s:2:\\"VT\\";s:8:\\"selected\\";s:1:\\"0\\";}i:46;a:3:{s:5:\\"label\\";s:8:\\"Virginia\\";s:5:\\"value\\";s:2:\\"VA\\";s:8:\\"selected\\";s:1:\\"0\\";}i:47;a:3:{s:5:\\"label\\";s:10:\\"Washington\\";s:5:\\"value\\";s:2:\\"WA\\";s:8:\\"selected\\";s:1:\\"0\\";}i:48;a:3:{s:5:\\"label\\";s:13:\\"West Virginia\\";s:5:\\"value\\";s:2:\\"WV\\";s:8:\\"selected\\";s:1:\\"0\\";}i:49;a:3:{s:5:\\"label\\";s:9:\\"Wisconsin\\";s:5:\\"value\\";s:2:\\"WI\\";s:8:\\"selected\\";s:1:\\"0\\";}i:50;a:3:{s:5:\\"label\\";s:7:\\"Wyoming\\";s:5:\\"value\\";s:2:\\"WY\\";s:8:\\"selected\\";s:1:\\"0\\";}}}s:3:\\"req\\";s:1:\\"0\\";s:5:\\"class\\";s:0:\\"\\";s:9:\\"show_help\\";s:1:\\"0\\";s:9:\\"help_text\\";s:0:\\"\\";}\', \'State Dropdown\')';
            $wpdb->query($sql);
        }
        $anti_spam = $wpdb->get_row($wpdb->prepare("SELECT * FROM " . NINJA_FORMS_FAV_FIELDS_TABLE_NAME . " WHERE name = %s AND row_type = 0", 'Anti-Spam'), ARRAY_A);
        if (!isset($anti_spam['id'])) {
            $sql = 'INSERT INTO `' . NINJA_FORMS_FAV_FIELDS_TABLE_NAME . '` (`id`, `row_type`, `type`, `order`, `data`, `name`) VALUES
			(3, 0, \'_spam\', 0, \'a:6:{s:9:"label_pos";s:4:"left";s:5:"label";s:18:"Anti-Spam Question";s:6:"answer";s:16:"Anti-Spam Answer";s:5:"class";s:0:"";s:9:"show_help";s:1:"0";s:9:"help_text";s:0:"";}\', \'Anti-Spam\')';
            $wpdb->query($sql);
        }
        $submit = $wpdb->get_row($wpdb->prepare("SELECT * FROM " . NINJA_FORMS_FAV_FIELDS_TABLE_NAME . " WHERE name = %s AND row_type = 0", 'Submit'), ARRAY_A);
        if (!isset($submit['id'])) {
            $sql = 'INSERT INTO `' . NINJA_FORMS_FAV_FIELDS_TABLE_NAME . '` (`id`, `row_type`, `type`, `order`, `data`, `name`) VALUES
			(4, 0, \'_submit\', 0, \'a:4:{s:5:\\"label\\";s:6:\\"Submit\\";s:5:\\"class\\";s:0:\\"\\";s:9:\\"show_help\\";s:1:\\"0\\";s:9:\\"help_text\\";s:0:\\"\\";}\', \'Submit\');';
            $wpdb->query($sql);
        }
        $sql = "CREATE TABLE IF NOT EXISTS " . NINJA_FORMS_FIELDS_TABLE_NAME . " (\n\t\t  `id` int(11) NOT NULL AUTO_INCREMENT,\n\t\t  `form_id` int(11) NOT NULL,\n\t\t  `type` varchar(255) CHARACTER SET utf8 NOT NULL,\n\t\t  `order` int(11) NOT NULL,\n\t\t  `data` longtext CHARACTER SET utf8 NOT NULL,\n\t\t  `fav_id` int(11) DEFAULT NULL,\n\t\t  `def_id` int(11) DEFAULT NULL,\n\t\t  PRIMARY KEY (`id`)\n\t\t) DEFAULT CHARSET=utf8 ;";
        dbDelta($sql);
        /**
         * Add our table structure for version 2.8.
         */
        // Create our object meta table
        $sql = "CREATE TABLE IF NOT EXISTS " . NF_OBJECT_META_TABLE_NAME . " (\n\t\t  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n\t\t  `object_id` bigint(20) NOT NULL,\n\t\t  `meta_key` varchar(255) NOT NULL,\n\t\t  `meta_value` longtext NOT NULL,\n\t\t  PRIMARY KEY (`id`)\n\t\t) DEFAULT CHARSET=utf8;";
        dbDelta($sql);
        // Create our object table
        $sql = "CREATE TABLE IF NOT EXISTS " . NF_OBJECTS_TABLE_NAME . " (\n\t\t  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n\t\t  `type` varchar(255) NOT NULL,\n\t\t  PRIMARY KEY (`id`)\n\t\t) DEFAULT CHARSET=utf8;";
        dbDelta($sql);
        // Create our object relationships table
        $sql = "CREATE TABLE IF NOT EXISTS " . NF_OBJECT_RELATIONSHIPS_TABLE_NAME . " (\n\t\t  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n\t\t  `child_id` bigint(20) NOT NULL,\n\t\t  `parent_id` bigint(20) NOT NULL,\n\t\t  `child_type` varchar(255) NOT NULL,\n\t\t  `parent_type` varchar(255) NOT NULL,\n\t\t  PRIMARY KEY (`id`)\n\t\t) DEFAULT CHARSET=utf8;";
        dbDelta($sql);
        $title = ninja_forms_get_preview_page_title();
        $preview_page = get_page_by_title($title);
        if (!$preview_page) {
            // Create preview page object
            $preview_post = array('post_title' => $title, 'post_content' => 'This is a preview of how this form will appear on your website', 'post_status' => 'draft', 'post_type' => 'page');
            // Insert the page into the database
            $page_id = wp_insert_post($preview_post);
        } else {
            $page_id = $preview_page->ID;
        }
        $opt['preview_id'] = $page_id;
        $opt['version'] = NF_PLUGIN_VERSION;
        $current_settings = get_option('ninja_forms_settings', false);
        if (!$current_settings) {
            update_option('nf_convert_notifications_complete', true);
            update_option('nf_convert_subs_step', 'complete');
            update_option('nf_upgrade_notice', 'closed');
            update_option('nf_update_email_settings_complete', true);
            update_option('nf_email_fav_updated', true);
            update_option('nf_convert_forms_complete', true);
            update_option('nf_database_migrations', true);
        }
        update_option("ninja_forms_settings", $opt);
        update_option('ninja_forms_version', NF_PLUGIN_VERSION);
        // check for an existing form
        $starter_form_exists = ninja_forms_starter_form_exists();
        if (!$starter_form_exists) {
            // if a starter form doesn't exist them create it
            ninja_forms_add_starter_form();
        }
        // Add the transient to redirect
        // set_transient( '_nf_activation_redirect', true, 30 );
    } else {
        // We're network activating.
        header('Location: ' . network_admin_url('plugins.php?deactivate=true&nf_action=network_activation_error'));
        exit;
    }
}