Ejemplo n.º 1
0
 /**
  * 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'));
     }
 }