Forums

[resolved] Plugin not deleting old MySQL rows (2 posts)

  1. epicalex
    Member
    Posted 6 months ago #

    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

  2. epicalex
    Member
    Posted 6 months ago #

    The issue was with variable naming, had just referenced the wrong one somewhere along the line.

    http://pastebin.com/f4ad7ba42

Reply

You must log in to post.

About this Topic