En esta quinta parte de esta serie de artículos (ver parte 4) veremos cómo subir archivos a la librería de medios y adjuntarlos al post que hemos creado. Luego los enviaremos por email.
Paso 1
Agregamos los tags para subir los archivos:
Agregamos los tags para subir los archivos:
<?php wp_nonce_field( 'archivoAutorizacion', 'archivoAutorizacion_nonce' ); ?>
<p>Autorización<br/><input type="file" name="archivoAutorizacion" id="archivoAutorizacion" multiple="false" /></p><br/>
<?php wp_nonce_field( 'archivoContrato', 'archivoContrato_nonce' ); ?>
<p>Contrato<br/><input type="file" name="archivoContrato" id="archivoContrato" multiple="false" /></p><br/>
Nuestro formulario se verá así:
Paso 2
Agregamos el código para subir los dos archivos:
if ( isset( $_POST['archivoAutorizacion_nonce'] ) && wp_verify_nonce( $_POST['archivoAutorizacion_nonce'], 'archivoAutorizacion' ) &&
isset( $_POST['archivoContrato_nonce'] ) && wp_verify_nonce( $_POST['archivoContrato_nonce'], 'archivoContrato' ) ) {
require_once( ABSPATH . 'wp-admin/includes/image.php' );
require_once( ABSPATH . 'wp-admin/includes/file.php' );
require_once( ABSPATH . 'wp-admin/includes/media.php' );
$attachmentAutorizacion_id = media_handle_upload( 'archivoAutorizacion', $post_id );
if ( is_wp_error( $attachmentAutorizacion_id ) ) {
autorizacion_response("ERROR", "No se ha podido cargar al archivo de autorización: <br/><br/>" . $attachmentAutorizacion_id->get_error_message());
}
else {
$attachmentContrato_id = media_handle_upload( 'archivoContrato', $post_id );
if ( is_wp_error( $attachmentContrato_id ) ) {
autorizacion_response("ERROR", "No se ha podido cargar al archivo de contrato: <br/><br/>" . $attachmentContrato_id->get_error_message());
}
Paso 3
Código para enviar los archivos por email.
$adjunto1 = ABSPATH . parse_url(wp_get_attachment_url($attachmentAutorizacion_id))['path'];
$adjunto1 = str_replace("//", "/",$adjunto1);
$adjunto2 = ABSPATH . parse_url(wp_get_attachment_url($attachmentContrato_id))['path'];
$adjunto2 = str_replace("//", "/",$adjunto2);
$adjuntos = array($adjunto1, $adjunto2);
$sent = wp_mail($to, utf8_decode($subject), $message, $cabeceras, $adjuntos);
File is empty. Please upload something more substantial. This error could also be caused by uploads being disabled in your php.ini or by post_max_size being defined as smaller than upload_max_filesize in php.ini.
Este error puede darse cuando omitimos especificar enctype="multipart/form-data" en el tag FORM:
<form class="form_certi" id="nueva_autorizacion" enctype="multipart/form-data" action="<?php the_permalink(); ?>" method="post">
2 comentarios:
Muchísimas gracias por semejante tesoro de tutorial. Cada detalle está super explicado. Los cuatro posts anteriores los he hecho paso a paso y me ha funcionado cada cosa. Desafortunadamente el último no me ha funcionado, espero ayuda...
Muchas gracias
Publicar un comentario