我正在开发针对woocommerce的商家安全Unipay(MSU)的自定义API,并且需要在成功付款后更改数量。
这是过程:
一切运作良好,但无法找到钩子在哪里以及如何标记所有产品从购物卡支付和更改数量。
我怎样才能做到这一点?
谢谢
通常在付款过程之后,客户被重定向到“谢谢”页面(或“收到订单”,客户可以查看他的付款订单)...通常情况下,购物车在某处清空(我不记得到底在哪里)。
因此,如果没有清空,你需要做例如(2个不同的钩子选项):
add_action( 'woocommerce_checkout_order_processed', 'order_received_empty_cart_action', 10, 1 );
// or
// add_action( 'woocommerce_thankyou', 'order_received_empty_cart_action', 10, 1 );
function order_received_empty_cart_action( $order_id ){
WC()->cart->empty_cart();
}
代码放在活动子主题(或主题)的function.php文件中,或者放在任何插件文件中。
你必须测试一下,看看它是否方便......
使用此代码,将跳过付款。 (VersiónWC3.5.7)。
我包括class-wc-checkout.php
行983 - 989的代码:
do_action( 'woocommerce_checkout_order_processed', $order_id, $posted_data, $order );
if ( WC()->cart->needs_payment() ) {
$this->process_order_payment( $order_id, $posted_data['payment_method'] );
} else {
$this->process_order_without_payment( $order_id );
}
如果我们清理购物车,它需要其他路线:
$this->process_order_without_payment( $order_id );