web-dev-qa-db-ja.com

Commerceから(ルールを使用して)注文IDを取得するにはどうすればよいですか?

注文が正常に完了したときに関数を呼び出す必要があり、その関数はそれを呼び出したOrderIDを知る必要があります。

ルールを設定しました

イベント:「チェックアウトプロセスの完了」

条件:なし

アクション:[カスタム関数]

私は、order_idを渡す2つの可能な方法を認識しています。

  1. データセレクターを使用して(これが何であるかは正確にはわかりません)、「値」引数を介して渡します-または-
  2. 関数内から関数commerce_cart_order_id($ uid)を呼び出す。

commerce_cart_order_id($ uid)は何も返さないようです。

global $user;
$uid = $user->uid;  
$order_id = commerce_cart_order_id($uid);
drupal_set_message(t('OrderID:  ' . $order_id), 'status');

誰かが私が間違っているかもしれないことについて何か提案がありますか?どうもありがとう。

4
Jymz

あなたが述べたように、あなたは注文の完了に基づいて行動したいので、完了時に呼び出されるdrupal_commerceのフックがあります。

hook_commerce_checkout_complete($order)

このフックをカスタムモジュールの注文完了時のアクションに使用しました。カスタムモジュールでこのフックを呼び出すと、$ order変数に注文に関連するすべての情報が含まれます。カスタムモジュールでこれを確認してください-

function MYMODULE_commerce_checkout_complete($order){
  dpm($order);
}
1
RajeevK