[wp-hackers] Does a widget save hook exist or do I need to create a ticket in Trac?

Bjorn Wijers burobjorn at gmail.com
Mon Nov 7 11:28:48 UTC 2011


Thanks Eric, I should have been more clear because I need the data from 
one or more sidebars and not just one widget. Basically I need to 
display one or more sidebars with the same widgets on all blogs in the 
same WordPress Multisite. So I'm more interested in capturing the output 
of certain sidebars and updating it when the sidebar(s) change.

For now I'm trying to see if there is a better way than hooking into the 
widget_update_callback or widget_form_callback.

grtz
BjornW

On 11/03/2011 04:46 PM, Eric Mann wrote:
> If this widget is your own widget, you can add your own hook to the
> `update()` method of the widget class.
>
> Your other option is to hook into the 'update_option' action directly.
>
> When you save a widget's options it does the following:
>
>     1. Processing for the actual widget
>     2. Calling apply_filters<http://phpxref.ftwr.co.uk/wordpress/_functions/apply_filters.html>('widget_update_callback',
>     $instance<http://phpxref.ftwr.co.uk/wordpress/_variables/instance.html>,
>     $new_instance<http://phpxref.ftwr.co.uk/wordpress/_variables/new_instance.html>,
>     $old_instance<http://phpxref.ftwr.co.uk/wordpress/_variables/old_instance.html>,
>     $this<http://phpxref.ftwr.co.uk/wordpress/_variables/this.html>);
>     3. Calling $this<http://phpxref.ftwr.co.uk/wordpress/_variables/this.html>
>     ->save_settings<http://phpxref.ftwr.co.uk/wordpress/_functions/save_settings.html>
>     ($all_instances<http://phpxref.ftwr.co.uk/wordpress/_variables/all_instances.html>);
>     To save the settings of all instances of that widget.
>     4. save_settings() calls update_option() ... code below:
>
> function save_settings
> <http://phpxref.ftwr.co.uk/wordpress/_functions/save_settings.html>($settings
> <http://phpxref.ftwr.co.uk/wordpress/_variables/settings.html>) {
> $settings<http://phpxref.ftwr.co.uk/wordpress/_variables/settings.html>['_multiwidget']
> = 1;  update_option
> <http://phpxref.ftwr.co.uk/wordpress/_functions/update_option.html>(
> $this<http://phpxref.ftwr.co.uk/wordpress/_variables/this.html>->option_name
> <http://phpxref.ftwr.co.uk/wordpress/_variables/option_name.html>,
> $settings<http://phpxref.ftwr.co.uk/wordpress/_variables/settings.html>
> );
> }
>
> So you *should* be able to hook into the regular update hooks just fine ...
>
> On Thu, Nov 3, 2011 at 7:45 AM, Bjorn Wijers<burobjorn at gmail.com>  wrote:
>
>> Hi,
>>
>> I'm looking for a hook to use just after a widget has saved it's options.
>>
>> For example:
>> I have a widget W whose options I have changed in the Appearance->Widgets
>> screen. I press save and after the save a hook H is being called. My code
>> hooks into the hook and does its thing.
>>
>> Usage:
>> Clearing a site transient which is set in site X and also being used in
>> all the other sites of my WordPress Multisite installation. Basically it
>> saves me from (ab)using switch_to_blog()
>>
>> I've used the 'widget_update_callback' which in fact is called before the
>> update (is this a bug or feature?) as well as the 'widget_form_callback',
>> which gets called repeatedly something I would like to prevent. Any ideas
>> for a better hook to use?
>>
>> Afaik there is not (yet?) a hook directly after saving a widget's options.
>> Or is there? If not shall I create a ticket for this?
>>
>> Thanks in advance,
>>
>> grtz
>> BjornW
>> ______________________________**_________________
>> wp-hackers mailing list
>> wp-hackers at lists.automattic.**com<wp-hackers at lists.automattic.com>
>> http://lists.automattic.com/**mailman/listinfo/wp-hackers<http://lists.automattic.com/mailman/listinfo/wp-hackers>
>>
> _______________________________________________
> wp-hackers mailing list
> wp-hackers at lists.automattic.com
> http://lists.automattic.com/mailman/listinfo/wp-hackers
>


More information about the wp-hackers mailing list