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).
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 byadd_option('foo', '...').Describe the solution you'd like
Having a sniff that looked for a
delete_option()call followed by anadd_option()immediatelyor 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?
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.