=');
$ninja_forms_table_name = $wpdb->prefix . "ninja_forms";
$ninja_forms_fields_table_name = $wpdb->prefix . "ninja_forms_fields";
$ninja_forms_subs_table_name = $wpdb->prefix. "ninja_forms_subs";
$current_version = $plugin_settings['version'];
if(version_compare(NINJA_FORMS_VERSION, '1.2.4' , '<')){
ninja_initial_setup();
}
/*
if($plugin_settings['product_key'] != ''){
require_once(WP_PLUGIN_DIR.NINJA_FORMS_DIR."/includes/plugin-update-checker.php");
$ninja_forms_update = new PluginUpdateChecker(
'http://ninjaforms.com/version/current_version.json.php',
__FILE__,
'ninja-forms-lite'
);
$ninja_forms_update->addQueryArgFilter('ninja_add_keys');
function ninja_add_keys($query){
$plugin_settings = get_option("ninja_forms_settings");
$email = $plugin_settings['product_email'];
$key = $plugin_settings['product_key'];
$query['email'] = $email;
$query['key'] = $key;
return $query;
}
}
*/
add_action('admin_menu', 'ninja_add_forms_menu');
function ninja_add_forms_menu(){
$plugins_url = plugins_url();
$page = add_menu_page("Ninja Forms ".NINJA_FORMS_TYPE , "Ninja Forms ".NINJA_FORMS_TYPE, "administrator", "ninja-custom-forms", "ninja_edit_forms", NINJA_FORMS_URL."/images/ninja-head-ico-small.png", 55);
$edit = add_submenu_page("ninja-custom-forms", "Edit Forms", "Edit Forms", "administrator", "ninja-custom-forms", "ninja_edit_forms");
$settings = add_submenu_page("ninja-custom-forms", "Ninja Form Settings", "Plugin Settings", "administrator", "ninja-forms-settings", "ninja_forms_settings");
//$import = add_submenu_page("ninja-custom-forms", "Import/Export", "Import / Export", "administrator", "ninja-forms-impexp", "ninja_forms_impexp");
add_action('admin_print_styles-' . $page, 'ninja_form_admin_css');
add_action('admin_print_styles-' . $page, 'ninja_form_admin_js');
add_action('admin_print_styles-' . $settings, 'ninja_form_admin_js');
add_action('admin_print_styles-' . $settings, 'ninja_form_admin_css');
}
function ninja_forms_settings(){
require_once(NINJA_FORMS_DIR."/includes/plugin_settings.php");
}
function ninja_edit_forms(){
global $wpdb, $version_compare;
$ninja_forms_table_name = $wpdb->prefix . "ninja_forms";
$ninja_forms_fields_table_name = $wpdb->prefix . "ninja_forms_fields";
$ninja_forms_subs_table_name = $wpdb->prefix. "ninja_forms_subs";
require_once(NINJA_FORMS_DIR."/includes/save.php");
require_once(NINJA_FORMS_DIR."/includes/setup_vars.php");
//$plugin_settings = get_option("ninja_forms_settings");
//print_r($plugin_settings);
?>
prefix . "ninja_forms";
$ninja_forms_subs_table_name = $wpdb->prefix . "ninja_forms_subs";
$ninja_forms_fields_table_name = $wpdb->prefix . "ninja_forms_fields";
$plugin_settings = get_option("ninja_forms_settings");
//Set our initial options
$version = NINJA_FORMS_VERSION;
$new_db_version = "1.2";
if($plugin_settings['admin_help']){
$email = $plugin_settings['product_email'];
$key = $plugin_settings['product_key'];
$admin_help = $plugin_settings['admin_help'];
$default_style = $plugin_settings['default_style'];
$help_color = $plugin_settings['help_color'];
$help_size = $plugin_settings['help_size'];
$settings_sidebar_order = $plugin_settings['settings_sidebar_order'];
$fields_sidebar_order = $plugin_settings['fields_sidebar_order'];
$subs_sidebar_order = $plugin_settings['subs_sidebar_order'];
$upload_dir = $plugin_settings['upload_dir'];
$upload_size = $plugin_settings['upload_size'];
$old_db_version = $plugin_settings['db_version'];
}else{
$email = '';
$key = '';
$admin_help = 'checked';
$default_style = 'checked';
$help_color = 'all-black';
$help_size = '150';
$settings_sidebar_order = array('subs-settings', 'append-page-settings', 'append-post-settings');
$subs_sidebar_order = array('export-subs', 'manage-subs');
$upload_dir = dirname(__FILE__);
$upload_dir = str_replace("includes", "", $upload_dir);
$upload_dir .= "/uploads/";
$upload_size = "1";
$old_db_version = $new_db_version;
}
$fields_sidebar_order = array('custom-fields', 'defined-fields', 'layout-elements', 'multi-part', 'post-elements');
//changes to our ninja_forms_settings for version 1.1
$current_version = $plugin_settings['version'];
$upload_dir = dirname(__FILE__);
$upload_dir = str_replace("includes", "", $upload_dir);
$upload_dir .= "/uploads/";
$upload_size = "1";
$options_array = array("product_email" => $email, "product_key" => $key, "subs_sidebar_order" => $subs_sidebar_order, "fields_sidebar_order" => $fields_sidebar_order, "settings_sidebar_order" =>$settings_sidebar_order, "version" => $version, "db_version" => $new_db_version, "admin_help" => $admin_help, "default_style" => $default_style, "help_color" => $help_color, "help_size" => $help_size, "upload_dir" => $upload_dir, "upload_size" => $upload_size);
update_option("ninja_forms_settings", $options_array);
/* As of version 1.2.4, the default upload directory has changed and the tables were renamed from a wpnj_ prefix to a ninja_ prefix.
To fix this, we'll reset the upload directory and
Check for these old names and alter the tables if necessary.
*/
$old_forms_table_name = $wpdb->prefix . "wpnj_forms";
$old_forms_subs_table_name = $wpdb->prefix . "wpnj_forms_subs";
$old_forms_fields_table_name = $wpdb->prefix . "wpnj_forms_fields";
if($wpdb->get_var("SHOW TABLES LIKE '".$old_forms_table_name."'") == $old_forms_table_name) {
$sql = "RENAME TABLE $old_forms_table_name TO $ninja_forms_table_name";
$wpdb->query($sql);
}
if($wpdb->get_var("SHOW TABLES LIKE '".$old_forms_subs_table_name."'") == $old_forms_subs_table_name) {
$sql = "RENAME TABLE $old_forms_subs_table_name TO $ninja_forms_subs_table_name";
$wpdb->query($sql);
}
if($wpdb->get_var("SHOW TABLES LIKE '".$old_forms_fields_table_name."'") == $old_forms_fields_table_name) {
$sql = "RENAME TABLE $old_forms_fields_table_name TO $ninja_forms_fields_table_name";
$wpdb->query($sql);
}
//Check to see if the table already exists. If it does, don't do anything.
if($wpdb->get_var("SHOW TABLES LIKE '".$ninja_forms_table_name."'") != $ninja_forms_table_name) {
$sql = "CREATE TABLE " . $ninja_forms_table_name . " (
id mediumint(9) NOT NULL AUTO_INCREMENT,
title longtext NOT NULL,
show_title text NOT NULL,
`desc` longtext NOT NULL,
show_desc text NOT NULL,
mailto longtext NOT NULL,
subject longtext NOT NULL,
new smallint(1) DEFAULT '1' NOT NULL,
success_msg longtext NOT NULL,
save_subs longtext NOT NULL,
send_email longtext NOT NULL,
ajax longtext NOT NULL,
landing_page longtext NOT NULL,
append_page longtext NOT NULL,
email_from longtext NOT NULL,
email_msg longtext NOT NULL,
email_fields longtext NOT NULL,
multi mediumtext NOT NULL,
multi_options longtext NOT NULL,
post mediumtext NOT NULL,
post_options longtext NOT NULL,
save_status varchar(10) NOT NULL,
save_status_options longtext NOT NULL,
UNIQUE KEY id (id)
);";
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
dbDelta($sql);
$title = "First Test Form";
$mailto = "me@me.net";
$subject = "";
$new = 0;
$success_msg = '';
$save_subs = 'checked';
$send_email = 'checked';
$ajax = 'checked';
$landing_page = '';
$append_page = '';
$email_from = '';
$email_msg = '';
$email_fields = '';
$multi = 'unchecked';
$multi_options = '';
$post = 'unchecked';
$post_options = '';
$save_status = 'unchecked';
$save_status_options = '';
$first_form = $wpdb->insert( $ninja_forms_table_name, array( 'title' => $title, 'mailto' => $mailto, 'subject' => $subject, 'new' => $new, 'success_msg' => $success_msg, 'save_subs' => $save_subs, 'send_email' => $send_email, 'ajax' => $ajax, 'landing_page' => $landing_page, 'append_page' => $append_page, 'email_from' => $email_from, 'email_msg' => $email_msg, 'email_fields' => $email_fields, 'multi' => $multi, 'multi_options' => $multi_options, 'post' => $post, 'post_options' => $post_options, 'save_status' => $save_status, 'save_status_options' => $save_status_options) );
}
if(version_compare( $old_db_version, '1.2' , '<')){
if($wpdb->get_var("SHOW COLUMNS FROM $ninja_forms_table_name LIKE 'save_status'") != 'save_status') {
$sql = "ALTER TABLE $ninja_forms_table_name ADD save_status VARCHAR(10) NOT NULL";
$wpdb->query($sql);
}
if($wpdb->get_var("SHOW COLUMNS FROM $ninja_forms_table_name LIKE 'save_status_options'") != 'save_status_options') {
$sql = "ALTER TABLE $ninja_forms_table_name ADD save_status_options LONGTEXT NOT NULL";
$wpdb->query($sql);
}
}
if($wpdb->get_var("SHOW TABLES LIKE '".$ninja_forms_fields_table_name."'") != $ninja_forms_fields_table_name) {
$sql = "CREATE TABLE " . $ninja_forms_fields_table_name . " (
id mediumint(9) NOT NULL AUTO_INCREMENT,
label longtext NOT NULL,
type longtext NOT NULL,
form_id bigint(11) DEFAULT '0' NOT NULL,
value longtext NOT NULL,
field_order bigint(11) DEFAULT '0' NOT NULL,
req smallint(1) DEFAULT '0' NOT NULL,
extra longtext NOT NULL,
class longtext NOT NULL,
help longtext NOT NULL,
UNIQUE KEY id (id)
);";
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
dbDelta($sql);
$value = "none";
$req = 0;
$label = "New Label";
$field_order = 9999;
$class = "Comma,Separated,List";
$help ="Sample Help Text";
$extra = array('extra' =>
array('show_help' => 'unchecked', 'mask' => 'none'));
$extra = serialize($extra);
$first_row = $wpdb->insert( $ninja_forms_fields_table_name, array( 'label' => $label, 'type' => $type, 'form_id' => $form_id, 'value' => $value, 'field_order' => $field_order, 'req' => $req , 'extra' => $extra, 'class' => $class, 'help' => $help) );
}
if($wpdb->get_var("SHOW TABLES LIKE '".$ninja_forms_subs_table_name."'") != $ninja_forms_subs_table_name) {
$sql = "CREATE TABLE " . $ninja_forms_subs_table_name . " (
id mediumint(9) NOT NULL AUTO_INCREMENT,
form_id mediumint(9) NOT NULL,
user_id mediumint(9) NOT NULL,
form_values longtext NOT NULL,
date_updated TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
sub_status VARCHAR(15) NOT NULL,
email longtext NOT NULL,
password longtext NOT NULL,
UNIQUE KEY id (id)
);";
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
dbDelta($sql);
}
if(version_compare( $old_db_version, '1.2' , '<')){
if($wpdb->get_var("SHOW COLUMNS FROM $ninja_forms_subs_table_name LIKE 'date'") == 'date') {
$sql = "ALTER TABLE $ninja_forms_subs_table_name CHANGE `date` `date_updated` TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP";
$wpdb->query($sql);
}
if($wpdb->get_var("SHOW COLUMNS FROM $ninja_forms_subs_table_name LIKE 'sub_status'") != 'sub_status') {
$sql = "ALTER TABLE $ninja_forms_subs_table_name ADD sub_status VARCHAR( 255 ) NOT NULL";
$wpdb->query($sql);
}
if($wpdb->get_var("SHOW COLUMNS FROM $ninja_forms_subs_table_name LIKE 'email'") != 'email') {
$sql = "ALTER TABLE $ninja_forms_subs_table_name ADD email longtext NOT NULL";
$wpdb->query($sql);
}
if($wpdb->get_var("SHOW COLUMNS FROM $ninja_forms_subs_table_name LIKE 'password'") != 'password') {
$sql = "ALTER TABLE $ninja_forms_subs_table_name ADD password longtext NOT NULL";
$wpdb->query($sql);
}
}
wp_schedule_event(time(), 'daily', 'ninja_delete_incomplete');
}
register_activation_hook( __FILE__, 'ninja_initial_setup' );