Make WordPress Core

Ticket #50907: 50907.diff

File 50907.diff, 4.0 KB (added by audrasjb, 3 years ago)

First technical implementation

  • src/wp-admin/includes/class-core-upgrader.php

    diff --git a/src/wp-admin/includes/class-core-upgrader.php b/src/wp-admin/includes/class-core-upgrader.php
    index 4184bc8ea9..df0bbf141f 100644
    a b class Core_Upgrader extends WP_Upgrader { 
    279279                $current_is_development_version = (bool) strpos( $wp_version, '-' );
    280280
    281281                // Defaults:
    282                 $upgrade_dev   = true;
    283                 $upgrade_minor = true;
    284                 $upgrade_major = false;
     282                $upgrade_dev   = get_site_option( 'auto_update_core_dev', true );
     283                $upgrade_minor = get_site_option( 'auto_update_core_minor', true );
     284                $upgrade_major = get_site_option( 'auto_update_core_major', false );
    285285
    286286                // WP_AUTO_UPDATE_CORE = true (all), 'minor', false.
    287287                if ( defined( 'WP_AUTO_UPDATE_CORE' ) ) {
  • src/wp-admin/update-core.php

    diff --git a/src/wp-admin/update-core.php b/src/wp-admin/update-core.php
    index 6a871671ee..22685cc764 100644
    a b function core_upgrade_preamble() { 
    300300        dismissed_updates();
    301301}
    302302
     303/**
     304 * Display WordPress auto-updates settings.
     305 *
     306 * @since 5.6.0
     307 */
     308function core_auto_updates_settings() {
     309        if ( isset( $_POST['core-auto-updates-settings'] ) && wp_verify_nonce( $_POST['set_core_auto_updates_settings'], 'core-auto-updates-nonce' ) ) {
     310                $upgrade_minor_value = ( 1 === intval( $_POST['core-auto-updates-minor'] ) ) ? 1 : 0;
     311                update_site_option( 'auto_update_core_minor', $upgrade_minor_value );
     312
     313                $upgrade_major_value = ( 1 === intval( $_POST['core-auto-updates-major'] ) ) ? 1 : 0;
     314                update_site_option( 'auto_update_core_major', $upgrade_major_value );
     315        }
     316
     317        $upgrade_dev   = get_site_option( 'auto_update_core_dev', true );
     318        $upgrade_minor = get_site_option( 'auto_update_core_minor', true );
     319        $upgrade_major = get_site_option( 'auto_update_core_major', false );
     320
     321        if ( defined( 'WP_AUTO_UPDATE_CORE' ) ) {
     322                if ( false === WP_AUTO_UPDATE_CORE ) {
     323                        // Defaults to turned off, unless a filter allows it.
     324                        $upgrade_dev   = false;
     325                        $upgrade_minor = false;
     326                        $upgrade_major = false;
     327                } elseif ( true === WP_AUTO_UPDATE_CORE ) {
     328                        // ALL updates for core.
     329                        $upgrade_dev   = true;
     330                        $upgrade_minor = true;
     331                        $upgrade_major = true;
     332                } elseif ( 'minor' === WP_AUTO_UPDATE_CORE ) {
     333                        // Only minor updates for core.
     334                        $upgrade_dev   = false;
     335                        $upgrade_minor = true;
     336                        $upgrade_major = false;
     337                }
     338        }
     339        $upgrade_dev   = apply_filters( 'allow_dev_auto_core_updates', $upgrade_dev );
     340        $upgrade_minor = apply_filters( 'allow_minor_auto_core_updates', $upgrade_minor );
     341        $upgrade_major = apply_filters( 'allow_major_auto_core_updates', $upgrade_major );
     342        ?>
     343        <form method="post" action="<?php echo esc_url( $_SERVER['REQUEST_URI'] ); ?>" name="core-auto-updates" class="core-auto-updates">
     344                <?php wp_nonce_field( 'core-auto-updates-nonce', 'set_core_auto_updates_settings' ); ?>
     345                <h2><?php _e( 'WordPress auto-updates settings' ); ?></h2>
     346                <p>
     347                        <input type="checkbox" name="core-auto-updates-minor" id="core-auto-updates-minor" value="1" <?php checked( $upgrade_minor, true ); ?> />
     348                        <label for="core-auto-updates-minor">
     349                                <?php _e( 'Keep my site up-to-date with regular security and maintenance updates (minor versions).' ); ?>
     350                        </label>
     351                </p>
     352                <p>
     353                        <input type="checkbox" name="core-auto-updates-major" id="core-auto-updates-major" value="1" <?php checked( $upgrade_major, true ); ?> />
     354                        <label for="core-auto-updates-major">
     355                                <?php _e( 'Keep my site up-to-date with regular feature updates (major versions).' ); ?>
     356                        </label>
     357                </p>
     358                <p>
     359                        <input id="core-auto-updates-settings" class="button" type="submit" value="<?php esc_attr_e( 'Update settings' ); ?>" name="core-auto-updates-settings" />
     360                </p>
     361        </form>
     362        <?php
     363}
     364
    303365/**
    304366 * Display the upgrade plugins form.
    305367 *
    if ( 'upgrade-core' === $action ) { 
    890952
    891953        if ( current_user_can( 'update_core' ) ) {
    892954                core_upgrade_preamble();
     955                core_auto_updates_settings();
    893956        }
    894957        if ( current_user_can( 'update_plugins' ) ) {
    895958                list_plugin_updates();