Drupal 7 未调用hook\u commerce\u checkout\u complete

Drupal 7 未调用hook\u commerce\u checkout\u complete,drupal-7,drupal-commerce,Drupal 7,Drupal Commerce,在Drupal7和DrupalCommerce模块中的签出过程之后,我尝试执行一些业务逻辑。我已经阅读了文档,我可以使用hook\u commerce\u checkout\u complete,但它没有被调用 function api_manager_commerce_checkout_complete($order) { $ow = entity_metadata_wrapper('commerce_order', $order); foreach ($ow->com

在Drupal7和DrupalCommerce模块中的签出过程之后,我尝试执行一些业务逻辑。我已经阅读了文档,我可以使用hook\u commerce\u checkout\u 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);
    }

}

供您参考,我已经在结帐配置中禁用了“付款”和“账单信息”

每当Drupal中实现了一个新的钩子,您就需要清除缓存(类)。只有到那时,特定的钩子才可用,并在调用时触发

如果您使用的是devel模块,那么可以通过使用函数检查Drupal是否能够识别钩子。Devel模块为您提供了一个方便的工具,您可以随时尝试这些代码片段

dpm(module_implements('commerce_checkout_complete'));

如果您的模块名称没有作为上述函数的输出列出,则表示您的钩子无法识别。如前所述,在这种情况下,请清除缓存。

只要Drupal中实现了一个新的钩子,就需要清除缓存(类)。只有到那时,特定的钩子才可用,并在调用时触发

如果您使用的是devel模块,那么可以通过使用函数检查Drupal是否能够识别钩子。Devel模块为您提供了一个方便的工具,您可以随时尝试这些代码片段

dpm(module_implements('commerce_checkout_complete'));
如果您的模块名称没有作为上述函数的输出列出,则表示您的钩子无法识别。如前所述,在这种情况下,请清除缓存