特定の役割のすべてのユーザーにWebフォームデータを電子メールで送信することはできますか?
Webフォームの電子メール設定には、そのようなオプションはありません。
私は Rules も試しましたが、ルールでは、WebフォームトークンがWebフォーム送信データをレンダリングしています。
ここに私のルールが添付されています。
{ "rules_send_email_to_ce_user_on_webform_submit" : {
"LABEL" : "Send email to CE user on webform submit",
"PLUGIN" : "reaction rule",
"ACTIVE" : false,
"OWNER" : "rules",
"REQUIRES" : [ "rules", "webform_rules" ],
"ON" : { "webform_rules_submit" : [] },
"IF" : [
{ "webform_has_id" : {
"form_id" : "[form-id:value]",
"selected_webform" : { "value" : { "webform-client-form-121" : "webform-client-form-121" } }
}
}
],
"DO" : [
{ "webform_submissions_load" : {
"USING" : { "nid" : "121", "sid" : [ "data:sid" ] },
"PROVIDE" : { "submissions" : { "submissions" : "Fetched submissions" } }
}
},
{ "mail_to_users_of_role" : {
"roles" : { "value" : { "11" : "11" } },
"subject" : "Form submission from: [node:title]",
"message" : "DATA\r\n[data:data]\r\n\r\nRAW\r\n[data:data-raw]\r\n\r\nField value\r\n[data:title-value]"
}
}
]
}
}
他の方法は?
質問のエクスポートされたルールから、 Webform Rules モジュールがすでに有効になっているようです(以下の前提条件...)。
[〜#〜] vbo [〜#〜] が有効なビューの結果を ルールで処理することを試してみてください。ルールは2つのルールアクションを実行します。
このために作成する必要があるVBOビューの詳細:
詳細については、チュートリアル「 VBOが有効なビューの結果をルールで処理する方法は? 」を参照してください。
hook_form_alterで、Webフォームの追加の送信ハンドラを追加できます。次に、送信ハンドラーで、その役割を持つユーザーのリストを取得します。以下のコードを試して、ユーザーのリストを取得できます。次に、送信されたデータをこれらのユーザーに電子メールで送信します。
// get role data by role name
$role_data = user_role_load_by_name('member');
// get list of users with specific role
$uids = db_select('users_roles', 'ur')
->fields('ur', array('uid'))
->condition('rid', $role_data->rid, '=')
->execute()
->fetchCol();
$users_list = user_load_multiple($uids);
これにはもっと良い解決策があるかもしれません。しかし、試すことができます。