En esta cuarta parte de esta serie de artículos (ver parte 3) veremos cómo almacenar los datos de nuestro formulario en un tipo de artículo personalizado (custom post type) dentro de la base de datos de WordPress. Por supuesto no accederemos en forma directa a la base, sin a través de la API.
Paso 1
Creamos un custom post type:
Paso 2
Agregamos el código para insertar dentro de WordPress y controlar el posible error.
<?php
$response = "<h1>Solicitar autorización</h1><br/>";
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
# Datos
$to = get_option('admin_email');
$subject = "Solicitud de autorización desde ".get_bloginfo('name');
$message = "<b>Empresa</b>: " . $_POST['razonsocial'];
$message .= "<br/><b>Email</b>: " . $_POST['email'];
$cabeceras = "MIME-Version: 1.0\r\n";
$cabeceras .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
# Carga de post en WodPress
$my_post = array(
'post_title' => $subject,
'post_content' => $message,
'post_status' => 'publish',
'post_type' => 'solicitud',
);
$post_id = wp_insert_post( $my_post , true);
if ( is_wp_error($post_id) ) {
autorizacion_response("ERROR", "No se ha podido cargar la solicitud: <br/><br/>" . $post_id->get_error_message());
}
# Envío de mail
else {
$subject .= " - " . $post_id;
$sent = wp_mail($to, utf8_decode($subject), $message, $cabeceras);
if($sent)
autorizacion_response("OK", "Solicitud de autorización enviada.");
else
autorizacion_response("ERROR", "No se ha podido enviar el correo electrónico: <br/><br/>" . error_get_last()["message"]);
}
}
function autorizacion_response($tipo, $mensaje){
global $response;
$response = "<div class='mensaje{$tipo}'>{$mensaje}</div><br/>";
}
?>
<?php get_header();
/*
El resultado
Sin error:
Con error:
El post creado:
El mail recibido
0 comentarios:
Publicar un comentario