[wp-testers] update_option() not always working in WP 3.0 beta 2

Dion Hulse (dd32) wordpress at dd32.id.au
Thu May 20 09:40:24 UTC 2010


Sounds like you've run into either:
  a. a Bug with PHP
  b. a Bug in a Caching layer you've got enabled

This exact code works for me:


$option_name = 'test';

$value = (object) array('test' => true);
$value->var1 = 1;
update_option ($option_name, $value);
$value->var2 = 2;
update_option ($option_name, $value);
$value->var3 = 3;
update_option ($option_name, $value);

var_dump(get_option($option_name));
delete_option($option_name);

Resulting in:
object(stdClass)#278 (4) { ["test"]=> bool(true) ["var1"]=> int(1)  
["var2"]=> int(2) ["var3"]=> int(3) }

Thats running the latest SVN edition, and PHP 5.3.1

Checking http://www.php.net/manual/en/language.oop5.object-comparison.php  
confirms that the existing code should work as expected.


On Thu, 20 May 2010 05:43:42 +1000, andrea <andrea at blogsweek.com> wrote:

> Hi all,
>
> In a plugin I store an object in an option, and the typical flow is as  
> follows:
>
> $value = get_option ($option_name);
> $value->var1 = $new_var1;
> update_option ($option_name, $value);
> $value->var2 = $new_var2;
> update_option ($option_name, $value);
> $value->var3 = $new_var3;
> update_option ($option_name, $value);
>
> and so on. That used to work fine with WP 2.9.2, both with PHP4 and PHP5.
>
> With WP 3.0 beta 2 and PHP4, no problem.
>
> With WP 3.0 beta 2 and PHP5, apparently only the first update_option()  
> call is
> honored, and following calls are not honored because update_option()  
> finds that
>
> $newvalue === $oldvalue (lines 503-504 in wp-includes/functions.php)
>
> and does not update the database. If I remove those two lines, the  
> plugin works
> again. If in my code I replace
>
> update_option ($option_name, $value);
>
> with
>
> update_option ($option_name, 0);
> update_option ($option_name, $value);
>
> the plugin works as well.
>
> According to a user report I received, the problem was first noted in
> WordPress 3.0 alpha (svn13807 – 2010.03.23 @ 20.03).
>
> Is this issue already known? Or am I missing something? If interested,  
> the
> plugin that stopped working in WP 3.0 is Menubar 4.7.
>
> Thank you all
> Andrea
>
> Andrea Tarantini
> www.blogsweek.com
> www.dontdream.it
>
>
> _______________________________________________
> wp-testers mailing list
> wp-testers at lists.automattic.com
> http://lists.automattic.com/mailman/listinfo/wp-testers
>


-- 
Dion Hulse / dd32
Contact:
  e: contact at dd32.id.au
  Web: http://dd32.id.au/


More information about the wp-testers mailing list