[wp-hackers] Re: updating plugin admin menus on the fly
Robert R. Marsh, SJ
rmarshsj at hotmail.com
Wed Nov 21 12:38:16 GMT 2007
Callum and Jennifer,
I got it to work by hooking into the 'init' action. It took a little playing
around with action priorities too. Until I boosted the priority I could
remove the extra menu but not add it. Anyway it's working now.
Thanks,
Rob
http://rmarsh.com
> Date: Tue, 20 Nov 2007 23:34:44 -0500
> From: Callum Macdonald <lists.automattic.com at callum-macdonald.com>
> Subject: Re: [wp-hackers] updating plugin admin menus on the fly
> To: wp-hackers at lists.automattic.com
> Message-ID: <4743B564.3050204 at callum-macdonald.com>
> Content-Type: text/plain; charset=us-ascii; format=flowed
>
> How are your options being updated? By your own code, or by
> options.php?
> If it's by options.php then your browser is redirected back
> to the options page and the options are saved simultaneously.
> So you might arrive back before the options have updated.
>
> Otherwise, you could hook your update_options() code into the
> action 'init' so it runs ahead of everything else. Then by
> the time the rest of your plugin code runs, your options
> should have updated already.
>
> Cheers - Callum.
>
> Robert R. Marsh, SJ wrote:
> > My question languished unanswered for a week on the support
> forums so
> > I'm taking the liberty of asking it here where the
> knowledgeable folk live...
> >
> > I am writing two plugins, one of which is dependant on the
> other. Both
> > have option pages in the admin section. I want to show or hide the
> > second plugin's options page according to a setting selected on the
> > first plugin's options page.
> >
> > That much works up to a point. I can use add_action and
> remove_action
> > to add or remove the second plugin's options page.
> >
> > if ($_POST['show_other'] === 'true') {
> > add_action('admin_menu', 'other_option_menu');
> > } else {
> > remove_action('admin_menu', 'other_option_menu');
> > }
> >
> > Unfortunately, the menu at the top of the admin screen
> doesn't seem to
> > update immediately. For example, if I choose to remove the second
> > plugin's option page the menu still shows a tab for it -- but if I
> > click that tab I get an error page.
> >
> > However, if I click on another option menu tab -- or if I press the
> > button to update my options a second time -- the menu
> adjusts itself
> > and stops showing the second plugin's tab.
> >
> > Is there any way to get the menu to sort itself out on the first
> > update of the options?
> >
> > Thanks,
> >
> > Rob
> > http://rmarsh.com
> >
More information about the wp-hackers
mailing list