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
* Description: Чат-плагин для сайта vparadize.ru, который отправляет вопросы в изолированного агента OpenClaw paradizweb.
* Version: 1.0.0
* Version: 1.0.4
* Author: EVA
*/
@@ -12,11 +12,14 @@ class ParadizWebChat {
const OPT_ENDPOINT = 'paradizweb_endpoint';
const OPT_TOKEN = 'paradizweb_token';
private $widget_rendered = false;
public function __construct() {
add_action('admin_menu', [$this, 'admin_menu']);
add_action('admin_init', [$this, 'register_settings']);
add_shortcode('paradiz_web_chat', [$this, 'render_shortcode']);
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_nopriv_paradiz_web_chat', [$this, 'handle_chat']);
}
@@ -62,7 +65,25 @@ class ParadizWebChat {
}
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');
ob_start(); ?>
<style>
#paradiz-web-chat-fab {