据我所知,上述插件旨在向站点的页眉、正文或页脚添加css或js,而不是PHP。
我建议您创建一个自定义插件,以便在站点上集成自定义脚本。这样,您就不需要依赖其他插件,并且可以完全控制脚本添加到站点的方式和时间。
您可以从中了解有关创建自定义插件的更多信息WP Dev docs, Plugin Basics.
在自定义插件中,您可以根据用户和角色有条件地添加脚本。下面是一个简单的例子。根据需要取消注释if语句,或添加更多语句。
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() {
  ?>
  <!-- script here -->
  <?php
}
 当然,您可以省去PHP if语句,始终打印脚本,只打印脚本中间的角色。但我不认为这是一种干净的做事方式。
add_action( \'wp_head\', \'my_print_chatbot_script_with_role\' );
function my_print_chatbot_script_with_role() {
  $user = wp_get_current_user();
  ?>
  <script>
    // script...
    title: "TestBot",
    initPayload: <?php echo (array) $user->roles[0]; ?>,
    customData: { language: "en" },
    // script...
  </script>
  <?php
}
 第三种选择是将脚本放入单独的js文件中
enqueue 它使用PHP。然后
inline 要在主脚本文件中使用的角色数据。
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\'
  );
}