我在drupal 7上使用ubercart。优步版是3.x.我试图搜索一个在付款成功后运行的钩子。我想在此之后向DB插入更多细节。 是否有任何钩子可以完成并成功付款。 我相信大多数项目都会在付款后涉及一些工作,因此必须有一个钩子或方法来实现它。
感谢所有人 史密斯
答案 0 :(得分:3)
对hook_uc_order()
案例使用$op = 'save'
(documentation)。并检查$order->order_status
以了解订单状态。
答案 1 :(得分:1)
使用hook_uc_order确定订单成功完成时所需的条件是:
我不确定#2是否绝对需要,但它似乎并没有受到伤害。
因此,此代码将让您在订单成功完成时采取行动:
function MODULE_NAME_uc_order($op, $order, $arg2) {
if($op == 'update' && $order->order_status == 'payment_received' && $arg2 == 'completed'){
//do something on successful order completion
}
}
答案 2 :(得分:0)
我认为没有特定的钩子,而是使用规则和操作,只需根据下面的代码创建一个操作,然后转到配置,工作流,规则并将您的操作添加到现有规则“更新订单完全付款的状态“或创建单独的规则,确保添加条件以检查价值订单:付款余额是< = 0.
/**
* Implements hook_rules_action_info().
*
* Add rules action to process order after payment
*/
function my_module_rules_action_info() {
$order_arg = array(
'type' => 'uc_order',
'label' => t('Order'),
);
$actions['my_module_action_process_order'] = array(
'label' => t('My Module Process Ubercart Order'),
'group' => t('My Module'),
'base' => 'my_module_action_process_order',
'parameter' => array(
'order' => $order_arg,
),
);
return $actions;
}
function my_module_action_process_order($order) {
// Do Whatever Here
}