web-dev-qa-db-fra.com

Erreur de menu dans la console d'administration avec le plug-in personnalisé: vous ne disposez pas des autorisations suffisantes pour accéder à cette page

( Note du modérateur: Le titre original était "Erreur de lecture: vous ne disposez pas des autorisations suffisantes pour accéder à cette page. Tentative de création plugin personnalisé ")

J'essaie d'écrire mon propre plugin WordPress personnalisé, mais dès que je clique sur le menu, l'erreur suivante apparaît:

Vous ne disposez pas des autorisations suffisantes pour accéder à cette page.

Mon plugin est situé sous:

/wp-content/plugins/wp-e-commerce-group-pricing/wp-e-commerce-group-pricing.php

Le code est ci-dessous, je suis nouveau sur WordPress, alors peut-être que je fais quelque chose de mal:

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...
  }
}
2
Roland

Je pense que le problème peut être dans votre appel à add_submenu_page():

add_submenu_page('wpsc-sales-logs',...

Le premier paramètre doit être une référence au "slug" de votre page de menu, c'est-à-dire que si vous utilisez 'edit.php' à la place, vous verrez qu'une option de menu apparaît dans la page de menu "Messages" :

add_submenu_page('edit.php','WPEC - Group Pricing','Group Pricing', 7,
                 'wp-e-commerce-group-pricing', 'price_options');

Voici à quoi ça ressemble:

WordPress Admin Menu with Submenu Page URL
(source: mikeschinkel.com )

Vous devez donc savoir quel fragment d'URL (la partie après http://yoursite.com/wp-admin/) est utilisé par votre page de menu.

METTRE À JOUR

Pour les futurs lecteurs, le numéro de Roland était un numéro prioritaire . Le changement de priorité de 10 à 11 l'a corrigé dans son cas:

add_action('admin_menu', 'add_options_gp',11);

P.S. Vous n'avez vraiment pas besoin de l'instruction if pour tester is_admin() puisque vous utilisez le hook 'admin_menu'; il ne se déclenche que dans l'admin.

4
MikeSchinkel

Est-ce qu'il apparaît et fonctionne si vous l'ajoutez comme page de sous-menu à un autre élément de menu? Veuillez essayer ceci pour vous assurer que cela fonctionne et que le seul problème est la limace. Un point que je suggérerais de regarder est le dossier du plugin parent et une recherche pour add_menu_page.

Si vous regardez dans votre dossier de commerce électronique wp: wp-e-commerce> wpsc-admin> admin.php à la ligne 71-96, vous découvrirez comment cela se passe dans le plug-in.

@Mike: Voici le lien de téléchargement

essayez d'utiliser add_object_page( $page_title, $menu_title, $access_level, $file, $function = '', $icon_url = ''); avec 'admin.php?page=wpsc-sales-logs' ou 'wpsc-sales-logs'.

Ou essayez d'utiliser quelque chose comme add_submenu_page('wpsc-sales-logs', __('WPEC - Group Pricing', 'wpsc'), __('Group Pricing', 'wpsc'), 7, 'wpsc-sales-logs', 'price_options'); ou consultez la référence des fichiers du plug-in wp-e-commerce à la (ligne ci-dessus), ligne 99-108.

1
kaiser