Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >将用户角色传递给正文中的javascript代码

将用户角色传递给正文中的javascript代码
EN

WordPress Development用户
提问于 2022-03-01 01:35:50
回答 1查看 146关注 0票数 0

我知道这个问题以前已经回答过了,但这并不是我想要的信息。

现在我正在为一个客户开发一个聊天机器人。我对web开发有点陌生,但特别是wordpress (这是客户端正在使用的)。

聊天机器人使用wordpress的Insert Headers and Footers插件添加到页面中。我把它加到头上。但我想它也会在身体里起作用。

考虑到我不了解PHP/Wordpress,我不知道如何将用户角色传递给bot,因此它只对某些用户角色提供支持。

我知道有一些php函数(is_user_loggedin或wp_get_current_user),但我不知道如何实际运行这些函数。

我试着在像下面这样的脚本标记之间添加它们,至少尝试将信息转储到浏览器控制台,但是它没有工作。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?php
$user = wp_get_current_user();
var_dump($user);
?>

这就是我如何添加聊天机器人到网站:我添加以下的应用程序的Header使用前面提到的插件。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
!(function () {
  let e = document.createElement("script"),
    t = document.head || document.getElementsByTagName("head")[0];
  (e.src =
    "https://cdn.jsdelivr.net/npm/rasa-webchat@1.x.x/lib/index.js"),
    // Replace 1.x.x with the version that you want
    (e.async = !0),
    (e.onload = () => {
      window.WebChat.default(
        {
          params: { storage:"session"},
          title: "TestBot",
          initPayload: 'hello',
          customData: { language: "en" },
          socketUrl: "https://testlink.com",
          inputTextFieldHint: "Ask question here",
          // add other props here
        },
        null
      );
    }),
    t.insertBefore(e, t.firstChild);
})();

我试图将用户角色传递给initPayload属性。但是,在这里,我真的很难理解如何实际运行和存储php代码的结果。

我真的很感激你的帮助!

EN

回答 1

WordPress Development用户

发布于 2022-03-01 09:42:21

据我了解,上述插件的目的是将css或js添加到站点的页眉、正文或页脚,而不是PHP。

我建议创建一个自定义插件,用于在站点上集成您的自定义脚本。这样,您就不依赖于其他插件,并且您可以完全控制脚本添加到站点的方式和时间。

您可以了解有关从WP Dev,插件基础创建自定义插件的更多信息。

在您的自定义插件中,您可以根据用户和角色有条件地添加脚本。下面是简单的例子。取消注释if语句,或根据需要添加更多语句。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
add_action( 'wp_head', 'my_maybe_add_chatbot' );
function my_maybe_add_chatbot() {

  // only logged in users?
  // if ( ! is_user_logged_in() ) {
  //   return;
  // }

  // Only certain role
  // $user = wp_get_current_user();
  // $allowed_role = 'some_role';
  // if ( ! in_array( $allowed_role, (array) $user->roles ) ) {
  //   return;
  // }

  // other guards..

  my_print_chatbot_script();
}

