Plugin formulario de contacto

Un ejemplo tomado de aquí:

<?php
/*
Plugin Name: Formulario de contacto ejemplo
Plugin URI: http://example.com
Description: Un formulario de contacto de ejemplo para probar plugins
Version: 1.0
Author: Intelisen
Author URI: http://intelisen.com
*/

function html_form_code() {
 echo '<form method="post">';
 echo '<p>';
 echo 'Nombre (requerido) <br/>';
 echo '<input type="text" name="cf-name" pattern="[a-zA-Z0-9 ]+" value="' . ( isset( $_POST["cf-name"] ) ? esc_attr( $_POST["cf-name"] ) : '' ) . '" size="40" />';
 echo '</p>';
 echo '<p>';
 echo 'Email (requerido) <br/>';
 echo '<input type="email" name="cf-email" value="' . ( isset( $_POST["cf-email"] ) ? esc_attr( $_POST["cf-email"] ) : '' ) . '" size="40" />';
 echo '</p>';
 echo '<p>';
 echo 'Asunto (requerido) <br/>';
 echo '<input type="text" name="cf-subject" pattern="[a-zA-Z ]+" value="' . ( isset( $_POST["cf-subject"] ) ? esc_attr( $_POST["cf-subject"] ) : '' ) . '" size="40" />';
 echo '</p>';
 echo '<p>';
 echo 'Mensaje (requerido) <br/>';
 echo '<textarea rows="10" cols="35" name="cf-message">' . ( isset( $_POST["cf-message"] ) ? esc_attr( $_POST["cf-message"] ) : '' ) . '</textarea>';
 echo '</p>';
 echo '<p><input type="submit" name="cf-submitted" value="Enviar"></p>';
 echo '</form>';
}

function deliver_mail() {

 // Si se han enviado los datos, procesar
 if ( isset( $_POST['cf-submitted'] ) ) {

 // Sanear valores
 $name = sanitize_text_field( $_POST["cf-name"] );
 $email = sanitize_email( $_POST["cf-email"] );
 $subject = sanitize_text_field( $_POST["cf-subject"] );
 $message = esc_textarea( $_POST["cf-message"] );

 // Conseguir el mail del administrador
 $to = get_option( 'admin_email' );

 $headers = "From: $name <$email>" . "\r\n";

 // Si todo va bien, mensaje ok
 if ( wp_mail( $to, $subject, $message, $headers ) ) {
 echo '<div>';
 echo '<p>Gracias por contactar.</p>';
 echo '</div>';
 } else {
 echo 'Error inesperado';
 }
 }
}

function cf_shortcode() {
 
 deliver_mail();
 html_form_code();

}

add_shortcode( 'intelisen_contact_form', 'cf_shortcode' );

preExamen

//Insertar el producto 'jamon' de precio 150 €

$conn = new PDO("mysql:host=localhost;dbname=tienda", "root", "");
$conn->query("insert into productos (nombre,precio) values ('jamon',150)");

$sql = "insert into productos (nombre,precio) values (:nombre,:precio)";
$st = $conn->prepare($sql);
$st->execute(array('nombre' => 'jamon', 'precio' => 150));


//Insertar x productos
$productos = array('tortilla' => 20, 'jamon' => 150, 'doritos' => 5, 'patatas' => 10);
$sql = "insert into productos (nombre,precio) values (:nombre,:precio)";
$st = $conn->prepare($sql);
$st->bindParam(':nombre', $nombre);
$st->bindParam(':precio', $precio);
foreach ($productos as $nombre => $precio) {
 $st->execute();
}



//Código para saber el número total de productos

$sql = "select count(*) as total from productos";
$st = $conn->query($sql);
$fila = $st->fetch();
echo $fila['total'];



//Código que me muestre por pantalla los nombres de los productos, me da igual como
$sql = "select nombre from productos";
$st = $conn->query($sql);
$productos = $st->fetchAll();
foreach($productos as $clave=>$valor){
 echo $valor['nombre']."<br/>";
}


//Función de framework que me devuelva el total de clientes de la ciudad que le pasemos
 include "framework.php";
 $bd = new tiendaBD();
print_r($bd->clientesDe('bcn'));
//Función de framework que me devuelva todos losproductos más caros del precio que le paso.
print_r($bd->productosMasCarosQue(100));

//Función de framework que me devuelva el total de clientes de la ciudad que le pasemos

 function clientesDe($ciudad){
 $sql="select count(*) as total from clientes where ciudad='$ciudad'";
 $res= $this->getSqlRows($sql);
 return $res[0]['total'];
 }
 
 //Función de framework que me devuelva todos losproductos más caros del precio que le paso.
 
 function productosMasCarosQue($cantidad){
 $sql="select * from productos where precio>=$cantidad";
 return $this->getSqlRows($sql);
 }