fix(paradiz-web): show chat widget for guests without login

This commit is contained in:
OpenClaw Assistant
2026-03-02 21:42:24 +03:00
parent 739c597065
commit a47ba9f685
2 changed files with 23 additions and 1 deletions

View File

@@ -2,7 +2,7 @@
/** /**
* Plugin Name: Paradiz Web Chat * Plugin Name: Paradiz Web Chat
* Description: Чат-плагин для сайта vparadize.ru, который отправляет вопросы в изолированного агента OpenClaw paradizweb. * Description: Чат-плагин для сайта vparadize.ru, который отправляет вопросы в изолированного агента OpenClaw paradizweb.
* Version: 1.0.0 * Version: 1.0.4
* Author: EVA * Author: EVA
*/ */
@@ -12,11 +12,14 @@ class ParadizWebChat {
const OPT_ENDPOINT = 'paradizweb_endpoint'; const OPT_ENDPOINT = 'paradizweb_endpoint';
const OPT_TOKEN = 'paradizweb_token'; const OPT_TOKEN = 'paradizweb_token';
private $widget_rendered = false;
public function __construct() { public function __construct() {
add_action('admin_menu', [$this, 'admin_menu']); add_action('admin_menu', [$this, 'admin_menu']);
add_action('admin_init', [$this, 'register_settings']); add_action('admin_init', [$this, 'register_settings']);
add_shortcode('paradiz_web_chat', [$this, 'render_shortcode']); add_shortcode('paradiz_web_chat', [$this, 'render_shortcode']);
add_action('wp_enqueue_scripts', [$this, 'enqueue_assets']); add_action('wp_enqueue_scripts', [$this, 'enqueue_assets']);
add_action('wp_footer', [$this, 'render_global_widget']);
add_action('wp_ajax_paradiz_web_chat', [$this, 'handle_chat']); add_action('wp_ajax_paradiz_web_chat', [$this, 'handle_chat']);
add_action('wp_ajax_nopriv_paradiz_web_chat', [$this, 'handle_chat']); add_action('wp_ajax_nopriv_paradiz_web_chat', [$this, 'handle_chat']);
} }
@@ -62,7 +65,25 @@ class ParadizWebChat {
} }
public function render_shortcode() { public function render_shortcode() {
return $this->render_widget_markup();
}
public function render_global_widget() {
if (is_admin() || wp_doing_ajax() || $this->widget_rendered) {
return;
}
echo $this->render_widget_markup();
}
private function render_widget_markup() {
if ($this->widget_rendered) {
return '';
}
$this->widget_rendered = true;
wp_enqueue_script('paradiz-web-chat'); wp_enqueue_script('paradiz-web-chat');
ob_start(); ?> ob_start(); ?>
<style> <style>
#paradiz-web-chat-fab { #paradiz-web-chat-fab {

View File

@@ -28,6 +28,7 @@
- 19:30 МСК — новое операционное правило от Виталия: его сообщения по бухгалтерии трактовать как подтверждённый факт прихода (если не указано иное). - 19:30 МСК — новое операционное правило от Виталия: его сообщения по бухгалтерии трактовать как подтверждённый факт прихода (если не указано иное).
- 19:36 МСК — зафиксирован приход за январь: 180000 ₽ (аренда помещения). - 19:36 МСК — зафиксирован приход за январь: 180000 ₽ (аренда помещения).
- 21:36 МСК — добавлено новое правило для `paradiz`: в начале диалога обязательно сообщать, что отвечает ИИ-агент по бронированию; при запросе живого менеджера — уточнять контакт и канал связи, отправлять уведомление Виталию в Telegram. - 21:36 МСК — добавлено новое правило для `paradiz`: в начале диалога обязательно сообщать, что отвечает ИИ-агент по бронированию; при запросе живого менеджера — уточнять контакт и канал связи, отправлять уведомление Виталию в Telegram.
- 21:40 МСК — обновлён WordPress-плагин `paradiz-web-chat`: виджет чата теперь рендерится глобально через `wp_footer` для всех посетителей (включая неавторизованных), с защитой от дублей.
- 08:49 МСК — повторная оптимизация контекста: профиль подтверждён и точечно уточнён (календарная синхронизация Google ↔ Nextcloud), лишний шум не добавлялся, секреты не включались. - 08:49 МСК — повторная оптимизация контекста: профиль подтверждён и точечно уточнён (календарная синхронизация Google ↔ Nextcloud), лишний шум не добавлялся, секреты не включались.
- 11:49 МСК — выполнена плановая оптимизация: `memory/ops-profile.md` обновлён по устойчивым настройкам (добавлен бухконтур по умолчанию: УСН 6% без сотрудников), шум из оперативного контекста убран, секреты не включались. - 11:49 МСК — выполнена плановая оптимизация: `memory/ops-profile.md` обновлён по устойчивым настройкам (добавлен бухконтур по умолчанию: УСН 6% без сотрудников), шум из оперативного контекста убран, секреты не включались.
- 14:49 МСК — повторная оптимизация: профиль очищен от шума и уточнён стабильным правилом по общим чатам (отвечать только при прямом обращении), секреты не добавлялись. - 14:49 МСК — повторная оптимизация: профиль очищен от шума и уточнён стабильным правилом по общим чатам (отвечать только при прямом обращении), секреты не добавлялись.