我在drupal 7上使用ubercart。ubercart的版本是3.x.我試圖搜索很多支付成功後運行的鉤子。我想在此之後向數據庫插入更多的細節。 是否有任何掛鉤完成和成功的付款。 我相信大部分項目在付款後都會涉及一些工作,所以必須要有一個鉤子或方法來完成。什麼是成功支付在ubercart 3.x爲drupal 7的鉤子
感謝所有 史密斯
我在drupal 7上使用ubercart。ubercart的版本是3.x.我試圖搜索很多支付成功後運行的鉤子。我想在此之後向數據庫插入更多的細節。 是否有任何掛鉤完成和成功的付款。 我相信大部分項目在付款後都會涉及一些工作,所以必須要有一個鉤子或方法來完成。什麼是成功支付在ubercart 3.x爲drupal 7的鉤子
感謝所有 史密斯
使用hook_uc_order()
(documentation)與$op = 'save'
情況。並檢查訂單的狀態$order->order_status
。
我不認爲有一個具體的鉤子,而是使用規則和動作,只需根據下面的代碼創建一個動作,然後轉到配置,工作流程,規則並將您的動作添加到現有規則「更新對全額付款」或創建一個單獨的規則,確保你添加一個條件的訂單狀態,以檢查值順序爲:支付平衡是< = 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
}
使用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
}
}
這是不正確的,我想這沒有運氣,多少測試後,我能找出什麼值實際上對應於一個成功的訂單完成,看到我的答案。 – DrCord