私は Drupal Commerce サイトで支払いに ユーザーポイント (=コイン)を使用しています。
私は特別なケースがあります-ユーザーがコインで購入する必要のある製品には、ユーザーが入力するいくつかのフィールドが必要です。そのため、このケースではコンテンツタイプを使用しました。ユーザーが新しいコンテンツタイプを追加すると、ユーザーのアカウントから10コインが削減されます。これは既に正常に機能しています。
これで、このコンテンツタイプにも分類法があり、ユーザーはそれに用語を追加できます。これは、ユーザーがフォームに入力するときに後でフォームに表示されます。
問題:
チェックする分類用語のチェックボックスの数を数え、それらにコストを掛ける必要があります。したがって、3/5がチェックされている場合、10コイン* 3 = 30コインは、ユーザーが新しいコンテンツタイプを追加したときの最終的な価格になります。
Rules でこれは可能ですか?私はそれを実現する方法を知りません(私はフロントエンド開発者であり、PHPコーダー)ではありません)。
はい、これは Rules で完全に可能であり、ジョブを完了するためにPHPは必要ありません。あなたの場合、そのようなルールの重要な部分はLoopを実行するためのルールアクション。このようなループに慣れていない場合は、「-」というタイトルのチュートリアルを参照することを強くお勧めします。 リストとループ "。
あなたのケースでは、(少なくとも)これらのルールアクションを使用する必要があります:
nr_of_checked_terms
のようなマシン名で)、初期値は「0」。nr_of_checked_terms
の値を「1」だけ増やします。ループが終了すると、nr_of_checked_terms
の値は、チェックされた実際の用語数になります。末尾に別のルールアクションを追加して、使用可能なトークンの1つとしてnr_of_checked_terms
を使用して実際の乗算を実行します。
完了
PS 1:ここでの質問のバリエーションのようないくつかのサンプルルールについては、「 ルールを使用して無制限の用語参照フィールドに複数の値を設定する方法 」に対する私の回答を参照してください。
PS 2:これはD7についてだと思います...