Разрешение чата для пользователей
Нужно запретить доступ к видеозвонкам или отправке файлов какой-то части пользователей?
Например, только администраторы могут начинать видеозвонки или отправлять сообщения, а другие могут только общаться в чате.
Итак, на основе этого мы подготовили PHP-код для этих функций. Вcтавьте его в репозиторий своего сайта в файл темы WP "functions" в самый низ файла.
Пример пути к файлу для темы SweetDate:
\wp-content\themes\sweetdate\functions.php
Код функции:
add_filter( 'rest_request_before_callbacks', 'your_permission_access_function', 10, 3 );
function your_permission_access_function($response, $handler, $request)
{
/**
* 233 / 5000
Вот пример того, как вы можете контролировать разрешения пользователя.
* Этот пример предоставления разрешений по ролям пользователя
* admin - разрешено использовать все возможности ImbaChat
* user - разрешено писать сообщения и больше ничего
**/
if (!isset($handler['imbachat_callback'])) {
return $response;
}
if ($handler['imbachat_callback'] != 'get_users') {
return $response;
}
$user_id = $response['user_id'];
$user = get_user_by('id', $user_id);
if ( in_array( 'administrator', (array) $user->roles ) ) {
$role = 'admin';
} else {
$role = 'user';
}
if ($role == 'admin') {
$permissions = [
'send_message' => 1,
'send_files' => 1,
'send_geo' => 1,
'audio_calls' => 1,
'video_calls' => 1,
'audio_message' => 1,
'video_message' => 1
];
} else {
$permissions = [
'send_message' => 1,
'send_files' => 0,
'send_geo' => 0,
'audio_calls' => 0,
'video_calls' => 0,
'audio_message' => 0,
'video_message' => 0
];
}
return [
'permissions' => $permissions
];
}
Разрешения:
- send_message - Позволяет отправлять сообщения
- send_files - отправлять файлы.
- send_geo - отправлять геолокацию.
- audio_calls - начинать аудиозвонки.
- video_calls - начинать видеозвонки.
- audio_message - отправлять звуковые сообщения.
- video_message - отправлять видеосообщения.
Больше информации о настройках виджета чата:
Как кастомизировать внешний вид виджета