setup_constants(); self::$instance->includes(); // Start our submissions custom post type class self::$instance->subs_cpt = new NF_Subs_CPT(); // Add our registration class object self::$instance->register = new NF_Register(); // The forms variable won't be interacted with directly. // Instead, the forms() methods will act as wrappers for it. self::$instance->forms = new NF_Forms(); // Our session manager wrapper class self::$instance->session = new NF_Session(); register_activation_hook( __FILE__, 'ninja_forms_activation' ); add_action( 'plugins_loaded', array( self::$instance, 'load_lang' ) ); add_action( 'init', array( self::$instance, 'init' ), 5 ); add_action( 'admin_init', array( self::$instance, 'admin_init' ), 5 ); add_action( 'update_option_ninja_forms_settings', array( self::$instance, 'refresh_plugin_settings' ), 10 ); // add_action( 'admin_head', array( self::$instance, 'admin_head' ) ); add_action( 'admin_notices', array( self::$instance, 'admin_notice' ) ); } return self::$instance; } /** * Run all of our plugin stuff on init. * This allows filters and actions to be used by third-party classes. * * @since 2.7 * @return void */ public function init() { // The settings variable will hold our plugin settings. self::$instance->plugin_settings = self::$instance->get_plugin_settings(); // The subs variable won't be interacted with directly. // Instead, the subs() methods will act as wrappers for it. self::$instance->subs = new NF_Subs(); // Get our notifications up and running. self::$instance->notifications = new NF_Notifications(); // Get our step processor up and running. // We only need this in the admin. if ( is_admin() ) { self::$instance->step_processing = new NF_Step_Processing(); self::$instance->download_all_subs = new NF_Download_All_Subs(); } // Fire our Ninja Forms init action. // This will allow other plugins to register items to the instance. do_action( 'nf_init', self::$instance ); } /** * Run all of our plugin stuff on admin init. * * @since 2.7.4 * @return void */ public function admin_init() { // Check and update our version number. self::$instance->update_version_number(); // Add our "Add Form" button and modal to the tinyMCE editor self::$instance->add_form_button = new NF_Admin_AddFormModal(); // Get our admin notices up and running. self::$instance->notices = new NF_Notices(); // Register our admin scripts self::$instance->register_admin_scripts(); // Fire our Ninja Forms init action. do_action( 'nf_admin_init', self::$instance ); } /** * Run some admin stuff on admin_notices hook. * * @since 2.9 * @return void */ public function admin_notice() { // Notices filter and run the notices function. $admin_notices = apply_filters( 'nf_admin_notices', array() ); self::$instance->notices->admin_notice( $admin_notices ); } /** * Throw error on object clone * * The whole idea of the singleton design pattern is that there is a single * object therefore, we don't want the object to be cloned. * * @since 2.7 * @access protected * @return void */ public function __clone() { // Cloning instances of the class is forbidden _doing_it_wrong( __FUNCTION__, __( 'Cheatin’ huh?', 'ninja-forms' ), '2.8' ); } /** * Disable unserializing of the class * * @since 2.7 * @access protected * @return void */ public function __wakeup() { // Unserializing instances of the class is forbidden _doing_it_wrong( __FUNCTION__, __( 'Cheatin’ huh?', 'ninja-forms' ), '2.8' ); } /** * Function that acts as a wrapper for our individual notification objects. * It checks to see if an object exists for this notification id. * If it does, it returns that object. Otherwise, it creates a new one and returns it. * * @access public * @param int $n_id * @since 2.8 * @return object self::$instance->$n_var */ public function notification( $n_id = '' ) { // Bail if we don't get a notification id. if ( '' == $n_id ) return false; $n_var = 'notification_' . $n_id; // Check to see if an object for this notification already exists. // Create one if it doesn't exist. if ( ! isset ( self::$instance->$n_var ) ) self::$instance->$n_var = new NF_Notification( $n_id ); return self::$instance->$n_var; } /** * Function that acts as a wrapper for our individual sub objects. * It checks to see if an object exists for this sub id. * If it does, it returns that object. Otherwise, it creates a new one and returns it. * * @access public * @param int $sub_id * @since 2.7 * @return object self::$instance->$sub_var */ public function sub( $sub_id = '' ) { // Bail if we don't get a sub id. if ( $sub_id == '' ) return false; $sub_var = 'sub_' . $sub_id; // Check to see if an object for this sub already exists. // Create one if it doesn't exist. if ( ! isset( self::$instance->$sub_var ) ) self::$instance->$sub_var = new NF_Sub( $sub_id ); return self::$instance->$sub_var; } /** * Function that acts as a wrapper for our subs_var - NF_Subs() class. * It doesn't set a sub_id and can be used to interact with methods that affect mulitple submissions * * @access public * @since 2.7 * @return object self::$instance->subs_var */ public function subs() { return self::$instance->subs; } /** * Function that acts as a wrapper for our form_var - NF_Form() class. * It sets the form_id and then returns the instance, which is now using the * proper form id * * @access public * @param int $form_id * @since 2.9.11 * @return object self::$instance->form_var */ public function form( $form_id = '' ) { // Bail if we don't get a form id. $form_var = 'form_' . $form_id; // Check to see if an object for this form already exists in memory. If it does, return it. if ( isset( self::$instance->$form_var ) ) return self::$instance->$form_var; // Check to see if we have a transient object stored for this form. if ( is_object ( ( $form_obj = get_transient( 'nf_form_' . $form_id ) ) ) ) { self::$instance->$form_var = $form_obj; } else { // Create a new form object for this form. self::$instance->$form_var = new NF_Form( $form_id ); // Save it into a transient. set_transient( 'nf_form_' . $form_id, self::$instance->$form_var, DAY_IN_SECONDS ); } return self::$instance->$form_var; } /** * Function that acts as a wrapper for our forms_var - NF_Form() class. * * @access public * @since 2.9 * @return object self::$instance->forms_var */ public function forms( $form_id = '' ) { return self::$instance->forms; } /** * Setup plugin constants * * @access private * @since 2.7 * @return void */ private function setup_constants() { global $wpdb; // Plugin version if ( ! defined( 'NF_PLUGIN_VERSION' ) ) define( 'NF_PLUGIN_VERSION', '3.1.4' ); // Plugin Folder Path if ( ! defined( 'NF_PLUGIN_DIR' ) ) define( 'NF_PLUGIN_DIR', plugin_dir_path( __FILE__ ) ); // Plugin Folder URL if ( ! defined( 'NF_PLUGIN_URL' ) ) define( 'NF_PLUGIN_URL', plugin_dir_url( __FILE__ ) ); // Plugin Root File if ( ! defined( 'NF_PLUGIN_FILE' ) ) define( 'NF_PLUGIN_FILE', __FILE__ ); // Objects table name if ( ! defined( 'NF_OBJECTS_TABLE_NAME') ) define( 'NF_OBJECTS_TABLE_NAME', $wpdb->prefix . 'nf_objects' ); // Meta table name if ( ! defined( 'NF_OBJECT_META_TABLE_NAME' ) ) define( 'NF_OBJECT_META_TABLE_NAME', $wpdb->prefix . 'nf_objectmeta' ); // Relationships table name if ( ! defined( 'NF_OBJECT_RELATIONSHIPS_TABLE_NAME' ) ) define( 'NF_OBJECT_RELATIONSHIPS_TABLE_NAME', $wpdb->prefix . 'nf_relationships' ); /* Legacy Definitions */ // Ninja Forms debug mode if ( ! defined( 'NINJA_FORMS_JS_DEBUG' ) ) define( 'NINJA_FORMS_JS_DEBUG', false ); // Ninja Forms plugin directory if ( ! defined( 'NINJA_FORMS_DIR' ) ) define( 'NINJA_FORMS_DIR', NF_PLUGIN_DIR ); // Ninja Forms plugin url if ( ! defined( 'NINJA_FORMS_URL' ) ) define( 'NINJA_FORMS_URL', NF_PLUGIN_URL ); // Ninja Forms Version if ( ! defined( 'NINJA_FORMS_VERSION' ) ) define( 'NINJA_FORMS_VERSION', NF_PLUGIN_VERSION ); // Ninja Forms table name if ( ! defined( 'NINJA_FORMS_TABLE_NAME' ) ) define( 'NINJA_FORMS_TABLE_NAME', $wpdb->prefix . 'ninja_forms' ); // Fields table name if ( ! defined( 'NINJA_FORMS_FIELDS_TABLE_NAME' ) ) define( 'NINJA_FORMS_FIELDS_TABLE_NAME', $wpdb->prefix . 'ninja_forms_fields' ); // Fav fields table name if ( ! defined( 'NINJA_FORMS_FAV_FIELDS_TABLE_NAME' ) ) define( 'NINJA_FORMS_FAV_FIELDS_TABLE_NAME', $wpdb->prefix . 'ninja_forms_fav_fields' ); // Subs table name if ( ! defined( 'NINJA_FORMS_SUBS_TABLE_NAME' ) ) define( 'NINJA_FORMS_SUBS_TABLE_NAME', $wpdb->prefix . 'ninja_forms_subs' ); } /** * Include our Class files * * @access private * @since 2.7 * @return void */ private function includes() { // Include our session manager require_once( NF_PLUGIN_DIR . 'classes/session.php' ); // Include our sub object. require_once( NF_PLUGIN_DIR . 'classes/sub.php' ); // Include our subs object. require_once( NF_PLUGIN_DIR . 'classes/subs.php' ); // Include our subs CPT. require_once( NF_PLUGIN_DIR . 'classes/subs-cpt.php' ); // Include our form object. require_once( NF_PLUGIN_DIR . 'classes/form.php' ); // Include our form sobject. require_once( NF_PLUGIN_DIR . 'classes/forms.php' ); // Include our field, notification, and sidebar registration class. require_once( NF_PLUGIN_DIR . 'classes/register.php' ); // Include our 'nf_action' watcher. require_once( NF_PLUGIN_DIR . 'includes/actions.php' ); // Include our single notification object require_once( NF_PLUGIN_DIR . 'classes/notification.php' ); // Include our notifications object require_once( NF_PLUGIN_DIR . 'classes/notifications.php' ); // Include our notification table object require_once( NF_PLUGIN_DIR . 'classes/notifications-table.php' ); // Include our base notification type require_once( NF_PLUGIN_DIR . 'classes/notification-base-type.php' ); // Include add form button and modal require_once( NF_PLUGIN_DIR . 'classes/add-form-modal.php' ); if ( is_admin () ) { // Include our step processing stuff if we're in the admin. require_once( NF_PLUGIN_DIR . 'includes/admin/step-processing.php' ); require_once( NF_PLUGIN_DIR . 'classes/step-processing.php' ); // Include our download all submissions php files require_once( NF_PLUGIN_DIR . 'classes/download-all-subs.php' ); $upgraded_from = get_option( 'nf_version_upgraded_from', FALSE ); if( $upgraded_from && version_compare( $upgraded_from, '2.9', '<=') ) { // Include Upgrade Base Class require_once( NF_PLUGIN_DIR . 'includes/admin/upgrades/class-upgrade.php'); // Include Upgrades 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' ); // Include Upgrade Handler require_once( NF_PLUGIN_DIR . 'includes/admin/upgrades/upgrade-handler-page.php'); require_once( NF_PLUGIN_DIR . 'includes/admin/upgrades/class-upgrade-handler.php'); } } // Include our upgrade files. require_once( NF_PLUGIN_DIR . 'includes/admin/welcome.php' ); // Include deprecated functions and filters. require_once( NF_PLUGIN_DIR . 'includes/deprecated.php' ); /* Legacy includes */ /* Require Core Files */ require_once( NINJA_FORMS_DIR . "/includes/ninja-settings.php" ); require_once( NINJA_FORMS_DIR . "/includes/database.php" ); require_once( NINJA_FORMS_DIR . "/includes/functions.php" ); require_once( NINJA_FORMS_DIR . "/includes/activation.php" ); require_once( NINJA_FORMS_DIR . "/includes/register.php" ); require_once( NINJA_FORMS_DIR . "/includes/shortcode.php" ); require_once( NINJA_FORMS_DIR . "/includes/widget.php" ); require_once( NINJA_FORMS_DIR . "/includes/field-type-groups.php" ); require_once( NINJA_FORMS_DIR . "/includes/eos.class.php" ); require_once( NINJA_FORMS_DIR . "/includes/from-setting-check.php" ); require_once( NINJA_FORMS_DIR . "/includes/reply-to-check.php" ); require_once( NINJA_FORMS_DIR . "/includes/import-export.php" ); require_once( NINJA_FORMS_DIR . "/includes/display/scripts.php" ); require_once( NINJA_FORMS_DIR . "/includes/display/upgrade-functions.php" ); // Include Processing Functions if a form has been submitted. require_once( NINJA_FORMS_DIR . "/includes/display/processing/class-ninja-forms-processing.php" ); require_once( NINJA_FORMS_DIR . "/includes/display/processing/class-display-loading.php" ); require_once( NINJA_FORMS_DIR . "/includes/display/processing/pre-process.php" ); require_once( NINJA_FORMS_DIR . "/includes/display/processing/process.php" ); require_once( NINJA_FORMS_DIR . "/includes/display/processing/post-process.php" ); require_once( NINJA_FORMS_DIR . "/includes/display/processing/save-sub.php" ); require_once( NINJA_FORMS_DIR . "/includes/display/processing/filter-msgs.php" ); require_once( NINJA_FORMS_DIR . "/includes/display/processing/fields-pre-process.php" ); require_once( NINJA_FORMS_DIR . "/includes/display/processing/fields-process.php" ); require_once( NINJA_FORMS_DIR . "/includes/display/processing/fields-post-process.php" ); require_once( NINJA_FORMS_DIR . "/includes/display/processing/req-fields-pre-process.php" ); require_once( NINJA_FORMS_DIR . "/includes/display/processing/honeypot.php" ); //Display Form Functions require_once( NINJA_FORMS_DIR . "/includes/display/form/display-form.php" ); require_once( NINJA_FORMS_DIR . "/includes/display/form/not-logged-in.php" ); require_once( NINJA_FORMS_DIR . "/includes/display/fields/display-fields.php" ); require_once( NINJA_FORMS_DIR . "/includes/display/form/response-message.php" ); require_once( NINJA_FORMS_DIR . "/includes/display/fields/label.php" ); require_once( NINJA_FORMS_DIR . "/includes/display/fields/help.php" ); require_once( NINJA_FORMS_DIR . "/includes/display/fields/desc.php" ); require_once( NINJA_FORMS_DIR . "/includes/display/form/form-title.php" ); require_once( NINJA_FORMS_DIR . "/includes/display/fields/field-error-message.php" ); require_once( NINJA_FORMS_DIR . "/includes/display/form/form-wrap.php" ); require_once( NINJA_FORMS_DIR . "/includes/display/form/form-cont.php" ); require_once( NINJA_FORMS_DIR . "/includes/display/form/fields-wrap.php" ); require_once( NINJA_FORMS_DIR . "/includes/display/form/required-label.php" ); require_once( NINJA_FORMS_DIR . "/includes/display/form/open-form-tag.php" ); require_once( NINJA_FORMS_DIR . "/includes/display/form/close-form-tag.php" ); require_once( NINJA_FORMS_DIR . "/includes/display/form/hidden-fields.php" ); require_once( NINJA_FORMS_DIR . "/includes/display/form/form-visibility.php" ); require_once( NINJA_FORMS_DIR . "/includes/display/form/sub-limit.php" ); require_once( NINJA_FORMS_DIR . "/includes/display/form/nonce.php" ); require_once( NINJA_FORMS_DIR . "/includes/display/form/honeypot.php" ); require_once( NINJA_FORMS_DIR . "/includes/display/fields/restore-progress.php" ); require_once( NINJA_FORMS_DIR . "/includes/display/fields/inside-label-hidden.php" ); require_once( NINJA_FORMS_DIR . "/includes/display/fields/field-type.php" ); require_once( NINJA_FORMS_DIR . "/includes/display/fields/default-value-filter.php" ); require_once( NINJA_FORMS_DIR . "/includes/display/fields/calc-field-class.php" ); require_once( NINJA_FORMS_DIR . "/includes/display/fields/clear-complete.php" ); //Require EDD autoupdate file if( !class_exists( 'EDD_SL_Plugin_Updater' ) ) { // load our custom updater if it doesn't already exist require_once(NINJA_FORMS_DIR."/includes/EDD_SL_Plugin_Updater.php"); } require_once( NINJA_FORMS_DIR . "/includes/class-extension-updater.php" ); require_once( NINJA_FORMS_DIR . "/includes/admin/scripts.php" ); require_once( NINJA_FORMS_DIR . "/includes/admin/sidebar.php" ); require_once( NINJA_FORMS_DIR . "/includes/admin/tabs.php" ); require_once( NINJA_FORMS_DIR . "/includes/admin/post-metabox.php" ); require_once( NINJA_FORMS_DIR . "/includes/admin/ajax.php" ); require_once( NINJA_FORMS_DIR . "/includes/admin/admin.php" ); require_once( NINJA_FORMS_DIR . "/includes/admin/sidebar-fields.php" ); require_once( NINJA_FORMS_DIR . "/includes/admin/display-screen-options.php" ); require_once( NINJA_FORMS_DIR . "/includes/admin/register-screen-options.php" ); require_once( NINJA_FORMS_DIR . "/includes/admin/register-screen-help.php" ); require_once( NINJA_FORMS_DIR . "/includes/admin/output-tab-metabox.php" ); require_once( NINJA_FORMS_DIR . "/includes/admin/form-preview.php" ); require_once( NINJA_FORMS_DIR . "/classes/notices-class.php" ); require_once( NINJA_FORMS_DIR . "/includes/admin/notices.php" ); //Edit Field Functions require_once( NINJA_FORMS_DIR . "/includes/admin/edit-field/edit-field.php" ); require_once( NINJA_FORMS_DIR . "/includes/admin/edit-field/label.php" ); require_once( NINJA_FORMS_DIR . "/includes/admin/edit-field/placeholder.php" ); require_once( NINJA_FORMS_DIR . "/includes/admin/edit-field/hr.php" ); require_once( NINJA_FORMS_DIR . "/includes/admin/edit-field/req.php" ); require_once( NINJA_FORMS_DIR . "/includes/admin/edit-field/custom-class.php" ); require_once( NINJA_FORMS_DIR . "/includes/admin/edit-field/help.php" ); require_once( NINJA_FORMS_DIR . "/includes/admin/edit-field/desc.php" ); require_once( NINJA_FORMS_DIR . "/includes/admin/edit-field/li.php" ); require_once( NINJA_FORMS_DIR . "/includes/admin/edit-field/remove-button.php" ); require_once( NINJA_FORMS_DIR . "/includes/admin/edit-field/save-button.php" ); require_once( NINJA_FORMS_DIR . "/includes/admin/edit-field/calc.php" ); require_once( NINJA_FORMS_DIR . "/includes/admin/edit-field/user-info-fields.php" ); require_once( NINJA_FORMS_DIR . "/includes/admin/edit-field/post-meta-values.php" ); require_once( NINJA_FORMS_DIR . "/includes/admin/edit-field/input-limit.php" ); require_once( NINJA_FORMS_DIR . "/includes/admin/edit-field/sub-settings.php" ); require_once( NINJA_FORMS_DIR . "/includes/admin/edit-field/autocomplete-off.php" ); /* * * * ninja-forms - Main Form Editing Page /* Tabs */ /* Form List */ require_once( NINJA_FORMS_DIR . "/includes/admin/pages/ninja-forms/tabs/form-list/form-list.php" ); /* Form Settings */ require_once( NINJA_FORMS_DIR . "/includes/admin/pages/ninja-forms/tabs/form-settings/form-settings.php" ); require_once( NINJA_FORMS_DIR . "/includes/admin/pages/ninja-forms/tabs/form-settings/help.php" ); /* Field Settings */ require_once( NINJA_FORMS_DIR . "/includes/admin/pages/ninja-forms/tabs/field-settings/field-settings.php" ); require_once( NINJA_FORMS_DIR . "/includes/admin/pages/ninja-forms/tabs/field-settings/empty-rte.php" ); require_once( NINJA_FORMS_DIR . "/includes/admin/pages/ninja-forms/tabs/field-settings/edit-field-ul.php" ); require_once( NINJA_FORMS_DIR . "/includes/admin/pages/ninja-forms/tabs/field-settings/help.php" ); require_once( NINJA_FORMS_DIR . "/includes/admin/pages/ninja-forms/tabs/field-settings/sidebars/def-fields.php" ); require_once( NINJA_FORMS_DIR . "/includes/admin/pages/ninja-forms/tabs/field-settings/sidebars/fav-fields.php" ); require_once( NINJA_FORMS_DIR . "/includes/admin/pages/ninja-forms/tabs/field-settings/sidebars/template-fields.php" ); require_once( NINJA_FORMS_DIR . "/includes/admin/pages/ninja-forms/tabs/field-settings/sidebars/layout-fields.php" ); require_once( NINJA_FORMS_DIR . "/includes/admin/pages/ninja-forms/tabs/field-settings/sidebars/user-info.php" ); require_once( NINJA_FORMS_DIR . "/includes/admin/pages/ninja-forms/tabs/field-settings/sidebars/payment-fields.php" ); /* Form Preview */ require_once( NINJA_FORMS_DIR . "/includes/admin/pages/ninja-forms/tabs/form-preview/form-preview.php" ); /* * * * ninja-forms-settings - Settings Page /* Tabs */ /* General Settings */ require_once( NINJA_FORMS_DIR . "/includes/admin/pages/ninja-forms-settings/tabs/general-settings/general-settings.php" ); /* Label Settings */ require_once( NINJA_FORMS_DIR . "/includes/admin/pages/ninja-forms-settings/tabs/label-settings/label-settings.php" ); /* License Settings */ require_once( NINJA_FORMS_DIR . "/includes/admin/pages/ninja-forms-settings/tabs/license-settings/license-settings.php" ); /* * * * ninja-forms-impexp - Import / Export Page /* Tabs */ /* Import / Export Forms */ require_once( NINJA_FORMS_DIR . "/includes/admin/pages/ninja-forms-impexp/tabs/impexp-forms/impexp-forms.php" ); /* Import / Export Fields */ require_once( NINJA_FORMS_DIR . "/includes/admin/pages/ninja-forms-impexp/tabs/impexp-fields/impexp-fields.php" ); /* Import / Export Submissions */ require_once( NINJA_FORMS_DIR . "/includes/admin/pages/ninja-forms-impexp/tabs/impexp-subs/impexp-subs.php" ); /* Backup / Restore */ require_once( NINJA_FORMS_DIR . "/includes/admin/pages/ninja-forms-impexp/tabs/impexp-backup/impexp-backup.php" ); /* * * * ninja-forms-subs - Submissions Review Page /* Tabs */ /* * * ninja-forms-addons - Addons Manager Page /* Tabs */ /* Manage Addons */ require_once( NINJA_FORMS_DIR . "/includes/admin/pages/ninja-forms-addons/tabs/addons/addons.php" ); /* System Status */ require_once( NINJA_FORMS_DIR . "/includes/classes/class-nf-system-status.php" ); /* Require Pre-Registered Fields */ require_once( NINJA_FORMS_DIR . "/includes/fields/textbox.php" ); require_once( NINJA_FORMS_DIR . "/includes/fields/checkbox.php" ); require_once( NINJA_FORMS_DIR . "/includes/fields/list.php" ); require_once( NINJA_FORMS_DIR . "/includes/fields/hidden.php" ); require_once( NINJA_FORMS_DIR . "/includes/fields/organizer.php" ); require_once( NINJA_FORMS_DIR . "/includes/fields/submit.php" ); require_once( NINJA_FORMS_DIR . "/includes/fields/spam.php" ); require_once( NINJA_FORMS_DIR . "/includes/fields/timed-submit.php" ); require_once( NINJA_FORMS_DIR . "/includes/fields/hr.php" ); require_once( NINJA_FORMS_DIR . "/includes/fields/desc.php" ); require_once( NINJA_FORMS_DIR . "/includes/fields/textarea.php" ); require_once( NINJA_FORMS_DIR . "/includes/fields/password.php" ); require_once( NINJA_FORMS_DIR . "/includes/fields/rating.php" ); require_once( NINJA_FORMS_DIR . "/includes/fields/calc.php" ); require_once( NINJA_FORMS_DIR . "/includes/fields/country.php" ); require_once( NINJA_FORMS_DIR . "/includes/fields/tax.php" ); require_once( NINJA_FORMS_DIR . "/includes/fields/credit-card.php" ); require_once( NINJA_FORMS_DIR . "/includes/fields/number.php" ); require_once( NINJA_FORMS_DIR . "/includes/fields/recaptcha.php" ); require_once( NINJA_FORMS_DIR . "/includes/admin/save.php" ); } /** * Load our language files * * @access public * @since 2.7 * @return void */ public function load_lang() { /** Set our unique textdomain string */ $textdomain = 'ninja-forms'; /** The 'plugin_locale' filter is also used by default in load_plugin_textdomain() */ $locale = apply_filters( 'plugin_locale', get_locale(), $textdomain ); /** Set filter for WordPress languages directory */ $wp_lang_dir = apply_filters( 'ninja_forms_wp_lang_dir', WP_LANG_DIR . '/ninja-forms/' . $textdomain . '-' . $locale . '.mo' ); /** Translations: First, look in WordPress' "languages" folder = custom & update-secure! */ load_textdomain( $textdomain, $wp_lang_dir ); /** Translations: Secondly, look in plugin's "lang" folder = default */ $plugin_dir = trailingslashit( basename( dirname( dirname( __FILE__ ) ) ) ) . basename( dirname( __FILE__ ) ); $lang_dir = apply_filters( 'ninja_forms_lang_dir', $plugin_dir . '/lang/' ); load_plugin_textdomain( $textdomain, FALSE, $lang_dir ); } /** * Update our version number if necessary * * @access public * @since 2.7 * @return void */ public function update_version_number(){ $plugin_settings = nf_get_settings(); if ( !isset ( $plugin_settings['version'] ) OR ( NF_PLUGIN_VERSION != $plugin_settings['version'] ) ) { $plugin_settings['version'] = NF_PLUGIN_VERSION; update_option( 'ninja_forms_settings', $plugin_settings ); } } /** * Set Ninja_Forms()->session variable used for storing items in transient variables * * @access public * @since 2.7 * @return string $t_id; */ public function set_transient_id(){ $transient_id = $this->session->get( 'nf_transient_id' ); if ( ! $transient_id && ! is_admin() ) { $transient_id = ninja_forms_random_string(); // Make sure that our transient ID isn't currently in use. while ( get_transient( $transient_id ) !== false ) { $_id = ninja_forms_random_string(); } $this->session->set( 'nf_transient_id', $transient_id ); } return $transient_id; } /** * Get our plugin settings. * * @access public * @since 2.9 * @return array $settings */ public function get_plugin_settings() { $settings = apply_filters( "ninja_forms_settings", get_option( "ninja_forms_settings" ) ); $settings['date_format'] = isset ( $settings['date_format'] ) ? $settings['date_format'] : 'd/m/Y'; $settings['currency_symbol'] = isset ( $settings['currency_symbol'] ) ? $settings['currency_symbol'] : '$'; $settings['recaptcha_lang'] = isset ( $settings['recaptcha_lang'] ) ? $settings['recaptcha_lang'] : 'en'; $settings['req_div_label'] = isset ( $settings['req_div_label'] ) ? $settings['req_div_label'] : sprintf( __( 'Fields marked with an %s*%s are required', 'ninja-forms' ), '','' ); $settings['req_field_symbol'] = isset ( $settings['req_field_symbol'] ) ? $settings['req_field_symbol'] : '*'; $settings['req_error_label'] = isset ( $settings['req_error_label'] ) ? $settings['req_error_label'] : __( 'Please ensure all required fields are completed.', 'ninja-forms' ); $settings['req_field_error'] = isset ( $settings['req_field_error'] ) ? $settings['req_field_error'] : __( 'This is a required field', 'ninja-forms' ); $settings['spam_error'] = isset ( $settings['spam_error'] ) ? $settings['spam_error'] : __( 'Please answer the anti-spam question correctly.', 'ninja-forms' ); $settings['honeypot_error'] = isset ( $settings['honeypot_error'] ) ? $settings['honeypot_error'] : __( 'Please leave the spam field blank.', 'ninja-forms' ); $settings['timed_submit_error'] = isset ( $settings['timed_submit_error'] ) ? $settings['timed_submit_error'] : __( 'Please wait to submit the form.', 'ninja-forms' ); $settings['javascript_error'] = isset ( $settings['javascript_error'] ) ? $settings['javascript_error'] : __( 'You cannot submit the form without Javascript enabled.', 'ninja-forms' ); $settings['invalid_email'] = isset ( $settings['invalid_email'] ) ? $settings['invalid_email'] : __( 'Please enter a valid email address.', 'ninja-forms' ); $settings['process_label'] = isset ( $settings['process_label'] ) ? $settings['process_label'] : __( 'Processing', 'ninja-forms' ); $settings['password_mismatch'] = isset ( $settings['password_mismatch'] ) ? $settings['password_mismatch'] : __( 'The passwords provided do not match.', 'ninja-forms' ); $settings['date_format'] = apply_filters( 'ninja_forms_labels/date_format' , $settings['date_format'] ); $settings['currency_symbol'] = apply_filters( 'ninja_forms_labels/currency_symbol' , $settings['currency_symbol'] ); $settings['req_div_label'] = apply_filters( 'ninja_forms_labels/req_div_label' , $settings['req_div_label'] ); $settings['req_field_symbol'] = apply_filters( 'ninja_forms_labels/req_field_symbol' , $settings['req_field_symbol'] ); $settings['req_error_label'] = apply_filters( 'ninja_forms_labels/req_error_label' , $settings['req_error_label'] ); $settings['req_field_error'] = apply_filters( 'ninja_forms_labels/req_field_error' , $settings['req_field_error'] ); $settings['spam_error'] = apply_filters( 'ninja_forms_labels/spam_error' , $settings['spam_error'] ); $settings['honeypot_error'] = apply_filters( 'ninja_forms_labels/honeypot_error' , $settings['honeypot_error'] ); $settings['timed_submit_error'] = apply_filters( 'ninja_forms_labels/timed_submit_error' , $settings['timed_submit_error'] ); $settings['javascript_error'] = apply_filters( 'ninja_forms_labels/javascript_error' , $settings['javascript_error'] ); $settings['invalid_email'] = apply_filters( 'ninja_forms_labels/invalid_email' , $settings['invalid_email'] ); $settings['process_label'] = apply_filters( 'ninja_forms_labels/process_label' , $settings['process_label'] ); $settings['password_mismatch'] = apply_filters( 'ninja_forms_labels/password_mismatch' , $settings['password_mismatch'] ); return $settings; } /** * Refresh our plugin settings if we update the ninja_forms_settings option * * @access public * @since 2.9 * @return void */ public function refresh_plugin_settings() { self::$instance->plugin_settings = self::$instance->get_plugin_settings(); } /** * Register our admin scripts so that they can be enqueued later. * @since 2.9.25 * @return void */ public function register_admin_scripts() { if ( defined( 'NINJA_FORMS_JS_DEBUG' ) && NINJA_FORMS_JS_DEBUG ) { $suffix = ''; $src = 'dev'; } else { $suffix = '.min'; $src = 'min'; } wp_register_script( 'nf-admin-modal', NF_PLUGIN_URL . 'assets/js/' . $src . '/admin-modal' . $suffix . '.js', array( 'jquery', 'jquery-ui-core' ) ); } } // End Class /** * The main function responsible for returning The Highlander Ninja_Forms * Instance to functions everywhere. * * Use this function like you would a global variable, except without needing * to declare the global. * * Example: * * @since 2.7 * @return object The Highlander Ninja_Forms Instance */ function Ninja_Forms() { return Ninja_Forms::instance(); } Ninja_Forms(); function nf_aff_link( $link ){ $u_id = apply_filters( 'ninja_forms_affiliate_id', false ); $u_id = get_option( 'nf_aff', $u_id ); if ( $u_id ) { $link = 'http://www.shareasale.com/r.cfm?u=' . $u_id . '&b=812237&m=63061&afftrack=&urllink=' . urlencode( $link ); } return $link; } /* |-------------------------------------------------------------------------- | Ninja Forms THREE Upgrade |-------------------------------------------------------------------------- */ add_action( 'wp_ajax_nfThreeUpgrade_GetSerializedForm', 'nfThreeUpgrade_GetSerializedForm' ); function nfThreeUpgrade_GetSerializedForm(){ $id = absint( $_POST[ 'formID' ] ); $form_row = ninja_forms_serialize_form( $id ); echo json_encode( array( 'id' => $id, 'serialized' => $form_row ) ); wp_die(); } add_action( 'wp_ajax_nfThreeUpgrade_GetSerializedFields', 'nfThreeUpgrade_GetSerializedFields' ); function nfThreeUpgrade_GetSerializedFields(){ $fields = ninja_forms_get_all_favs(); echo json_encode( array( 'serialized' => maybe_serialize( $fields ) ) ) ; wp_die(); } add_action( 'init', 'ninja_forms_three_submenu', 9 ); // Register before general settings. function ninja_forms_three_submenu(){ include plugin_dir_path( __FILE__ ) . 'upgrade/class-submenu.php'; } add_action( 'admin_notices', 'ninja_forms_three_admin_notice' ); function ninja_forms_three_admin_notice(){ $settings = Ninja_Forms()->get_plugin_settings(); if( isset( $settings[ 'disable_admin_notices' ] ) && $settings[ 'disable_admin_notices' ] ) return; $currentScreen = get_current_screen(); if( ! in_array( $currentScreen->id, array( 'toplevel_page_ninja-forms' ) ) ) return; wp_enqueue_style( 'nf-admin-notices', NINJA_FORMS_URL .'assets/css/admin-notices.css?nf_ver=' . NF_PLUGIN_VERSION ); if( ! isset( $_GET[ 'nf-rollback' ] ) ){ if( ninja_forms_three_calc_check() && ninja_forms_three_addons_version_check() && ninja_forms_three_addons_check() ){ ?>
THREE is coming!
A major update is coming to Ninja Forms. Learn more about new features, backwards compatibility, and more Frequently Asked Questions.