• Resolved Alex Cragg

    (@epicalex)


    Hi everyone,

    I’m updating a plugin of mine that has been neglected for a while, and one of the things I’m changing is how the options are stored.

    I want to use an array instead of individual options. To clean up afterwards, I want the old rows deleted. This is what I have so far:

    function MyFunction() {
    	$new_options = array(
    		'html' => 'option1',
    		'fromaddress' => 'option2',
    		'from' => 'option3',
    		'subject' => 'option4',
    		'text' => 'option5',
    		'adminsubject' => 'option6',
    		'admintext' => 'option7'
    	);
    	// if old options exist, update to new system
    	foreach( $new_options as $key => $value ) {
    		if( $existing = get_option( 'newuseremail' . $key ) ) {
    			$new_options[$key] = $existing;
    			delete_option( 'newuseremail' . $key );
    		}
    	}
    	update_option('newuseremail_options', $new_options);
    }

    where newuseremail_options is the name of the option in the table, and newuseremail + suffix of new key was the old option name.

    When I save the options going from the old style to the new, the new array gets added, but the old options don’t get deleted.

    What am I doing wrong here?

    The whole plugin code is in the pastebin, but its a little bit messy at the moment, and there might appear to be some irrelevant parts.

    Thanks in advance
    Alex

Viewing 1 replies (of 1 total)
Viewing 1 replies (of 1 total)
  • The topic ‘Plugin not deleting old MySQL rows’ is closed to new replies.