(Moderator’s note: Original title was “Getting error: You do not have sufficient permissions to access this page. Trying to build custom plugin”)
I’m trying to write my own custom WordPress plugin, but as soon as I click on the menu I get the following error:
You do not have sufficient permissions to access this page.
My plugin is located under:
/wp-content/plugins/wp-e-commerce-group-pricing/wp-e-commerce-group-pricing.php
The code is below, I’m new to WordPress, so maybe I’m doing something wrong:
if ( is_admin() ) {
// Hooks and admin menu setup
add_action('admin_menu', 'add_options_gp');
function add_options_gp() {
add_submenu_page('wpsc-sales-logs','WPEC - Group Pricing','Group Pricing',7,
'wp-e-commerce-group-pricing', 'price_options');
}
function price_options(){
// Page content goes here...
}
}
I think the issue may be in your call to
add_submenu_page()
:The first parameter needs to be a reference to your Menu Page’s “slug”, i.e. if you use
'edit.php'
instead you’ll see that you get a menu option under the “Posts” menu page:Here’s what it looks like:
(source: mikeschinkel.com)
So you need to find out what URL fragment (the part past
http://yoursite.com/wp-admin/
) that your menu page uses.UPDATE
For future readers, Roland’s issue was a hook priority issue. Changing priority from 10 to 11 fixed it in his case:
P.S. You really don’t need the
if
statement testing foris_admin()
since you are using the'admin_menu'
hook; it only fires in the admin.Does it show up and work if you add it as sub menu page to some other menu item? Please try this to make shure it works and the only problem is the slug. Some point i’d suggest to look is the parent plugin folder and a search for add_menu_page in there.
If you look into your wp ecommerce folder: wp-e-commerce > wpsc-admin > admin.php on line 71-96 you’ll find the way how it’s done in the plugin.
@Mike: Here’s the download link
try to use
add_object_page( $page_title, $menu_title, $access_level, $file, $function = '', $icon_url = '');
with'admin.php?page=wpsc-sales-logs'
or'wpsc-sales-logs'
.Or try to use something like
add_submenu_page('wpsc-sales-logs', __('WPEC - Group Pricing', 'wpsc'), __('Group Pricing', 'wpsc'), 7, 'wpsc-sales-logs', 'price_options');
or take a look at the reference from wp-e-commerce plugin files at (file from above) line 99-108