diff --git a/content/plugins/ldc-messages/ldc-messages.php b/content/plugins/ldc-messages/ldc-messages.php
new file mode 100644
index 00000000..4dc76b7b
--- /dev/null
+++ b/content/plugins/ldc-messages/ldc-messages.php
@@ -0,0 +1,100 @@
+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 date DESC", OBJECT);
+}
+
+function init()
+{
+ $page = '
';
+ $page .= '
Gestion des messages - LDC
';
+
+ // Tableau
+ $page .= "
";
+
+ $page .= "";
+
+ $page .= "| # | ";
+ $page .= "Date | ";
+ $page .= "Statut | ";
+ $page .= "Nom | ";
+ $page .= "Prénom | ";
+ $page .= "Email | ";
+ $page .= "Type | ";
+ $page .= "Date de réponse | ";
+ $page .= " | ";
+
+ $page .= "
";
+
+ $messages = getMessages();
+ foreach ($messages as $message){
+ $page .= "";
+
+ $page .= "| $message->ref | ";
+
+ $page .= "". date('d/m/Y H:i', strtotime($message->date)) ." | ";
+
+ if ($message->status === '0'){
+ $page .= "À traiter | ";
+ }else{
+ $page .= "Traité | ";
+ }
+
+ $page .= "$message->lastname | ";
+ $page .= "$message->firstname | ";
+ $page .= "$message->email | ";
+ $page .= "$message->name | ";
+
+ if ($message->response_date !== NULL){
+ $page .= "". date('d/m/Y H:i', strtotime($message->response_date)) ." | ";
+ }else{
+ $page .= "- | ";
+ }
+
+ if ($message->status === '0'){
+ $page .= "Répondre | ";
+ }else{
+ $page .= "Afficher | ";
+ }
+
+ $page .= "
";
+ }
+
+ $page .= "
";
+
+ $page .= "
";
+
+ $page .= '
';
+
+ echo $page;
+}
diff --git a/content/plugins/ldc-messages/script.js b/content/plugins/ldc-messages/script.js
new file mode 100644
index 00000000..4525d1f0
--- /dev/null
+++ b/content/plugins/ldc-messages/script.js
@@ -0,0 +1,80 @@
+let $j = jQuery.noConflict();
+
+$j(function(){
+
+ let currentMsg;
+ let currentMsgRef;
+
+ $j('body').on('click', '.answer-msg', function(e){
+ e.preventDefault();
+
+ currentMsg = $j(this).data('id');
+ currentMsgRef = $j(this).data('ref');
+
+ $j.post(
+ ajaxurl,
+ {
+ 'action': 'getReponseForMsg',
+ 'id' : currentMsg,
+ },
+ function(response){
+ $j('#reponse-msg').empty().html(response);
+ $j.fancybox.open({
+ src : '#reponse-msg',
+ type : 'inline',
+ afterClose: function (){
+ window.location.reload();
+ },
+ closeBtn: true
+ });
+ }
+ );
+
+ });
+
+ $j('body').on('click', '.show-msg', function(e){
+ e.preventDefault();
+
+ currentMsg = $j(this).data('id');
+
+ $j.post(
+ ajaxurl,
+ {
+ 'action': 'getMsg',
+ 'id' : currentMsg,
+ },
+ function(response){
+ $j('#reponse-msg').empty().html(response);
+ $j.fancybox.open({
+ src : '#reponse-msg',
+ type : 'inline',
+ afterClose: function (){
+ window.location.reload();
+ },
+ closeBtn: true
+ });
+ }
+ );
+
+ });
+
+ $j('body').on('click', '.send-answer', function(e){
+ e.preventDefault();
+ let email = $j('#emailTosend').val();
+ let message = $j('#msgTosend').val();
+ $j.post(
+ ajaxurl,
+ {
+ 'action': 'sendReponse',
+ 'email' : email,
+ 'message' : message,
+ 'id' : currentMsg,
+ 'ref': currentMsgRef
+ },
+ function(response){
+ $j('#reponse-msg').empty().html(response);
+ }
+ );
+ })
+
+});
diff --git a/content/plugins/ldc-messages/style.css b/content/plugins/ldc-messages/style.css
new file mode 100644
index 00000000..1b42adc2
--- /dev/null
+++ b/content/plugins/ldc-messages/style.css
@@ -0,0 +1,40 @@
+.ldc_messages_table {
+ border-collapse: collapse;
+ width: 90%;
+ margin: 30px auto 0 auto;
+ background-color: white;
+}
+
+.ldc_messages_table, .ldc_messages_table th, .ldc_messages_table td {
+ border: 1px solid;
+}
+
+.ldc_messages_table th, .ldc_messages_table td {
+ padding: 15px;
+ text-align: center;
+}
+
+.ldc_messages_table th {
+ font-weight: bold;
+}
+
+.ldc_messages_red {
+ color: red;
+}
+
+.ldc_messages_green {
+ color: green;
+}
+
+#reponse-msg {
+ width:700px;
+}
+
+#reponse-msg p{
+ margin:0;
+}
+
+#reponse-msg textarea {
+ width:100%;
+ height:250px;
+}
diff --git a/content/themes/ldc/contacts/6249_eleveurs.php b/content/themes/ldc/contacts/6249_eleveurs.php
new file mode 100644
index 00000000..9245d888
--- /dev/null
+++ b/content/themes/ldc/contacts/6249_eleveurs.php
@@ -0,0 +1,167 @@
+= the_title(); ?>
+
+
+
diff --git a/content/themes/ldc/functions.php b/content/themes/ldc/functions.php
index 76cb442b..2d7376c1 100644
--- a/content/themes/ldc/functions.php
+++ b/content/themes/ldc/functions.php
@@ -409,120 +409,92 @@ function catLink($cat_id) {
///////////////////// POC : REPONDRE AUX CONTACTS DIRECTEMENT DEPUIS L'ADMINISTRATION //////////////////////
-// ---- CPT Message
-function wp_cpt_messages() {
- $labels = array(
- 'name' => _x( 'Message', 'Post Type General Name'),
- 'singular_name' => _x( 'Message', 'Post Type Singular Name'),
- 'menu_name' => __( 'Messages'),
- 'all_items' => __( 'Tous les Messages'),
- 'view_item' => __( 'Voir les Messages'),
- 'add_new_item' => __( 'Ajouter un Message'),
- 'add_new' => __( 'Ajouter'),
- 'edit_item' => __( 'Editer le Message'),
- 'update_item' => __( 'Modifier le Message'),
- 'search_items' => __( 'Rechercher un Message'),
- 'not_found' => __( 'Non trouvée'),
- 'not_found_in_trash' => __( 'Non trouvée dans la corbeille'),
- );
-
- $args = array(
- 'label' => __( 'Message'),
- 'labels' => $labels,
- 'supports' => array( 'title', 'editor', 'thumbnail'),
- 'hierarchical' => true,
- 'public' => true,
- 'has_archive' => true,
- 'taxonomies' => array('type'),
- 'rewrite' => array( 'slug' => 'type/%gamme%'),
- 'map_meta_cap' => true,
- 'menu_icon' => 'dashicons-email-alt'
- );
-
- register_post_type( 'message', $args );
+// Contact Ajax
+function getMessageType($postID){
+ switch ($postID){
+ case 6249:
+ return 1;
+ break;
+ }
}
-add_action( 'init', 'wp_cpt_messages', 0 );
-// ---- Taxo : Type de message
-function taxo_type_message() {
- $args = array(
- 'label' => __( 'Type' ),
- 'hierarchical' => true,
- 'rewrite' => array( 'slug' => 'type', 'with_front' => false ),
- 'show_ui' => true,
- 'show_in_quick_edit' => false,
- 'show_admin_column' => true,
- );
- register_taxonomy( 'type', 'message', $args );
+function sendNotification($postID, $ref) {
+ switch ($postID){
+ case 6249:
+ $email = ['vincent.bridier@ldc.fr'];
+ break;
+ }
+ wp_mail($email, "Vous avez un message à traiter sur le site LDC", "$ref");
}
-add_action( 'init', 'taxo_type_message');
-// Ajout de la possibilité d'ordonner la colonne par type
-function add_message_sortable_columns( $cols ) {
- $cols[ 'taxonomy-type' ] = 'taxonomy-type';
- return $cols;
+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_filter( 'manage_edit-message_sortable_columns', 'add_message_sortable_columns' );
-//Ajout du selecteur permettant de filtrer par type
-function filter_message_by_taxonomies( $post_type, $which ) {
+add_action( 'wp_ajax_ContactAjx', 'ContactAjx');
+add_action( 'wp_ajax_nopriv_ContactAjx', 'ContactAjx');
+function ContactAjx() {
+ global $wpdb;
- // Apply this only on a specific post type
- if ( 'message' !== $post_type )
- return;
+ // TODO : Validation Recaptcha with toekn
+ // TODO : Test variables required
+ //check_ajax_referer( 'ajax-security-nonce', 'security' );
- // A list of taxonomy slugs to filter by
- $taxonomies = array( 'type');
+ $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 ( $taxonomies as $taxonomy_slug ) {
+ foreach ($_POST as $key => $item){
+ if ($key === 'firstname' || $key === 'lastname' || $key === 'email' || $key === 'action' || $key === 'id' || $key === 'token')
+ continue;
- // Retrieve taxonomy data
- $taxonomy_obj = get_taxonomy( $taxonomy_slug );
- $taxonomy_name = $taxonomy_obj->labels->name;
+ if (is_array($item)){
+ $content .= ucfirst($key) . " :\n\r";
+ foreach ($item as $v){
+ $content .= "- $v \n\r";
+ }
+ }else{
+ $content .= ucfirst($key) . " : " . $item . "\n\r";
+ }
+ }
- // Retrieve taxonomy terms
- $terms = get_terms( $taxonomy_slug );
+ $ref = date('ymd') . '-' . generateRandomString(4);
- // Display filter HTML
- echo "';
- }
+ $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'
+ ]
+ );
+ sendNotification($postID, $ref);
+
+ die();
}
-add_action( 'restrict_manage_posts', 'filter_message_by_taxonomies' , 10, 2);
-
-
-// Ajout colonne de réponse
-function custom_message_columns_title($columns) {
- $columns['repondre'] = 'Répondre';
- unset($columns['date']);
- return $columns;
-}
-add_filter('manage_edit-message_columns', 'custom_message_columns_title');
-
-
-// Ajout contenu dans colonne de réponse
-function custom_message_columns_content($column) {
- global $post;
- switch ($column) {
- case 'repondre' :
- echo('Répondre au message');
- break;
- }
- }
-
- add_action('manage_message_posts_custom_column', 'custom_message_columns_content');
-
// Ajout script spécifique sur l'admin message
function my_enqueue($hook) {
@@ -546,6 +518,33 @@ function my_enqueue($hook) {
}
add_action('admin_enqueue_scripts', 'my_enqueue');
+add_action( 'wp_ajax_getMsg', 'getMsg' );
+add_action( 'wp_ajax_nopriv_getMsg', 'getMsg' );
+
+function getMsg(){
+ 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 .= "
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' );
@@ -553,31 +552,21 @@ add_action( 'wp_ajax_nopriv_getReponseForMsg', 'getReponseForMsg' );
function getReponseForMsg(){
global $wpdb;
- $postid = $_POST['id'];
- // TODO : Add civilité
- $civilite = get_field('field_5e57a09acdacf', $postid);
- $nom = get_field('field_5e57a087cdacd', $postid);
- $prenom = get_field('field_5e57a095cdace', $postid);
- $adresse = get_field('field_5e57a0a9cdad0', $postid);
- $codepostal = get_field('field_5e57a0afcdad1', $postid);
- $ville = get_field('field_5e57a0b8cdad2', $postid);
- $email = get_field('field_5e57a0becdad3', $postid);
- $telephone = get_field('field_5e57a0c3cdad4', $postid);
- $message = get_field('field_5e57a0d9cdad5', $postid);
+ $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 : ".$nom." ".$prenom."
";
- $html .= "
E-mail : ".$email."
";
- $html .= "
Adresse : ".$adresse."
";
- $html .= "
Code Postal : ".$codepostal."
";
- $html .= "
Ville : ".$ville."
";
- $html .= "
Téléphone : ".$telephone."
";
- $html .= "
Message envoyé :
";
- $html .= "
".$message."
";
+ $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 .= "
";
$html .= "
";
$html .= "
";
@@ -586,6 +575,20 @@ function getReponseForMsg(){
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' );
+
//Ajax d'envoi de la réponse
add_action( 'wp_ajax_sendReponse', 'sendReponse' );
add_action( 'wp_ajax_nopriv_sendReponse', 'sendReponse' );
@@ -595,8 +598,25 @@ function sendReponse(){
$email = $_POST['email'];
$message = $_POST['message'];
+ $msg_id = $_POST['id'];
+ $ref = $_POST['ref'];
- wp_mail($email, "Réponse à votre message sur le site LDC", $message, '');
+ $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é !
";
diff --git a/content/themes/ldc/page-contacts-2.php b/content/themes/ldc/page-contacts-2.php
index 75088dff..60a3947e 100644
--- a/content/themes/ldc/page-contacts-2.php
+++ b/content/themes/ldc/page-contacts-2.php
@@ -37,129 +37,6 @@ get_header();
- ID === 6249): ?>
- = the_title(); ?>
-
-
+ ID === 6249) : require_once('contacts/6249_eleveurs.php'); endif ?>
-