Cita:
Iniciado por metacortex Creo que llegué tarde aquí :)
Y tampoco es vital. Para un buen comienzo es suficiente con dominar PHP en un nivel medio y paralelamente familiarizarte poco a poco con los recursos de desarrollo disponibles en el software.
Me dio curiosidad saber cómo te quedó el código final, ya que mencionas que "el problema estaba en la comprobación" y asumí que te referías a check_admin_referer(), pero al mismo tiempo no veo la creación de nonce fields en el código posteado.
Bueno otros dos "
" mas sobre el codigo siempre es bienvenido asi que no creo que sea tarde
Ahora bien, como bien comentas no creo que sea vital en este momento ponerme a inventar con clases en WP pues de la forma "comun y corriente" ya me ha dado buenos dolores de cabeza.
El nonce_fields si lo estoy usando, mas creo que no como deberia pues la comprobacion la estoy realizando con wp_verify_nonce() en vez de usar check_admin_referer() que nunca logre que funcionara, observa como quedo el codigo:
Código PHP:
add_action('init', 'uploadFileImportCSV');
function uploadFileImportCSV()
{
$wp_error = true;
global $wpdb;
$nonce = isset($_POST['_wpnonce']) ? $_POST['_wpnonce'] : null;
if (isset($_POST['uploadfile_btn']) && wp_verify_nonce($nonce, 'wpnf_ft')) {
$uploadfiles = $_FILES['uploadfiles'];
if (is_array($uploadfiles)) {
foreach ($uploadfiles['name'] as $key => $value) {
if ($uploadfiles['error'][$key] == 0) {
$filetmp = $uploadfiles['tmp_name'][$key];
$filename = $uploadfiles['name'][$key];
$filetype = wp_check_filetype(basename($filename), null);
$filetitle = preg_replace('/\.[^.]+$/', '', basename($filename));
$filename = $filetitle . '.' . $filetype['ext'];
$upload_dir = wp_upload_dir();
$fileCSV = 'text/csv';
$fileText = 'text/plain';
if (!in_array($filetype['type'], array($fileCSV, $fileText))) {
echo "Error, the file $filename has not a valid mimetype: " . $filetype["type"];
continue;
}
$i = 0;
while (file_exists($upload_dir['path'] . '/' . $filename)) {
$filename = $filetitle . '_' . $i . '.' . $filetype['ext'];
$i++;
}
$filedest = $upload_dir['path'] . '/' . $filename;
if (!is_writeable($upload_dir['path'])) {
echo 'Unable to write to directory %s. Is this directory writable by the server?';
return;
}
if (!move_uploaded_file($filetmp, $filedest)) {
echo "Error, the file $filetmp could not moved to : $filedest ";
continue;
}
}
}
}
// Process the uploaded file
$csv = array_map('str_getcsv', file($filedest));
}
}
PD: Enviame un PM para agregarnos a Hangouts ya que estamos por aca por Caracas ambos