From bef632d0cc5e7803671ef5511c5a8d31812cda2a Mon Sep 17 00:00:00 2001 From: Felix Arntz Date: Thu, 5 Oct 2023 16:15:27 +0000 Subject: [PATCH] Options, Meta APIs: Fix minor compatibility issue with `update_option()` change. When calling `update_option()` with value `false` on a non-existent option, prior to [56681] the function would have returned `false` and not stored the value in the database, since the given value was the same as the default. The aforementioned changeset broke that promise with good intention, however this particular change was a backward compatibility break and therefore is resolved here. Props mukesh27, costdev. Fixes #22192. Built from https://develop.svn.wordpress.org/trunk@56788 git-svn-id: http://core.svn.wordpress.org/trunk@56300 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-includes/option.php | 8 +++++++- wp-includes/version.php | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/wp-includes/option.php b/wp-includes/option.php index e6e276cc1f..58c4113ffc 100644 --- a/wp-includes/option.php +++ b/wp-includes/option.php @@ -805,7 +805,13 @@ function update_option( $option, $value, $autoload = null ) { * * See https://core.trac.wordpress.org/ticket/38903 and https://core.trac.wordpress.org/ticket/22192. */ - if ( $raw_old_value !== $default_value && _is_equal_database_value( $raw_old_value, $value ) ) { + if ( + $value === $raw_old_value || + ( + $raw_old_value !== $default_value && + _is_equal_database_value( $raw_old_value, $value ) + ) + ) { return false; } diff --git a/wp-includes/version.php b/wp-includes/version.php index 05567a58da..dfb5eb8d47 100644 --- a/wp-includes/version.php +++ b/wp-includes/version.php @@ -16,7 +16,7 @@ * * @global string $wp_version */ -$wp_version = '6.4-beta2-56785'; +$wp_version = '6.4-beta2-56788'; /** * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.