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
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.