Доброго времени суток.
В шаблоне размещен код:
$chat_id = $post->post_name; echo do_shortcode('[ rcl-chat chat_room="' . $chat_id . '" userslist="1" avatar_size="42" ]');
Окно чата выводится корректно, сообщения вроде как и отправляются, но не приходят получателю.
В тоже время в кабинете чат работает корректно.
В шаблоне:
В кабинете отправителя и получателя:
В чем может быть проблема?
при создании чата подобным образом следует учитывать, что параметр chat_room не может быть длиннее 100 символов, ограничение указано в таблице БД.
Надо проверить создается ли вообще чат, если нет, то можно нужно проверить длину передаваемого параметра chat_room и если он больше, то увеличить длину строки в соотвествующем столбце таблицы rcl_chats
Rob Roy сказал(а)
Чат создается.
SQL:
Вы не можете просматривать опубликованные ссылкиP.S. Для уникальности и ограничения длины изменил порядок генерации chat_room:
$chat_id = substr( $post->post_name, 0, 80) . '-' . time();
что то я не понял, зачем вы привязали генерацию идентификатора к time, так вы будете получать уникальный чат при каждой загрузке страницы.
Идентификатор должен быть постоянным.
Rob Roy сказал(а)
Заменил time() на get_current_user_id()
а это вы с какой целью сделали? в этом случае будет создаваться уникальный чат для каждого конкретного пользователя, никто ни с кем переписываться не сможет.
не слишком часто у вас запросы чат посылает? строчит как из пулемета.
Rob Roy сказал(а)
Ок, тогда вопрос, как организовать приватный чат на произвольной странице?
следует сформировать верный идентификатор чата, используйте специальную функцию, передавая в нее два идентификатора пользователей между которыми должен быть организован приватный чат:
$chat_room = rcl_get_private_chat_room($user_1,$user_2); $chat = rcl_chat_shortcode(array('userslist'=>1,'chat_room'=>$chat_room));
первый пользователь может быть автором публикации, а второй текущим пользователем
Андрей, вы в очередной раз меня спасаете 🙂
Чувствую, что к завершению проекта мне придется проставляться 🙂
Огромное, человеческое спасибо.
И да, пример рабочего кода:
// Start base loop $my_post = get_post( $id ); $user_1 = $my_post->post_author; // ID post author // End base loop $user_2 = get_current_user_id(); // ID user $chat_room = rcl_get_private_chat_room( $user_1, $user_2 ); $chat = rcl_chat_shortcode( array( 'userslist'=>1,'chat_room'=>$chat_room ) ); print $chat;