web-dev-qa-db-fra.com

"Vous ne disposez pas des autorisations suffisantes pour accéder à cette page" lorsque vous accédez à la page de plug-in que vous venez de créer

Je suis "écris ton propre tutoriel de plugin" et je l'ai créé, activé, ajouté aux paramètres pour avoir sa propre page de plugin, mais lorsque j'essaie d'accéder à cette page de plugin, le message ci-dessus s'affiche: "Je n'ai pas les autorisations suffisantes pour accéder à cette page "même si je suis connecté en tant qu'administrateur et que j'ai chmod -R 777 dans le répertoire wordpress ??

Quoi d'autre pourrait-il aller mal?

Le code du plugin suit:

oscommerce_importer.php

<?php  
    /* 
    Plugin Name: OSCommerce Product Display 
    Plugin URI: http://www.orangecreative.net 
    Description: Plugin for displaying products from an OSCommerce shopping cart database 
    Author: C. Lupu 
    Version: 1.0 
    Author URI: http://www.orangecreative.net 
    */  

    function oscimp_admin() {  
     include('oscommerce_import_admin.php');  
}  

    function oscimp_admin_actions() {  
      add_options_page("OSCommerce Product Display", "OSCommerce Product Display", 1, "OSCommerce Product Display", "oscimp_admin");  
    }  

    add_action('admin_menu', 'oscimp_admin_actions');  


?>

oscommerce_import_admin.php

 <div class="wrap">  
  <?php    echo "<h2>" . __( 'OSCommerce Product Display Options', 'oscimp_trdom' ) . "</h2>"; ?>  

  <form name="oscimp_form" method="post" action="<?php echo str_replace( '%7E', '~', $_SERVER['REQUEST_URI']); ?>">  
      <input type="hidden" name="oscimp_hidden" value="Y">  
      <?php    echo "<h4>" . __( 'OSCommerce Database Settings', 'oscimp_trdom' ) . "</h4>"; ?>  
      <p><?php _e("Database Host: " ); ?><input type="text" name="oscimp_dbhost" value="<?php echo $dbhost; ?>" size="20"><?php _e(" ex: localhost" ); ?></p>  
      <p><?php _e("Database name: " ); ?><input type="text" name="oscimp_dbname" value="<?php echo $dbname; ?>" size="20"><?php _e(" ex: oscommerce_shop" ); ?></p>  
      <p><?php _e("Database user: " ); ?><input type="text" name="oscimp_dbuser" value="<?php echo $dbuser; ?>" size="20"><?php _e(" ex: root" ); ?></p>  
      <p><?php _e("Database password: " ); ?><input type="text" name="oscimp_dbpwd" value="<?php echo $dbpwd; ?>" size="20"><?php _e(" ex: secretpassword" ); ?></p>  
      <hr />  
      <?php    echo "<h4>" . __( 'OSCommerce Store Settings', 'oscimp_trdom' ) . "</h4>"; ?>  
      <p><?php _e("Store URL: " ); ?><input type="text" name="oscimp_store_url" value="<?php echo $store_url; ?>" size="20"><?php _e(" ex: http://www.yourstore.com/" ); ?></p>  
      <p><?php _e("Product image folder: " ); ?><input type="text" name="oscimp_prod_img_folder" value="<?php echo $prod_img_folder; ?>" size="20"><?php _e(" ex: http://www.yourstore.com/images/" ); ?></p>  

      <p class="submit">  
      <input type="submit" name="Submit" value="<?php _e('Update Options', 'oscimp_trdom' ) ?>" />  
      </p>  
  </form>  
 </div>  

Merci

1
daniel trifunovic

add_options_page("OSCommerce Product Display", "OSCommerce Product Display", 1, "OSCommerce Product Display", "oscimp_admin");

devrait être

add_options_page( 'OSCommerce Product Display', 'OSCommerce Product Display', 'administrator', 'os_commerce_display_main', 'oscimp_admin' );

La solution n'est pas testée. Docs: Rôles et capacités , add_options_page

Le troisième paramètre est la capacité, pas le niveau d'utilisateur ou ce que vous pensiez. Je le règle sur admin, consultez la documentation sur les rôles et les fonctionnalités si vous souhaitez que la configuration soit différente. L’autre erreur que vous avez commise est d’avoir des espaces dans votre slug de menu, cela a peut-être fonctionné de cette façon, mais cela peut créer un désordre. Vous devez également examiner de manière très approfondie les normes de codage Wordpress si vous souhaitez développer des plugins.

3
mor7ifer