'', 'title' => '', 'tab_label' => '', 'handler' => false, 'icon_path' => '', ) ) ); } if ( ! isset( $tab_label ) || ! $tab_label ) { $tab_label = $name; } /** * Adds additional actions after settings pages are registered. * * @since Unknown * * @param string|array $handler The callback function being run. */ add_action( 'gform_settings_' . str_replace( ' ', '_', $name ), $handler ); self::$addon_pages[ $name ] = array( 'name' => $name, 'title' => $title, 'tab_label' => $tab_label, 'icon' => $icon_path ); } /** * Determines the content displayed on the Gravity Forms settings page. * * @since Unknown * @access public * * @uses GFSettings::get_subview() * @uses GFSettings::gravityforms_settings_page() * @uses GFSettings::settings_uninstall_page() * @uses GFSettings::page_header() * @uses GFSettings::page_footer() * * @return void */ public static function settings_page() { $subview = self::get_subview(); switch ( $subview ) { case 'settings': self::gravityforms_settings_page(); break; case 'uninstall': self::settings_uninstall_page(); break; default: self::page_header(); /** * Fires in the settings page depending on which page of the settings page you are in (the Subview). * * @since Unknown * * @param mixed $subview The sub-section of the main Form's settings */ do_action( 'gform_settings_' . str_replace( ' ', '_', $subview ) ); self::page_footer(); } } /** * Displays the Gravity Forms uninstall page. * * @since Unknown * @access public * * @used-by GFSettings::settings_page() * @uses GFSettings::page_header() * @uses GFCommon::current_user_can_any() * @uses GFFormsModel::drop_tables() * @uses GFCommon::delete_directory() * @uses GFFormsModel::get_upload_root() * @uses GFCommon::current_user_can_any() * @uses GFSettings::page_footer() */ public static function settings_uninstall_page() { self::page_header( __( 'Uninstall Gravity Forms', 'gravityforms' ), '' ); if ( isset( $_POST['uninstall'] ) ) { check_admin_referer( 'gform_uninstall', 'gform_uninstall_nonce' ); if ( ! GFCommon::current_user_can_uninstall() ) { die( esc_html__( "You don't have adequate permission to uninstall Gravity Forms.", 'gravityforms' ) ); } // Removing background tasks. $processors = array( GFForms::$background_upgrader, gf_feed_processor() ); /** @var GF_Background_Process $processor The background task processor. */ foreach ( $processors as $processor ) { $processor->clear_scheduled_events(); $processor->clear_queue( true ); $processor->unlock_process(); } // Removing cron task wp_clear_scheduled_hook( 'gravityforms_cron' ); // Dropping all tables RGFormsModel::drop_tables(); // Removing options delete_option( 'rg_form_version' ); delete_option( 'rg_gforms_disable_css' ); delete_option( 'rg_gforms_enable_html5' ); delete_option( 'rg_gforms_captcha_public_key' ); delete_option( 'rg_gforms_captcha_private_key' ); delete_option( 'rg_gforms_captcha_type' ); delete_option( 'rg_gforms_message' ); delete_option( 'rg_gforms_currency' ); delete_option( 'rg_gforms_enable_akismet' ); delete_option( 'gf_dismissed_upgrades' ); delete_option( 'gf_db_version' ); delete_option( 'gf_previous_db_version' ); delete_option( 'gf_upgrade_lock' ); delete_option( 'gf_submissions_block' ); delete_option( 'gf_imported_file' ); delete_option( 'gf_imported_theme_file' ); delete_option( 'gf_rest_api_db_version' ); delete_option( 'gform_api_count' ); delete_option( 'gform_email_count' ); delete_option( 'gform_enable_toolbar_menu' ); delete_option( 'gform_enable_logging' ); delete_option( 'gform_pending_installation' ); delete_option( 'gform_version_info' ); delete_option( 'gform_enable_noconflict' ); delete_option( 'gform_enable_background_updates' ); delete_option( 'gform_sticky_admin_messages' ); delete_option( 'gform_upgrade_status' ); delete_option( 'gform_custom_choices' ); delete_option( 'gform_recaptcha_keys_status' ); delete_option( 'gform_upload_page_slug' ); delete_option( 'gravityformsaddon_gravityformswebapi_version' ); delete_option( 'gravityformsaddon_gravityformswebapi_settings' ); // Removes license key GFFormsModel::save_key( '' ); // Removing gravity forms upload folder GFCommon::delete_directory( RGFormsModel::get_upload_root() ); // Delete Logging settings and logging files gf_logging()->delete_settings(); gf_logging()->delete_log_files(); // Deactivating plugin $plugin = 'gravityforms/gravityforms.php'; deactivate_plugins( $plugin ); update_option( 'recently_activated', array( $plugin => time() ) + (array) get_option( 'recently_activated' ) ); ?>
.