| Server IP : 91.240.85.141 / Your IP : 216.73.216.223 Web Server : nginx/1.28.0 System : Linux nuevo.ru 6.8.0-134-generic #134-Ubuntu SMP PREEMPT_DYNAMIC Fri Jun 26 18:43:11 UTC 2026 x86_64 User : ( 1029) PHP Version : 8.3.6 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /var/www/wpface_ru_usr/data/www/wpface.ru/wp-content/plugins/plh/inc/ |
Upload File : |
<?php
if (!defined('ABSPATH')) exit;
new TgSupDB;
class TgSupDB {
function __construct() {
$this->createTables();
}
private static function messages_table_name() {
global $wpdb;
return $wpdb->prefix . 'scot_messages';
}
function createTables() {
global $wpdb;
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
$messages_table_name = self::messages_table_name();
$users_table_name = ScotUser::usersTableName();
$threads_table_name = ScotThread::threadsTableName();
$charset_collate = $wpdb->get_charset_collate();
$sql = "CREATE TABLE $threads_table_name (
tg_supp_thread_id bigint(20) NOT NULL AUTO_INCREMENT,
thread_id varchar(40) UNIQUE NOT NULL,
user_id bigint(20) NOT NULL,
responder_nickname varchar(255),
PRIMARY KEY (tg_supp_thread_id)
) $charset_collate;";
dbDelta( $sql );
$sql = "CREATE TABLE $users_table_name (
user_id bigint(20) NOT NULL AUTO_INCREMENT,
user_hash varchar(40) UNIQUE NOT NULL,
wp_user bigint(20),
user_data longtext,
PRIMARY KEY (user_id)
) $charset_collate;";
dbDelta( $sql );
$sql = "CREATE TABLE $messages_table_name (
message_id bigint(20) DEFAULT '0' NOT NULL,
thread_id bigint(20) NOT NULL,
message longtext NOT NULL,
file_id longtext,
message_data longtext NOT NULL,
tg_user bigint(20),
is_response boolean,
date bigint(20) NOT NULL DEFAULT '0',
message_type longtext NOT NULL,
PRIMARY KEY (message_id)
) $charset_collate;";
dbDelta( $sql );
}
static function update_user( $user_id, $wp_user = '', $thread_id = '', $user_data = '' ) {
global $wpdb;
$update_data = [];
if(!empty($wp_user)) {
$update_data['wp_user'] = $wp_user;
}
if(!empty($thread_id)) {
$update_data['thread_id'] = $thread_id;
}
if(!empty($user_data)) {
$update_data['user_data'] = $user_data;
}
return $wpdb->update(
ScotUser::usersTableName(),
$update_data,
[
"user_id" => $user_id,
]
); //db call ok; no-cache ok
}
static function insert_message( $message_id, $thread_id, $message, $message_data, $tg_user, $is_response, $date, $message_type, $file_id = '' ) {
global $wpdb;
$insert = $wpdb->insert( self::messages_table_name(), [
"message_id" => $message_id,
"thread_id" => $thread_id,
"message" => $message,
"file_id" => $file_id,
"message_data" => $message_data,
"tg_user" => $tg_user,
"is_response" => $is_response,
"date" => $date,
"message_type" => $message_type,
] ); //db call ok; no-cache ok
return $insert;
}
public static function getThreadMessages( $thread_id, $last_message_date = 0 ) {
global $wpdb;
$messages_table_name = self::messages_table_name();
return $wpdb->get_results(
$wpdb->prepare(
"SELECT * FROM %i WHERE thread_id = %d AND date > %d ORDER BY date ASC",
$messages_table_name,
$thread_id,
$last_message_date
),
ARRAY_A
); //db call ok; no-cache ok
}
}