web-dev-qa-db-ja.com

購入時にすべての分類用語からUserPointsを差し引きますか?

OKそれで、誰かが私を正しい方向に向けることができるかどうか疑問に思いました。現在、通貨でアイテムを購入したり、ポイントを購入に使用したりするために、 ユーザーポイントモジュールberCart を実行しています。これで、1つの小さなことを除いて、必要に応じてトランザクションを機能させることができました。 bercart API では、「一般」などの単一のカテゴリから購入ポイントを差し引くことしかできません。使用にポイントがあるすべてのカテゴリから、製品の購入に使用されたポイントを差し引きたいのですが、これを行う方法を知っている人はいますか?

2

ユーザーポイントカテゴリの数とその実行方法(コードありまたはコードなし)に依存するオプションはほとんどありません。

オプション1: Ubercart内のユーザーポイントカテゴリごとに個別のアクションを作成します。

オプション2:カスタムPHPコードを入力し、次の手順を実行します。

  • ユーザーポイント辞書をロードする-userpoints_get_vid()
  • その中のすべての用語をループし、ポイントを引きます。

サンプルコード:

$userpoints_vid = userpoints_get_vid();
$userpoints_terms = taxonomy_get_tree($userpoints_vid);
foreach ($userpoints_terms as $term) {
  // Build the params for this transaction.
  $params = array(
    'points' => -100,
    'moderate' => FALSE,
    'term_id' => $term->tid,
    'entity_id' => $order->order_id,
    'entity_type' => 'order',
  );
  // Subtract the points. This will call automatically all UP hooks.
  userpoints_userpointsapi($params);
}

オプション3:$orderを引数として受け入れる上記のコードからルールアクションを作成することもできます。これには少し時間がかかりますが、正しい方法です。

1
Aram Boyajyan