我有一个webform页面,用户提交其查询。在表单提交时,将向用户和管理员发送确认邮件。我已经安装了Custom Webform Comment模块,用户和管理员都可以通过该模块注释并更改表单中的状态,现在我想将每条评论和状态更改的邮件发送给管理员和用户。
我尝试使用Webform Rules模块,但它无效。该模块未发送邮件
我可以通过其他方式或模块向用户发送邮件吗?
Webform版本7.x-4.15
提前致谢:)
答案 0 :(得分:1)
你可以在你的自定义表单中使用hook_webform_submission_update来发送电子邮件,或者你可以使用action和triger
为此您必须添加新的自定义模块,您可以参考此链接: - https://www.drupal.org/docs/7/creating-custom-modules/getting-started
添加此代码
参考此代码
function <moduleName>_webform_submission_update($node, $submission)
{
// you can send mail like this
$message = 'New signup email address'; // Body of your email here.
//you can also set any form detail using $node,$submission variable
$params = array(
'body' => $message,
'subject' => 'Website Information Request',
'headers'=>'simple',
);
$to = "Your Email Address";
drupal_mail('contactform', 'send_link', $to, language_default(), $params, 'demo@demo.com', TRUE);
}
答案 1 :(得分:0)
我通过在Custom Webform Comment模块中插入hook_mail代码解决了上述问题。
如果其他人遇到同样的问题,请在custom_webform_comments.module文件中插入代码。
@OnClick(R.id.loadMore)
public void onLoadMoreClick() {
loadMoreData();
}
在上面的代码行之后,将以下代码放在数据库插入查询后面的函数custom_webform_comments_commentform_submit()中,以便在每次评论更新后发送邮件。
/**
* Implements hook_mail().
*/
function custom_webform_comments_mail($key, &$message, $params) {
switch($key) {
case 'custom_webform_comments_email':
$message['subject'] = t('Submit Request Form update');
$message['body'][] = t('You have got a new comment and status update on your submitted form.',array('@site-name' => variable_get('site_name','example.com')));
$message['body'][] = t(variable_get('custom_webform_comments_email_text',''));
break;
}
}
与在每次状态更新时获取邮件类似,请更新以下功能。
function custom_webform_comments_commentform_submit($form, $form_state) {
$fv = $form_state['values'];
$insert1 = db_insert('custom_webform_comments')
->fields(array(
'cid' => NULL,
'comment' => $fv['addnew']['comment'],
'subject' => $fv['addnew']['subject'],
'nid' => $fv['addnew']['nid'],
'sid' => $fv['addnew']['sid'],
'commenter_user_id' => $fv['addnew']['commenter_user_id'],
'comment_parent' => '0',
'ts' => date("Y-m-d H:i:s")
))->execute();
if($insert1)
{
global $user;
$params = array(
'body' => $message,
'subject' => 'Website Information Request',
'headers'=>'simple',
);
$message = drupal_mail('custom_webform_comments', 'custom_webform_comments_email', $user->mail, language_default(), $params, 'test@example.com', TRUE);
if (!empty($message['result'])) {
watchdog('mail', 'Mail sent Successfully (from %from to %to) for comment update', array('%from' => $message['from'], '%to' => $message['to']), WATCHDOG_NOTICE);
//drupal_set_message("Mail sent!");
}
else{
watchdog('mail', 'Error sending e-mail (from %from to %to).', array('%from' => $message['from'], '%to' => $message['to']), WATCHDOG_ERROR);
drupal_set_message(t('Unable to send e-mail. Contact the site administrator if the problem persists.'), 'error');
}
}
return $insert1;
}