function my_print_chatbot_script() {
  ?>

当然,您可以省略PHP语句,始终打印脚本,只需在脚本中间打印角色。但我不认为这是一种干净的做事方式。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
add_action( 'wp_head', 'my_print_chatbot_script_with_role' );
function my_print_chatbot_script_with_role() {
  $user = wp_get_current_user();
  ?>
  
    // script...
    title: "TestBot",
    initPayload: <?php echo (array) $user->roles[0]; ?>,
    customData: { language: "en" },
    // script...

第三种选择是将脚本放入单独的js文件中,并使用排队进行。然后,内联要在主脚本文件中使用的角色数据。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
add_action( 'wp_enqueue_scripts', 'my_enqueue_scripts' );
function my_enqueue_scripts() {
  $user = wp_get_current_user();
  
  wp_enqueue_script(
    'my-script',
    plugin_dir_url( __FILE__ ) . '/js/script.js',
    array(),
    '1.0.0',
    true
  );

  // access in js console.log( MY_SCRIPT_USER_ROLES );
  wp_add_inline_script(
    'my-script', 
    'const MY_SCRIPT_USER_ROLES = ' . json_encode( (array) $user->roles ), 
    'before'
  );
}
票数 1
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/403253

复制
相关文章
传苹果传正秘密测试Apple GPT
7月20日消息,据彭博社引述知情人士报导,苹果公司正在秘密测试自己的生成式AI聊天工具Apple GPT。
芯智讯
2023/08/09
1710
传苹果传正秘密测试Apple GPT
OpenStack将项目和用户加入到角色中
命令语法 openstack role add --project 项目名 --user 用户名 角色名 样例 openstack role add --project hzab --user hq woker
院长技术
2020/06/13
1.9K0
将多个属性传递给 Vue 组件的几种方式
所有使用基于组件的体系结构(如Vue和React)的开发人员都知道,创建可重用组件是很困难的,而且大多数情况下,最终会通过传入大量的属性,以便从外部更容易地控制和自定义组件。这并不坏,但是传递大量属性确实会变得有点麻烦和丑陋。
前端小智@大迁世界
2020/05/11
1.9K0
如何将多个参数传递给 React 中的 onChange?
在 React 中,一些 HTML 元素,比如 input 和 textarea,具有 onChange 事件。onChange 事件是一个非常有用、非常常见的事件,用于捕获输入框中的文本变化。有时候,我们需要将多个参数同时传递给 onChange 事件处理函数,在本文中,我们将介绍如何实现这一目标。
网络技术联盟站
2023/06/07
2.7K0
用户、角色和权限
InterSystems IRIS®具有系统级安全性,以及一组与sql相关的额外安全性特性。 在数据库级保护之外,InterSystems SQL安全性提供了额外级别的安全功能。 SQL和系统级安全性之间的一些关键区别是:
用户7741497
2022/06/07
2.1K0
在【用户、角色、权限】模块中如何查询不拥有某角色的用户
用户与角色是多对多的关系, 一个角色可以被赋予给多个用户,一个用户也可以拥有多个角色; 查询不拥有某角色的所有用户, 如果用leftjoin查询,会造成重复的记录: 举例错误的做法:
liulun
2019/07/19
2.6K0
将Kotlin代码编译成Javascript 代码
在Kotlin和Javascript平台的互操作过程中,往往会涉及Kotlin代码和 Javascript 代码相互转换的过程,本文主要介绍如何将Kotlin代码编译成Javascript 代码。
xiangzhihong
2022/11/30
1.7K0
Cloudera Manager用户角色
对Cloudera Manager功能的访问由指定身份验证机制和一个或多个用户角色的用户帐户 控制。用户角色确定经过身份验证的用户可以执行的任务以及该用户在Cloudera Manager管理控制台中可见的功能。除了默认用户角色,您还可以创建仅适用于特定集群的用户角色。
大数据杂货铺
2020/10/29
2K0
Cloudera Manager用户角色
iframe怎么将参数传递给vue 父组件
在子页面的iframe中想将参数传递给Vue父组件,可以使用postMessage()方法将数据发送给父窗口。父组件可以通过监听message事件来接收并处理这些数据。
王小婷
2023/08/10
1.4K0
「译」不要将 DTO 传递给用户界面组件
作为前端开发人员,我们经常使用来自后端 API 或服务的数据传输对象 (DTOs, data transfer objects)。这些 DTO 表示用于在网络中传输的原始数据结构。然而,在 UI 组件中直接使用 DTOs 可能会导致可维护性、可重用性和关注点分离方面的问题。
泯泷、
2025/01/27
460
纳税服务系统四(角色模块)【角色与权限、角色与用户】
需求分析 我们直接来看看原型图,看看需求是怎么样的: 这里写图片描述 这里写图片描述 我们看到上图,就会发现角色模块主要还是CRUD,唯一不同的就是它不再是单独的实体关系。角色与权限是存在关系的。 之
Java3y
2018/04/02
4.6K0
纳税服务系统四(角色模块)【角色与权限、角色与用户】
Oracle 用户、角色管理简介
3)DEFAULT TABLESPACE testtbs001:指定在用户方案(schema)中创建的对象的默认表空间为testtbs001
授客
2019/09/11
1.2K0
WPJAM Basic 扩展:用户角色
先首先说明一下:「用户角色」是一个面向 WordPress 开发者的扩展,如果你只是 WordPress 普通用户,不能十分明白,也没关系,就先简单看看也好。😊 WordPress 有一个角色和权限系统,用来来验证用户是否有足够的权限来进行某种操作,这个系统首先给用户分分配角色(Role),然后给每个角色都分配一定的权限(Capabilities),而这个「用户角色」扩展,则把这个角色和权限系统做成可视化。 用户角色 安装好扩展之后,在用户的菜单下面就会有一个「角色管理」的子菜单,点击进去就会看到目前系统所
Denis
2023/04/14
3160
WPJAM Basic 扩展:用户角色
PostgreSQL用户及角色介绍
原文:https://www.enmotech.com/web/detail/1/774/1.html
数据和云01
2019/07/31
3.6K0
Laravel 多角色用户权限
Gates 和 Policies $this->authorize () 方法 @can 和 @cannot Blade 命令
切图仔
2022/09/14
1.6K0
Laravel 多角色用户权限
Grafana -- 用户角色管理(三)
在日常 Grafana 使用中需要针对不同用户开放不同的 dashboard 权限,根据不同角色进行权限管理。Grafana 角色大致分为以下三类:
Kevin song
2020/11/06
5.6K0
用户、角色、权限表的关系(mysql)
`description` varchar(255) DEFAULT NULL,
全栈程序员站长
2022/11/10
5.7K0
用户、角色、权限表的关系(mysql)
【说站】javascript上下文中栈的理解
以上就是javascript上下文中栈的理解,希望对大家有所帮助。更多Javascript学习指路:Javascript
很酷的站长
2022/11/24
2630
PostgreSQL用户角色和权限管理
4、任何属于该组角色的对象都必须先被删除或者将对象的所有者赋予其它角色,任何赋予该组角色的权限也都必须被撤消。
数据和云
2022/02/25
4.8K0
PostgreSQL用户角色和权限管理
学习Nature正刊论文中eQTL分析前对基因表达量的预处理
https://www.nature.com/articles/s41586-022-04808-9
用户7010445
2024/06/07
1410
学习Nature正刊论文中eQTL分析前对基因表达量的预处理

相似问题

将功能分配给用户角色(代码检查)

10

如何将WordPress用户角色代码转换为WP短代码?

10

只使用特定的用户角色执行PHP代码

10

相同的用户角色或复制用户角色与其他角色相同。

20

允许用户以比默认代码更高的角色注册

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文