I’m writing a plugin with a settings/option page and I want some php code to be executed whenever someone saves the settings on that page and that page alone. Which actions do I need to hook into to accomplish this?
Leave a Reply
You must be logged in to post a comment.
If you’re using Settings API, then you should use a sanitize callback:
The myth is that the
$sanitize_callback
actually is a filter for your options when it’s saved in the database. This is the place where you can do something with your custom code.This is the sample code:
There is a pre-update filter, applied just after the sanitize filter. It’s called pre_update_option_optionname and takes the new and old values of the option as parameters. Use it like this:
The benefit of using this is that the intent is clearer, and you don’t have to manually get the old option value (if you need it) since it’s passed in for you.
This filter is specific to a field, so if you want it to run once when saving options, just add it to only one field.