Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/06/2014, 13:08
reynierpm
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 140
Antigüedad: 13 años, 9 meses
Puntos: 1
Procesar archivos subidos en WordPress (desde plugin en desarrollo)

Hola, estoy desarrollando mi primer plugin para WordPress. Basicamente el plugin deberia permitir que se suba un fichero con extension CSV, parsear el contenido de dicho fichero e instertar los datos obtenidos en una tabla de la BD de WordPress. Despues de haber leido y leido mucha documentacion, aun me quedan muchas dudas al respecto del desarrollo de plugin para WP por lo cual segui estos pasos para crear el plugin:
  • Crear dos archivos frequent-traveler.php donde deberia estar toda la logica del plugin y ft_admin.php donde esta la parte de la vista
  • Este es el codigo que tengo dentro del archivo frequent-traveler.php:

Código PHP:
// Create database tables and some others
function frequent_traveler_activation()
{

}

register_activation_hook(__FILE__'frequent_traveler_activation');

// Deletes database tables and some others
function frequent_traveler_deactivation()
{

}

register_deactivation_hook(__FILE__'frequent_traveler_deactivation');

function 
frequent_traveler_admin_actions()
{
add_options_page("Frequent Traveler Configuration""Frequent Traveler Config"'manage_options'"ftconfig""frequent_traveler_admin");
}

add_action('admin_menu''frequent_traveler_admin_actions');

function 
frequent_traveler_admin()
{
include(
'ft_admin.php');
}

if (!empty(
$_POST) && isset($_POST['uploadfile_btn']) && check_admin_referer('name_of_my_action''wpnf_ft')) {
echo 
"entre";
}
else {
echo 
"Error";

Y esto lo que tengo dentro de ft_admin.php:

Código PHP:
<?php
wp_enqueue_script
('jquery-ui-datepicker');
wp_enqueue_style('jquery-style''http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.2/themes/smoothness/jquery-ui.css');

?>

<div class="wrap">
<?php echo "<h2>" __('Frequent Traveler Configuration') . "</h2>"?>
<form name="frequent_traveler_form" method="post" action="<?php echo str_replace('%7E''~'$_SERVER['REQUEST_URI']); ?>">
<input type="hidden" name="frequent_traveler_hidden" value="Y">
<?php echo "<h4>" __('Common Settings') . "</h4>"?>
<p>
<?php _e("Default Conversion Value: "); ?><input type="text" name="ft_default" value="<?php echo $ft_default?>" size="5">
<?php _e("From Date: "); ?><input type="text" id="frequent_traveler_from_date" name="frequent_traveler_from_date" value="<?php echo $frequent_traveler_from_date ?>" class="datepicker" />
<?php _e("To Date: "); ?><input type="text" id="frequent_traveler_to_date" name="frequent_traveler_to_date" value="<?php echo $frequent_traveler_to_date?>" class="datepicker" />
</p>
<input type="submit" class="button-primary" name="Submit" value="<?php _e('Save Values'?>" />
</form>
<hr/>
<?php ?>
<h2><?php echo __('Upload file to import'?></h2>
<form name="uploadfile" id="uploadfile_form" method="POST" enctype="multipart/form-data" action="<?php echo str_replace('%7E''~'$_SERVER['REQUEST_URI']) . '/uploadfile'?>" accept-charset="utf-8" >
<?php wp_nonce_field('name_of_my_action''wpnf_ft'); ?>
<p><?php echo __('Select file to upload'?><input type="file" name="uploadfiles[]" id="uploadfiles" size="35" class="uploadfiles" /><p>
<input class="button-primary" type="submit" name="uploadfile_btn" id="uploadfile_btn" value="<?php echo __('Upload & Process'?>" />
</form>
</div>

<script>
jQuery(document).ready(function() {
jQuery('.datepicker').datepicker({
dateFormat: 'dd/mm/yy'
});
});
</script>
Como deben haber notado estoy tratando de validar el archivo subido con el siguiente codigo:

Código PHP:
if (!empty($_POST) && isset($_POST['uploadfile_btn']) && check_admin_referer('name_of_my_action''wpnf_ft')) {
echo 
"entre";
}
else {
echo 
"Error";

Pero siempre obtengo "Error", cual es la razon? Que estoy haciendo mal? Cual es la mejor forma de manejar archivos subidos desde el panel de administracion de WP?
__________________
Reynier Perez Mira
Skype: reynierpm
Site: http://www.reynierpm.com