2

我对 Drupal 几乎是全新的,我正在从事一个项目,我们的目标之一是在一组用户注册后向他们发送不同的注册电子邮件。我的想法是创建一个可以在电子邮件中使用的令牌,该令牌将由用户的角色确定。我进入了 user.module 并添加了这个。角色;

if($welcomer == 'Student Member'){
$copying = "SPECIAL EMAIL TEXT";
}
else{
$copying = "GENERAL EMAIL TEXT";
} ?>

然后在令牌部分我设置了这个

<?php '!sendit' => $copying, ?>

到目前为止,如果使用它,它什么也不做,即使 else 语句也无法触发。所以我的问题是,我该怎么做呢?这是最佳方式还是有更简单的方法?

4

1 回答 1

0

不要破解 Drupal 核心,否则当您更新 Drupal 时,所有代码都将丢失。

我目前没有要测试的环境,所以这段代码没有经过测试,但你想要这样的东西:

function yourModuleName_form_user_register_alter(&$form, &$form_state) {
    // Add your own function to the array of submit callbacks
    $form['#submit'][] = 'yourModuleName_user_register_submit';
}

function yourModuleName_user_register_submit($form, &$form_state) {
    // I don't think this line is correct but don't have an environment to test in at the moment
    // Do a print_r here on $form_state['values'] and see where the user roles are stored
    $roles = $form_state['values']['roles'];

    if(in_array('Student Member', $roles) {
        // send student email here
    } elseif(in_array('Teacher Member', $roles) {
        // send teacher email here
    }
}
于 2012-12-20T12:03:24.180 回答