注册后通过电子邮件发送moodle用户数据

2023-12-11

我需要在我的 Moodle 网站上进行用户注册后向管理员发送一封自定义电子邮件,但我希望它显示所有用户信息,我进行了很多搜索并找到了这个link,它会向管理员发送一封带有用户名的自定义电子邮件,但我一直在尝试发送更多信息,例如我添加的自定义字段,甚至是电话等默认字段,但我找不到方法,我希望你能帮忙我。


你可以使用user_created event.

还没有测试过这个,但你可以创建一个本地插件

创建本地文件夹

/local/newuser/

创建事件.php

/local/newuser/db/events.php

将其粘贴到 events.php 中

defined('MOODLE_INTERNAL') || die();

$handlers = array (
    'user_created' => array (
        'handlerfile'      => '/local/newuser/lib.php',
        'handlerfunction'  => 'local_newuser_user_created',
        'schedule'         => 'instant',
    ),
);

创建 lib.php 文件

/local/newuser/lib.php

将其粘贴到 lib.php 中

defined('MOODLE_INTERNAL') || die();

function local_newuser_user_created($user) {
    global $DB;
    
    $body = '';

    // Original fields.
    foreach ($user as $field => $value) {
        $body .= $field . ' = ' . $value . "\n";
    }
    
    // Custom fields.
    $sql = "SELECT f.id, f.name, d.data
            FROM {user_info_field} f
            LEFT JOIN {user_info_data} d ON d.fieldid = f.id AND d.userid = :userid";
    $customfields = $DB->get_records_sql($sql, array('userid' => $user->id);
    foreach ($customfields as $customfield) {
        $body .= $customfield->name . ' = ' . $customfield->data . "\n";
    }
    
    // Send the email to the admin user
    $admin = get_admin();
    $subject = get_string('newuser');
    email_to_user($admin, $admin, $subject, $body);

    return true;
}

最后创建一个version.php

/local/newuser/version.php

并粘贴这个

defined('MOODLE_INTERNAL') || die();

$plugin->version = 2014012901; // Plugin version.
$plugin->requires = 2013051402; // Moodle version.
$plugin->component = 'local_newuser'; // Full name of the plugin (used for diagnostics).

然后在 Moodle 中转到站点管理 -> 通知来添加代码。然后创建一个用户,管理员应该会收到一封电子邮件:)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

注册后通过电子邮件发送moodle用户数据 的相关文章

