ユーザーが特定の値(例:100)に達する特定のカテゴリのポイントを持っているときにメールを送信するルールを作成したいと思います。条件に問題があります。ユーザーポイントカテゴリ=コンテストがあります。
ルールイベント:ユーザーにポイントが付与されました
1番目の条件:データ比較比較するデータ:[userpoints-transaction:tid]、データ値:コンテスト
2番目の条件:i)試行、データ比較、userpoints-transaction:points、equals、100
ii)試行、データ比較、userpoints-トランザクション、ただし比較する値が整数を許可しないため、正しいオプションではありません
アクション:メールを送信します。メール、件名、メッセージがあります。
最初の条件だけで、ルールは機能します。誰かがコンテストカテゴリのポイントを獲得すると、他のカテゴリではなく、メールが届きます。
誰かが100コンテストユーザーポイントに達したときにメールを送信するように条件を把握できません。
誰かこれをしましたか?ありがとう
おそらく、ここで提供されているパッチを使用できます: https://drupal.org/node/1109992 。
前の回答で述べたパッチを使用する代わりに、以下に詳述するように、別のアプローチを使用することもできます...
確かに、ルールはありません条件からユーザーの現在のユーザーポイントのバランスを確認してください。ただし、このルールの例(ルールのエクスポート形式)をご覧ください。
{ "rules_display_userpoints_after_updating_content" : {
"LABEL" : "Display userpoints after updating content",
"PLUGIN" : "reaction rule",
"OWNER" : "rules",
"REQUIRES" : [ "userpoints_rules", "rules", "rules_conditional" ],
"ON" : { "node_update" : [] },
"DO" : [
{ "userpoints_rules_get_current_points" : {
"USING" : { "user" : [ "site:current-user" ], "tid" : "all" },
"PROVIDE" : { "loaded_points" : { "total_points" : "Number of points in all categories together" } }
}
},
{ "drupal_message" : { "message" : "You now have [total-points:value] points" } },
{ "CONDITIONAL" : [
{
"IF" : { "NOT data_is" : { "data" : [ "total-points" ], "op" : "\u003C", "value" : "100" } },
"DO" : [
{ "drupal_message" : { "message" : "You have sufficient points (you have [total-points:value] ...)." } }
]
},
{ "ELSE" : [
{ "drupal_message" : { "message" : "You DO NOT have sufficient points (you only have [total-points:value] ...)." } }
]
}
]
}
]
}
}
最初のルールアクション(ルール条件ではありません!)として、ユーザーの現在のユーザーポイント数を取得します。金額が100以上の場合は、「ポイントが足りません...」で始まるメッセージが表示されます。それ以外の場合は、「ポイントが足りません...」で始まります。メッセージの表示を対応するルールアクションに適合させて電子メールを送信するのは簡単です。
この例は、「すべてのカテゴリ」に一緒に適用されます。単一のカテゴリのみに制限する場合は、目的のカテゴリのtid
に変更します(0
や1
など)。
この例では、 条件付きルール モジュールを使用しています。このモジュールを使用する代わりに、対応するルールコンポーネントを作成して、同様のルールアクションを実行することもできますが、条件付きルールモジュールを使用して含めたいルール条件と同等の追加のルール条件を使用することもできます。次に、元のルールのルールアクション内でそのルールコンポーネントを実行します。詳細については、「 条件付きルールモジュールを使用する代わりの方法は何ですか? "」の回答を参照してください。
したがって、このルールを機能させるための手がかりは、最初のルールアクション「ユーザーのユーザーポイントをロードする」です。
PS:この質問はD7に関するものだと思います。