/** * Initializes Gravity Forms * * @access public * @static */ public static function init() { if (!wp_next_scheduled('gravityforms_cron')) { wp_schedule_event(time(), 'daily', 'gravityforms_cron'); } add_action('gravityforms_cron', array('GFForms', 'cron')); GF_Download::maybe_process(); //load text domains GFCommon::load_gf_text_domain(); add_filter('gform_logging_supported', array('RGForms', 'set_logging_supported')); add_action('admin_head', array('GFCommon', 'maybe_output_gf_vars')); add_action('admin_head', array('GFForms', 'load_admin_bar_styles')); add_action('wp_head', array('GFForms', 'load_admin_bar_styles')); self::register_scripts(); //Maybe set up Gravity Forms: only on admin requests for single site installation and always for multisite if (IS_ADMIN && false === (defined('DOING_AJAX') && true === DOING_AJAX) || is_multisite()) { self::setup(); } //Plugin update actions add_filter('transient_update_plugins', array('GFForms', 'check_update')); add_filter('site_transient_update_plugins', array('GFForms', 'check_update')); add_filter('auto_update_plugin', array('GFForms', 'maybe_auto_update'), 10, 2); if (IS_ADMIN) { global $current_user; // Members plugin integration. Adding Gravity Forms roles to the checkbox list if (self::has_members_plugin()) { add_filter('members_get_capabilities', array('RGForms', 'members_get_capabilities')); } if (is_multisite()) { add_filter('wpmu_drop_tables', array('GFFormsModel', 'mu_drop_tables')); } add_action('admin_enqueue_scripts', array('GFForms', 'enqueue_admin_scripts')); add_action('print_media_templates', array('GFForms', 'action_print_media_templates')); if (defined('WP_DEBUG') && WP_DEBUG) { add_action('admin_footer', array('GFForms', 'deprecate_add_on_methods')); } //Loading Gravity Forms if user has access to any functionality if (GFCommon::current_user_can_any(GFCommon::all_caps())) { require_once GFCommon::get_base_path() . '/export.php'; GFExport::maybe_export(); //imports theme forms if configured to be automatic imported self::maybe_import_theme_forms(); //creates the "Forms" left menu add_action('admin_menu', array('RGForms', 'create_menu')); if (GF_SUPPORTED_WP_VERSION) { add_action('admin_footer', array('RGForms', 'check_upload_folder')); add_action('wp_dashboard_setup', array('RGForms', 'dashboard_setup')); // Support modifying the admin page title for settings add_filter('admin_title', array(__CLASS__, 'modify_admin_title'), 10, 2); require_once GFCommon::get_base_path() . '/includes/locking/locking.php'; if (self::is_gravity_page()) { require_once GFCommon::get_base_path() . '/tooltips.php'; } else { if (RG_CURRENT_PAGE == 'media-upload.php') { require_once GFCommon::get_base_path() . '/entry_list.php'; } else { if (in_array(RG_CURRENT_PAGE, array('admin.php', 'admin-ajax.php'))) { add_action('wp_ajax_rg_save_form', array('RGForms', 'save_form')); add_action('wp_ajax_rg_change_input_type', array('RGForms', 'change_input_type')); add_action('wp_ajax_rg_refresh_field_preview', array('RGForms', 'refresh_field_preview')); add_action('wp_ajax_rg_add_field', array('RGForms', 'add_field')); add_action('wp_ajax_rg_duplicate_field', array('RGForms', 'duplicate_field')); add_action('wp_ajax_rg_delete_field', array('RGForms', 'delete_field')); add_action('wp_ajax_rg_delete_file', array('RGForms', 'delete_file')); add_action('wp_ajax_rg_select_export_form', array('RGForms', 'select_export_form')); add_action('wp_ajax_rg_start_export', array('RGForms', 'start_export')); add_action('wp_ajax_gf_upgrade_license', array('RGForms', 'upgrade_license')); add_action('wp_ajax_gf_delete_custom_choice', array('RGForms', 'delete_custom_choice')); add_action('wp_ajax_gf_save_custom_choice', array('RGForms', 'save_custom_choice')); add_action('wp_ajax_gf_get_post_categories', array('RGForms', 'get_post_category_values')); add_action('wp_ajax_gf_get_address_rule_values_select', array('GFForms', 'get_address_rule_values_select')); add_action('wp_ajax_gf_get_notification_post_categories', array('RGForms', 'get_notification_post_category_values')); //add_action( 'wp_ajax_gf_save_confirmation', array( 'RGForms', 'save_confirmation' ) ); add_action('wp_ajax_gf_delete_confirmation', array('RGForms', 'delete_confirmation')); add_action('wp_ajax_gf_save_new_form', array('RGForms', 'save_new_form')); add_action('wp_ajax_gf_save_title', array('RGForms', 'save_form_title')); //entry list ajax operations add_action('wp_ajax_rg_update_lead_property', array('RGForms', 'update_lead_property')); add_action('wp_ajax_delete-gf_entry', array('RGForms', 'update_lead_status')); //form list ajax operations add_action('wp_ajax_rg_update_form_active', array('RGForms', 'update_form_active')); //notification list ajax operations add_action('wp_ajax_rg_update_notification_active', array('RGForms', 'update_notification_active')); //confirmation list ajax operations add_action('wp_ajax_rg_update_confirmation_active', array('RGForms', 'update_confirmation_active')); //dynamic captcha image add_action('wp_ajax_rg_captcha_image', array('RGForms', 'captcha_image')); //dashboard message "dismiss upgrade" link add_action('wp_ajax_rg_dismiss_upgrade', array('RGForms', 'dashboard_dismiss_upgrade')); // entry detail: resend notifications add_action('wp_ajax_gf_resend_notifications', array('RGForms', 'resend_notifications')); // Shortcode UI add_action('wp_ajax_gf_do_shortcode', array('GFForms', 'handle_ajax_do_shortcode')); // Export add_filter('wp_ajax_gf_process_export', array('GFForms', 'ajax_process_export')); add_filter('wp_ajax_gf_download_export', array('GFForms', 'ajax_download_export')); // Dismiss message add_action('wp_ajax_gf_dismiss_message', array('GFForms', 'ajax_dismiss_message')); } } } add_filter('plugins_api', array('RGForms', 'get_addon_info'), 100, 3); add_action('after_plugin_row_gravityforms/gravityforms.php', array('RGForms', 'plugin_row')); add_action('install_plugins_pre_plugin-information', array('RGForms', 'display_changelog')); add_filter('plugin_action_links', array('GFForms', 'plugin_settings_link'), 10, 2); } } add_action('admin_init', array('RGForms', 'ajax_parse_request'), 10); $gf_page = self::get_page(); if ($gf_page == 'entry_list' && !isset($_GET['filter'])) { require_once GFCommon::get_base_path() . '/entry_list.php'; $default_filter = GFEntryList::get_default_filter(); if ($default_filter !== 'all') { $url = add_query_arg(array('filter' => $default_filter)); $url = esc_url_raw($url); wp_safe_redirect($url); } } if ($gf_page == 'entry_list') { add_filter('set-screen-option', array('GFForms', 'set_screen_options'), 10, 3); add_filter('screen_settings', array('GFForms', 'show_screen_options'), 10, 2); } if ($gf_page == 'form_list') { add_filter('set-screen-option', array('GFForms', 'set_screen_options'), 10, 3); } } else { add_action('wp_enqueue_scripts', array('RGForms', 'enqueue_scripts'), 11); add_action('wp', array('RGForms', 'ajax_parse_request'), 10); } // Add admin bar items add_action('wp_before_admin_bar_render', array('GFForms', 'admin_bar')); add_shortcode('gravityform', array('RGForms', 'parse_shortcode')); add_shortcode('gravityforms', array('RGForms', 'parse_shortcode')); // ManageWP premium update filters add_filter('mwp_premium_update_notification', array('RGForms', 'premium_update_push')); add_filter('mwp_premium_perform_update', array('RGForms', 'premium_update')); // Push Gravity Forms to the top of the list of plugins to make sure it's loaded before any add-ons add_action('activated_plugin', array('GFForms', 'load_first')); // Add the "Add Form" button to the editor. The customizer doesn't run in the admin context. if (GFForms::page_supports_add_form_button()) { // Adding "embed form" button to the editor add_action('media_buttons', array('GFForms', 'add_form_button'), 20); // Adding the modal add_action('admin_print_footer_scripts', array('GFForms', 'add_mce_popup')); } }