public function intelFrontendChat(){
ob_start();
?>
<html>
<html lang="en">
<form id="frmmain" name="frmmain" method="post">
<head>
<meta charset="utf-9">
<h5> Unit Briefing </h5>
</head>
<body>
<?php
global $current_user;
get_currentuserinfo();
$user = wp_get_current_user();
$role = ucwords(str_replace("_"," ",$user->roles[0]));
$user_id_for_post = $current_user->display_name;
?>
<div id="div_user_name" class="div_user_class">
<input name="user_id_message" id="user_id_message" type="hidden" value="<?php echo $user_id_for_post?>, <?php echo $role?>" />
</div>
<div id="div_chat_display" class="chat_display"></div>
<div class = "submition_for_chat_int" id="div_send">
<p>
<input type="text" id="txt_message_id" name="txt_message" style="width: 100%" /><br></p>
<p><input type="button" name="btn_send_chat" id="btn_send_chat" value="Send" /></p>
</div>
</form>
</body>
</html>
<?php
}
public function asIntelChatTable(){
//This is the table for mission briefings and general chat
global $wpdb;
$table = $wpdb->prefix . "intel_chat_table";
$charset_collate = $wpdb->get_charset_collate();
$sql = "CREATE TABLE $table (
`id` mediumint(9) NOT NULL AUTO_INCREMENT,
`userid` varchar(255),
`message` varchar(255),
PRIMARY KEY (`id`)
) $charset_collate;";
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
dbDelta( $sql );
}
public function intelChatRoomCallBack(){
global $wpdb;
$table_name = $wpdb->prefix . "intel_chat_table";
$ChatsOne = $_POST['chat_insert_data'];
$ChatsOneUser = $_POST['chat_insert_user'];
$rows_affected = $wpdb->insert( $table_name, array(
//'id' => 1,
'userid' => $ChatsOneUser,
'message' => $ChatsOne
));
die();
}
public function aSCustomDataDisplayChatFromTable(){
global $wpdb;
$table_name = $wpdb->prefix."intel_chat_table" ;
$chatretrieve_datas = $wpdb->get_results( "SELECT * FROM $table_name" );
foreach ($chatretrieve_datas as $chatretrieve_data){
$intel_chat_data = array(
$chatretrieve_data->userid, ': ',
$chatretrieve_data->message, '<br/>'
);
}
wp_send_json($intel_chat_data);
die();
}
}
Это мой javascript
var formId = document.getElementById("frmmain");
if (formId){
var autoRefreshMessages = function(){
jQuery.ajax({
url : intel_chat_local_script.ajaxurl,
type : 'post',
data : {
action : 'display_message_in_table',
currentChat : 'intel_chat_data',
},
success : function(data) {
console.log(data);
jQuery("#div_chat_display").append(data);
}
});
//setTimeout(autoRefreshMessages, 3000);
};
autoRefreshMessages();
btnSendChat.addEventListener("click", function(){
var fieldTxtInput = document.querySelector('.submition_for_chat_int [name="txt_message"]').value
var userTxtInput = document.querySelector('.div_user_class [name="user_id_message"]').value
jQuery.ajax({
url : intel_chat_local_script.ajaxurl,
type : 'post',
data : {
action : 'insert_message_in_table',
chat_insert_data : fieldTxtInput,
chat_insert_user : userTxtInput
},
success : function() {
document.getElementById("txt_message_id").value = '';
document.getElementById("btn_send_chat").reset;
}
});
});
};
});
Я пытаюсь создать плагин Wordpress для системы обмена сообщениями.Однако я действительно борюсь с созданием функций автообновления сообщений, которые будут перечислять все сообщения в таблице.
Я настроил функцию на wp_send_json и функцию javascript для автоматического обновления, но она отображает только самую последнюю запись в таблице.Я также попытался установить две контрастные переменные, чтобы они не равнялись друг другу для обновления таблицы, но мне тоже не повезло.