我正在尝试使用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);
}
}
有关您的信息,我已在结帐配置中停用了“付款”和“结算信息”
答案 0 :(得分:3)
每当在Drupal中实现新的钩子时,您都需要清除缓存(类)。只有这样,特定的钩子才会被调用,并在被调用时被触发。
如果您正在使用devel模块,您可以使用module_implements函数检查Drupal是否系统识别您的挂钩。 Devel模块为http://www.mysite.com/devel/php提供了一个方便的工具来试用这些片段。
dpm(module_implements('commerce_checkout_complete'));
如果您的模块名称未列为上述功能的输出,则表示您的挂钩无法识别。如前所述,请在这种情况下清除缓存。