随机推荐

  • 一些基本操作的 CPU 成本数量级

    回答后那么问题被否决了 我想和你核实一下 为了对我编写的代码的成本有一个初步的了解 我倾向于以这种方式扩展操作 堆分配比堆栈分配慢大约 1000 倍 与屏幕 输出的IO约为1000次 比堆分配慢 硬盘上的 IO 大约慢 1000 倍 与屏幕
  • 如何使用 Passport-google-oauth 成功身份验证后重定向到原始页面

    我正在使用节点 Passport google oauth 模块 并尝试使用基于会话的方法成功进行身份验证后将页面重定向回原始路径Node js Passport 的 Google 策略上的自定义 returnUrl 但是 我发现在回调中
  • PHP MYSQL 多维数组

    我在尝试从两个单独的 MySQL 选择创建多维数组时遇到了很大的麻烦 我一直在这里和谷歌搜索一整天 最后不得不承认失败并寻求一些帮助 我也是新手 这没有帮助 我有两个表 一个表包含每个 id 的单行结果 另一个表可以包含一个 id 的多行结
  • 如何确定git中最后合并的分支?

    我需要确定哪个是最后合并到 master 的分支 我一直在搜索 git 文档 但我仍然有点迷失 到目前为止我已经找到了命令 假设master是我当前的分支 git log oneline graph decorate 这为我提供了这样的输出
  • 如何进行合并?

    我有一个主分支和一个功能分支 feature 分支有一些更改 但 master 分支有很多更改 例如从存储库中删除了 10 个项目 问题是如何将feature分支合并回master分支 1 将feature与master合并 然后maste
  • 如何让ffmpeg根据设置的高度比例计算修改后的宽度?

    找到解决方案后 我的 Android 上所有 webm 到 MP4 编解码器转换错误的根源 我遇到了另一个问题 分解我的问题 大多数设备都支持哪些 MP4 分辨率 我知道它们从某个高度值开始经过 p 才能工作 例如 720p X720 有没
  • 从列表创建多个复选框并获取所有值

    我想从一个大列表中生成多个复选框 并获取所有值 这是到目前为止我的代码 列表可能更大 from Tkinter import def print ingredients args values cheese cheese get ham h
  • 如何在 python 中将多图像 TIFF 转换为 PDF?

    我想在 python 中将多图像 TIFF 转换为 PDF 我是这样写的代码 这段代码怎么行不通 我应该如何改变它 images img Image open multipage tif for i in range 4 try img s
  • PHP - 打印带有控制字符的字符串

    有没有办法让 PHP 输出一个带有 r n 和 n 的字符串作为实际文本而不是换行符 我看到一个有趣的问题 n 上的explode 无法在Windows 服务器上正常运行 编辑 r n 来自用户在输入文本区域时按 Enter 键 所以我没有
  • 安卓图片上传

    你好 我是 Android 开发新手 我想知道如何在 Android 中上传图像 我没有找到任何有用的教程 你能给我一些指导吗 请帮助我 我为你构建了这个小方法 private boolean handlePicture String fi
  • JSON 完成的自定义扩展在双引号中不起作用

    我正在开发一个 VSCode 扩展 它应该通过额外的代码完成来增强 JSON 编辑 因此我添加了四个虚拟建议 foo foo1 foo2 foo3 开始测试 当在 JSON 键后输入冒号时 它会按预期工作 此外 当我在空对象中触发完成时 它
  • Tensorflow v1.10:将图像存储为字节字符串或每个通道?

    Context 据了解 目前 TF 的 Record 文档还有一些不足之处 我的问题是关于什么是最佳存储 一个序列 它的每个元素类别概率 以及 一些 上下文 信息 例如序列的名称 作为 TF 记录 也就是说 这个问题考虑将序列和类概率存储为
  • karate.callSingle 在 karate-config.js 中找不到 .feature 文件

    我正在使用空手道 v0 9 6 它是一个很棒的工具 我有超过 1000 个场景 每个场景都需要令牌才能工作 因此我在 karate config js 中使用 callSingle 来创建和缓存令牌 我使用独立的 jar 文件 我的 kar
  • SFINAE 未编译[重复]

    这个问题在这里已经有答案了 我以前经常使用 SFINAE 但我有一个非常非常简单的示例 但今天无法运行 class X public template
  • 一次测试 C 中的所有位字段

    假设我有一个 C 结构定义为 struct data some memebers int flag a 1 int flag b 1 int flag c 1 some other members 有没有办法利用位域在内存中表示为单个 in
  • Spring data JPA自定义存储库,如何应用逻辑

    我尝试实现 JPA 自定义存储库 我有一个像这样的过滤器对象 public class FilterPatient private String surname private String name private String cf a
  • 谷歌地图透明图像叠加

    我正在寻找一些覆盖地图的透明固定位置图像的示例 移动地图时 透明图像不应移动 并且标记应出现在图像顶部 有谁知道有什么例子吗 有一种方法可以将一个 div 放在另一个 div 之上 它将 标记放置在地图的中心 http code googl
  • 如何更改内置的 Laravel 5 身份验证系统?

    我是第一次使用 Laravel 5 我之前曾与 4 人合作过 Laravel 附带了一个 AuthenticatesAndRegisterUsers php 文件 它可以处理大部分内容 并使用户注册和登录变得非常容易 我想调整此文件以满足我
  • 在Django中使用url_has_allowed_host_and_scheme后什么时候需要使用iri_to_uri?

    In the Django 3 0 发行说明 此评论是关于url has allowed host and scheme 为了避免有效范围可能出现的混淆 私有内部效用is safe url 被重命名为url has allowed host
  • 注册后通过电子邮件发送moodle用户数据

    我需要在我的 Moodle 网站上进行用户注册后向管理员发送一封自定义电子邮件 但我希望它显示所有用户信息 我进行了很多搜索并找到了这个link 它会向管理员发送一封带有用户名的自定义电子邮件 但我一直在尝试发送更多信息 例如我添加的自定义