Разрешение чата для пользователей

Нужно запретить доступ к видеозвонкам или отправке файлов какой-то части пользователей?

Например, только администраторы могут начинать видеозвонки или отправлять сообщения, а другие могут только общаться в чате.

Итак, на основе этого мы подготовили 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
        ];
    }

Разрешения:

  1. send_message - Позволяет отправлять сообщения
  2. send_files - отправлять файлы.
  3. send_geo - отправлять геолокацию.
  4. audio_calls - начинать аудиозвонки.
  5. video_calls - начинать видеозвонки.
  6. audio_message - отправлять звуковые сообщения.
  7. video_message - отправлять видеосообщения.

Больше информации о настройках виджета чата:

Как кастомизировать внешний вид виджета

ImbaChat проблемы и их решения

Как настроить доступ к чату на основе ролей для монетизации