编程语言
首页 > 编程语言> > php – 注册后发送moodle用户数据

php – 注册后发送moodle用户数据

作者:互联网

我需要在我的moodle网站上用户注册后向管理员发送自定义电子邮件,但我希望它显示所有用户iformation,我一直在搜索并发现这个link,它向管理员发送自定义电子邮件用户名,但我本来试图发送更多的信息,如我添加的自定义字段,甚至默认字段,如电话,但我找不到方法,我希望你帮助我.

解决方法:

您可以使用’user_created’事件.
http://docs.moodle.org/dev/Events_API#Users

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

创建一个本地文件夹

/local/newuser/

创建events.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中转到网站管理员 – >添加代码的通知.然后创建一个用户,管理员应该收到一封电子邮件:)

标签:moodle,php,email
来源: https://codeday.me/bug/20191007/1867002.html