2010-11-19 14 views
13

Me acaban de comenzar el desarrollo del aprendizaje plugin para WordPress y consiguió este error cuando se accede al menú de plug-in de mi administración.error Wordpress mientras se desarrolla un plugin - "Usted no tiene permisos suficientes para acceder a esta página."

Aquí está el código: importer.php

//*************** Admin function *************** 
function oscimp_admin() { 
    include('importer_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'); 

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

Cualquiera puede averiguar lo que estoy haciendo mal.

Respuesta

16

El problema es cuarto parámetro. He quitado los espacios desde el cuarto parámetro con _ y funciona.

Gracias por su ayuda ...

+0

Siento que tengo que decir: Gracias por esto! ;) – swdev

0

escribir el código de archivos dentro de la función importer_admin.php oscimp_admin() o utilizar la función file_get_contents php.

0

Traté de cambiar el 4 ° parámetro en add_options_page con el nombre base (_ FILE _); debe ser el mismo valor con "importer.php" en su caso. No sé exactamente a qué se debe cambiar, ¡pero es trabajo!

¡Buena suerte!

6

El tutorial real puede ser hallazgo HERE. Y debería funcionar con la versión 2.9.2 de Wordpress, al menos funciona para mí. Pero, cuando intento ejecutar el código del tutorial con la versión 3.1, me da el mismo error. Pero a medida que la mención por Avinash la línea

add_options_page(“OSCommerce Product Display”, “OSCommerce Product Display”, 1, “OSCommerce Product Display”, “oscimp_admin”); 

caso de que se reemplace con

add_options_page(“OSCommerce Product Display”, “OSCommerce Product Display”, 1, “OSCommerce_Product_Display”, “oscimp_admin”); 

y después de que funciona correctamente. Espero que ayude a alguien.

ACTUALIZACIÓN:

Como se ha dicho con razón por Francisco Corrales por debajo del comentario que puede considerar para desactivar el plugin & activarlo de nuevo si usted no está viendo los cambios.

+0

Terrible tutorial. Este cambio no hizo ninguna diferencia para mí. – JohnnyBizzle

+1

Por favor, que quede más claro, me paso 5 minutos protagonizando esas líneas. Es importante agregar que necesita desactivar el complemento y activarlo nuevamente. –

+0

Gracias Francisco Corrales. Agregó su comentario en la respuesta. Por cierto, ¿puedo saber qué versión de WP estás utilizando para este complemento? – enam

0

Sí, Forth parámetro es el nombre único, y para cualquier identificador único que debe contener el espacio, esa es la cuestión :)

1

en WordPress 3.6.1 ni siquiera pone de relieve el trabajo más. La función debe estar ahora:

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

Una posible causa de este error es en realidad registrando menú de Administración de admin_init gancho de la acción, en lugar de admin_menu. Este no es el caso aquí, pero es bueno compartir esta información, ya que me tomó horas darme cuenta.

Así que siempre se inscriben en sus menús como esto (y eliminar espacios ni tampoco caracteres no alfanuméricos de la única bala - el cuarto parámetro de la función add_options_page()):

Inicialmente

add_action('admin_menu', 'your_function'); 

y luego (verifique primero si la función existe)

if (!function_exists('your_function')) { 
    function your_function() { 
     add_options_page(__("Option page name","your-text-domain"), __("Option page name","your-text-domain"), 'manage_options', 'your-page-unique-slug', 'other_function'); 
    } 
} 

Tenga en cuenta el uso o f __() función en lugar de colocar directamente los títulos: es necesario para la internacionalización de su complemento (y muestra el texto entre comillas si no hay archivos de internacionalización).

Cuestiones relacionadas