後にビジネスロジックを実行しようとしていますDrupalコマースモジュールを使用したDrupal 7のチェックアウトプロセス。私はフックhook_commerce_checkout_completeを使うことができるというドキュメントを読んだが、呼び出されていない
function api_manager_commerce_checkout_complete($order) {
$ow = entity_metadata_wrapper("commerce_order", $order);
foreach ($ow->commerce_line_items as $line_item) {
$sku = $line_item->commerce_product->sku->value();
$record = array(
"uid" => get_user_id(),
"sku" => $sku,
"token" => uniqid(),
);
drupal_write_record("api_manager_product_user", $record);
}
}
ご参考までに、私はチェックアウト設定で「お支払い」と「お支払い情報」を無効にしました
回答:
回答№1の場合は3Drupalで新しいフックが実装されるたびに、キャッシュ(クラス)をクリアする必要があります。その後、その特定のフックが使用可能になり、呼び出されると起動されます。
develモジュールを使用している場合、あなたのフックがDrupalによってシステムによって認識されているかどうかチェックすることができます。 module_implements 関数。 Develモジュールは、あなたに便利なツールを提供します http://www.mysite.com/devel/php そのようなスニペットを試してみてください。
dpm(module_implements("commerce_checkout_complete"));
あなたのモジュールの名前が上記の関数の出力としてリストされていなければ、フックが認識されないことを意味します。