このリンクを使用してUserPointsストアをセットアップしました: Drupal 7-単純なUserPointsストアをセットアップする方法 。
何らかの理由で、ノード(ストアアイテム)を購入(フラグ)し、数量に応じて、トランザクションがブロックされないよりも多くのUserPointを入れたため、ユーザーポイントの残高がマイナスになっています。
問題:
この問題が解決され、いくつかの間違った設定を設定しました(私はすべてを再確認したので、そうは思いません)
UserPointsがネガを入力しないように、独自のカスタム設定を行う必要があります。
変数を設定して渡す方法はありますか(enough_points=true
)(1番目の)ルール「ユーザーポイントをチェック」から、それを(2番目の)ルール「フラグアイテム」の条件として使用しますか?
ユーザーの現在の合計ユーザーポイントに関連するルール条件はありません。この例のようにカスタムPHPコードを使用することを除きます(これは、ルール条件で使用できますExecute custom PHP code条件、たとえばある種の比較を行うため):
global $user;
$current_points = userpoints_get_current_points($user->uid, 'all');
if ($current_points < 0) {return TRUE;}
ただし、「ユーザーのユーザーポイントを読み込む」というルールアクションがありますが、特定のカテゴリ、またはすべてのカテゴリをまとめて。このルールアクションは、リクエストされたカテゴリのユーザーポイントの量を含むルール変数(名前と説明を指定できます)を提供します。その後、この変数を後続のルールアクションで使用できます。
ルール条件内でその変数を使用する場合は、次の2つの方法があります。
ユーザーがノード(=ルールイベント、必要なルールイベントに変更できる)の更新を実行した後、ユーザーの現在の合計ユーザーポイントに関するメッセージを表示する基本的な例を次に示します。
{ "rules_display_userpoints_after_updating_content" : {
"LABEL" : "Display userpoints after updating content",
"PLUGIN" : "reaction rule",
"OWNER" : "rules",
"REQUIRES" : [ "userpoints_rules", "rules" ],
"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" } }
]
}
}
必要に応じて、ルールUIを使用して上記のルールを自分のサイトにインポートします。