Make WordPress Core

Ticket #45438: 45438.patch

File 45438.patch, 1.2 KB (added by ishitaka, 6 years ago)
  • src/wp-admin/options.php

     
    222222                if ( is_multisite() && ! current_user_can( 'manage_network_options' ) ) {
    223223                        wp_die( __( 'Sorry, you are not allowed to modify unregistered settings for this site.' ) );
    224224                }
    225                 $options = explode( ',', wp_unslash( $_POST['page_options'] ) );
     225                $options = isset( $_POST['page_options'] ) ? explode( ',', wp_unslash( $_POST['page_options'] ) ) : null;
    226226        } else {
    227227                $options = $whitelist_options[ $option_page ];
    228228        }
     
    255255                }
    256256        }
    257257
     258        $save_count = 0;
     259
    258260        if ( $options ) {
    259261                $user_language_old = get_user_locale();
    260262
     
    279281                                        $value = trim( $value );
    280282                                }
    281283                                $value = wp_unslash( $value );
     284
     285                                $save_count++;
    282286                        }
    283287                        update_option( $option, $value );
    284288                }
     
    295299                }
    296300        }
    297301
     302        if ( ! $options || count( $options ) !== $save_count ) {
     303                add_settings_error( 'general', 'settings_updated', __( 'Settings save failed.' ), 'error' );
     304        }
     305
    298306        /**
    299307         * Handle settings errors and return to options page
    300308         */