Make WordPress Core

Ticket #18088: 18088.4.diff

File 18088.4.diff, 2.3 KB (added by iamfriendly, 8 years ago)

Refreshed patch for 4.7.0

  • src/wp-admin/includes/template.php

    diff --git src/wp-admin/includes/template.php src/wp-admin/includes/template.php
    index 4eac951..48c4802 100644
    function add_settings_error( $setting, $code, $message, $type = 'error' ) { 
    13941394 * action hook).
    13951395 *
    13961396 * @since 3.0.0
     1397 * @since 4.7.0 The function now supports getting network settings errors from a transient.
    13971398 *
    13981399 * @global array $wp_settings_errors Storage array of errors registered during this pageload
    13991400 *
    function get_settings_errors( $setting = '', $sanitize = false ) { 
    14121413        if ( $sanitize )
    14131414                sanitize_option( $setting, get_option( $setting ) );
    14141415
    1415         // If settings were passed back from options.php then use them.
     1416        // If settings were passed back from options.php or network/settings.php then use them.
    14161417        if ( isset( $_GET['settings-updated'] ) && $_GET['settings-updated'] && get_transient( 'settings_errors' ) ) {
    14171418                $wp_settings_errors = array_merge( (array) $wp_settings_errors, get_transient( 'settings_errors' ) );
    14181419                delete_transient( 'settings_errors' );
     1420        } elseif ( is_network_admin() && isset( $_GET['updated'] ) && $_GET['updated'] && get_site_transient( 'settings_errors' ) ) {
     1421                $wp_settings_errors = array_merge( (array) $wp_settings_errors, get_site_transient( 'settings_errors' ) );
     1422                delete_site_transient( 'settings_errors' );
    14191423        }
    14201424
    14211425        // Check global in case errors have been added on this pageload.
  • src/wp-admin/network/settings.php

    diff --git src/wp-admin/network/settings.php src/wp-admin/network/settings.php
    index d1af88b..8be01ce 100644
    if ( $_POST ) { 
    8787         */
    8888        do_action( 'update_wpmu_options' );
    8989
     90        // If no settings errors were registered, add a general 'updated' message.
     91        if ( ! count( get_settings_errors() ) ) {
     92                add_settings_error( 'general', 'settings_updated', __( 'Settings saved.' ), 'updated' );
     93        }
     94
     95        set_site_transient( 'settings_errors', get_settings_errors(), 30 );
     96
    9097        wp_redirect( add_query_arg( 'updated', 'true', network_admin_url( 'settings.php' ) ) );
    9198        exit();
    9299}
    if ( $_POST ) { 
    94101include( ABSPATH . 'wp-admin/admin-header.php' );
    95102
    96103if ( isset( $_GET['updated'] ) ) {
    97         ?><div id="message" class="updated notice is-dismissible"><p><?php _e( 'Settings saved.' ) ?></p></div><?php
     104        settings_errors();
    98105}
    99106?>
    100107