get_row("SELECT * FROM wp_messages, wp_messages_types WHERE wp_messages.type_id = wp_messages_types.id AND wp_messages.id = $msg_id LIMIT 1", OBJECT); if ($msg === NULL) die('

Message inconnu

'); $html = "
"; $html .= "

Message du consommateur :

"; $html .= "

Nom Prénom : ".$msg->lastname." ".$msg->firstname."

"; $html .= "

E-mail : ".$msg->email."

"; $html .= "

".nl2br($msg->content)."

"; $html .= "

Réponse :

"; $html .= "

".nl2br($msg->response)."

"; $html .= "
"; echo($html); die(); } //Ajax pour ouvrir la page de réponse add_action( 'wp_ajax_getReponseForMsg', 'getReponseForMsg' ); add_action( 'wp_ajax_nopriv_getReponseForMsg', 'getReponseForMsg' ); function getReponseForMsg(){ global $wpdb; $msg_id = $_POST['id']; $msg = $wpdb->get_row("SELECT * FROM wp_messages, wp_messages_types WHERE wp_messages.type_id = wp_messages_types.id AND wp_messages.id = $msg_id LIMIT 1", OBJECT); if ($msg === NULL) die('

Message inconnu

'); $html = "
"; $html .= "

Message du consommateur :

"; $html .= "

Nom Prénom : ".$msg->lastname." ".$msg->firstname."

"; $html .= "

E-mail : ".$msg->email."

"; $html .= "

".nl2br($msg->content)."

"; $html .= "

Votre Réponse :

"; $html .= ""; $html .= ""; $html .= ""; $html .= "
"; echo($html); die(); } //Ajax d'envoi de la réponse add_action( 'wp_ajax_sendReponse', 'sendReponse' ); add_action( 'wp_ajax_nopriv_sendReponse', 'sendReponse' ); function sendReponse(){ global $wpdb; $email = $_POST['email']; $message = $_POST['message']; $msg_id = $_POST['id']; $ref = $_POST['ref']; $message = "REF: $ref

" . nl2br($message); wp_mail($email, "Réponse à votre message sur le site LDC", $message); $wpdb->update( 'wp_messages', [ 'response' => $message, 'response_date' => date('Y-m-d H:i:s'), 'status' => 1, ], ['id' => $msg_id], [ '%s', '%s', '%d', ] ); $html = "

Message Envoyé !

"; echo($html); die(); } function generateRandomString($length = 10) { $characters = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'; $charactersLength = strlen($characters); $randomString = ''; for ($i = 0; $i < $length; $i++) { $randomString .= $characters[rand(0, $charactersLength - 1)]; } return $randomString; } add_action( 'wp_ajax_ContactAjx', 'ContactAjx'); add_action( 'wp_ajax_nopriv_ContactAjx', 'ContactAjx'); function ContactAjx() { global $wpdb; // TODO : Validation Recaptcha with toekn // TODO : Test variables required //check_ajax_referer( 'ajax-security-nonce', 'security' ); $postID = sanitize_text_field($_POST['id']); $firstname = sanitize_text_field($_POST['firstname']); $lastname = sanitize_text_field($_POST['lastname']); $email = sanitize_email($_POST['email']); $content = ""; foreach ($_POST as $key => $item){ if ($key === 'firstname' || $key === 'lastname' || $key === 'email' || $key === 'action' || $key === 'id' || $key === 'token') continue; if (is_array($item)){ $content .= ucfirst($key) . " :\n\r"; foreach ($item as $v){ $content .= "- $v \n\r"; } }else{ $content .= ucfirst($key) . " : " . $item . "\n\r"; } } $ref = date('ymd') . '-' . generateRandomString(4); $wpdb->insert( 'wp_messages', [ 'ref' => $ref, 'firstname' => $firstname, 'lastname' => $lastname, 'email' => $email, 'content' => $content, 'status' => 0, 'date' => date('Y-m-d H:i:s'), 'type_id' => getMessageType($postID) ], [ '%s', '%s', '%s', '%s', '%s', '%d', '%s', '%d' ] ); $email = sendNotification($postID); wp_mail($email, "Vous avez un message à traiter sur le site LDC", "$ref"); die(); } // Function to change email address function wpb_sender_email( $original_email_address ) { return 'nepasrepondre@ldc.fr'; } // Function to change sender name function wpb_sender_name( $original_email_from ) { return 'Groupe LDC'; } // Hooking up our functions to WordPress filters add_filter( 'wp_mail_from', 'wpb_sender_email' ); add_filter( 'wp_mail_from_name', 'wpb_sender_name' ); function getMessages($page, $ref = false) { global $wpdb; $offset = ($page * 8) - 8; if ($ref !== false){ return $wpdb->get_results("SELECT *, wp_messages.id AS msg_id FROM wp_messages, wp_messages_types WHERE wp_messages.type_id = wp_messages_types.id AND ref = '$ref' ORDER BY status LIMIT $offset, 8", OBJECT); } return $wpdb->get_results("SELECT *, wp_messages.id AS msg_id FROM wp_messages, wp_messages_types WHERE wp_messages.type_id = wp_messages_types.id ORDER BY status LIMIT $offset, 8", OBJECT); } function getPagination() { global $wpdb; $t = $wpdb->get_row("SELECT COUNT(*) AS count FROM wp_messages", OBJECT); return ceil($t->count / 8); } function init() { if ($_SERVER['REQUEST_METHOD'] === 'POST') { $currentPage = 1; $ref = sanitize_text_field($_POST['ref']); $messages = getMessages($currentPage, $ref); }else{ $currentPage = isset($_GET['p']) ? (int)$_GET['p'] : 1; $messages = getMessages($currentPage); } $page = '
'; $page .= '

Gestion des messages - LDC

'; $page .= ""; // Tableau $page .= ""; $page .= ""; $page .= ""; $page .= ""; $page .= ""; $page .= ""; $page .= ""; $page .= ""; $page .= ""; $page .= ""; $page .= ""; $page .= ""; foreach ($messages as $message){ $page .= ""; $page .= ""; $page .= ""; if ($message->status === '0'){ $page .= ""; }else{ $page .= ""; } $page .= ""; $page .= ""; $page .= ""; $page .= ""; if ($message->response_date !== NULL){ $page .= ""; }else{ $page .= ""; } if ($message->status === '0'){ $page .= ""; }else{ $page .= ""; } $page .= ""; } $page .= "
#DateStatutNomPrénomEmailTypeDate de réponse
$message->ref". date('d/m/Y H:i', strtotime($message->date)) ."

À traiter

Traité

$message->lastname$message->firstname$message->email$message->name". date('d/m/Y H:i', strtotime($message->response_date)) ."-RépondreAfficher
"; if ($_SERVER['REQUEST_METHOD'] === 'GET') { $page .= "
"; for ($i = 1; $i <= getPagination(); $i++) { $class = $currentPage === $i ? "class='active'" : ""; $page .= "$i"; } $page .= "
"; } $page .= ""; $page .= '
'; echo $page; }