我在 drupal 7 上使用 ubercart。ubercart 版本是 3.x。我尝试大量搜索支付成功后运行的钩子。之后我想向数据库插入更多细节。是否有任何完整和成功付款的钩子。我相信大多数项目在付款后都会涉及一些工作,因此必须有一个钩子或方法来完成它。
感谢所有史密斯
使用hook_uc_order()
(文档)与$op = 'save'
案例。并检查$order->order_status
订单状态。
使用 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
}
}
我认为没有特定的钩子,而是使用规则和操作,只需根据下面的代码创建一个操作,然后转到配置、工作流、规则并将您的操作添加到现有规则“完整更新订单状态”付款”或创建一个单独的规则,确保您添加一个条件来检查价值顺序:付款余额 <= 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
}