Open
Description
What problem would the enhancement address for VIP?
As explained at woocommerce/woocommerce#27696 there is a race condition when delete_option('foo')
is followed by add_option('foo', '...')
.
Describe the solution you'd like
Having a sniff that looked for a delete_option()
call followed by an add_option()
immediately
or at some point within the same scope, for the same option key, could flag this race condition and suggest using update_option()
instead.
What code should be reported as a violation?
function reset_settings() {
$defaults = get_default_settings();
delete_option( 'my_settings' );
add_option( 'my_settings', $defaults );
}
Likely to need some consideration of an option key that is using a variable.
What code should not be reported as a violation?
add_option()
in a different scope.- different option key (including different variable).