hook_commerce_checkout_complete未调用

时间:2012-10-19 11:38:01

标签: drupal-7 drupal-commerce

我正在尝试使用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 个答案:

答案 0 :(得分:3)

每当在Drupal中实现新的钩子时,您都需要清除缓存(类)。只有这样,特定的钩子才会被调用,并在被调用时被触发。

如果您正在使用devel模块,您可以使用module_implements函数检查Drupal是否系统识别您的挂钩。 Devel模块为http://www.mysite.com/devel/php提供了一个方便的工具来试用这些片段。

dpm(module_implements('commerce_checkout_complete'));

如果您的模块名称未列为上述功能的输出,则表示您的挂钩无法识别。如前所述,请在这种情况下清除缓存。