我用应急支付作为支付网关。有时它不会在成功的付款后重定向,而且只发生在生产过程中。如果发生这种情况,我想要创建一个备用选项,如果使用一个钩子,我找到了woocommerce_payment_complete
和/或woocommerce_order_status_changed
。
我已经把它加到我的主控制器上了。
public function init()
{
add_action('woocommerce_order_status_changed', [$this, 'status_changed', 10, 3]);
add_action('woocommerce_payment_complete', [$this, 'woocommerce_payment_complete']);
}
public function status_changed( $id, $previous_status, $next_status )
{
$order = new WC_Order($id);
$order->update_status( 'completed' );
var_dump('COMPLETE', $order);
error_log('status_changed');
exit;
}
public function woocommerce_payment_complete( $order_id )
{
$order = wc_get_order( $order_id );
$order->update_status( 'completed' );
var_dump('COMPLETE', $order);
error_log('woocommerce_payment_complete');
exit;
}
我在每个方法上添加了一个转储,并添加了一个错误日志来检查这些操作是否实际被调用,但它们都没有被调用。
是否有任何方法可以触发这个钩子,或者有另一个钩子可以用来做这个呢?
提前感谢!
发布于 2022-07-22 10:17:43
您可以将woocommerce_payment_complete_order_status
钩子用于相同的
add_filter( 'woocommerce_payment_complete_order_status', 'completed_orders', 9999 );
function completed_orders() {
return 'test';
}
https://stackoverflow.com/questions/73078587
复制相似问题