我正在使用针对商业智能商品的商家安全支付宝(MSU)的自定义API,并且需要在成功付款后更改数量。
以下是流程:
一切运作良好,但无法找到从购物卡支付和更改数量标记所有产品的地点和方式。
我该怎么做?
由于
答案 0 :(得分:5)
通常在付款过程之后,客户被重定向到"谢谢你"页面(或"收到订单"客户可以查看他的付款订单)...通常情况下,购物车在某处清空(我不记得确切的位置)。
因此,如果没有清空,你需要使用(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文件中,或者放在任何插件文件中。
你必须测试一下,看看它是否方便......
答案 1 :(得分:1)
使用此代码,付款将被跳过。 (VersiónWC 3.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 );
}
如果我们清洁购物车,它将采用else路线:
$this->process_order_without_payment( $order_id );