[wp-hackers] Best way to kick off actual work from plugin settings page?

Matt Jacob matt at mattjacob.com
Mon Jul 12 07:04:33 UTC 2010

I'm using the settings API for my plugin's custom settings page, and 
it's working pretty well. Sometimes, though, I want to perform an action 
based on a submitted value instead of just saving the value back to the 
DB. Where's the best place to intercept the form submission and do some 
actual work?

I have two possibilities in my mind:

1. Hook into the admin_init action, since this should come before the 
$_POST array gets wiped out. I can determine if a specific submit button 
was used, if a certain checkbox was checked, etc. and then do some work 
based on those criteria.

2. Use the validation callback in register_setting() to check the 
submitted fields for what I want, do some work, and then return only the 
options I actually want to be persistent. (I'm using a single array for 
all of my options, so it's easy to leave some options out.)

Option #2 seems more elegant, but it's kind of overloading the purpose 
of the callback.

Just for reference, the kind of "work" I'm talking about doing is 
regenerating a secret token or importing existing records to custom 
posts during an upgrade.


More information about the wp-hackers mailing list