我正在为woocommerce的商家安全Unipay(MSU(开发自定义API,付款成功后需要更改数量。
这是过程:
- 客户收集购物袋中的物品
- 当单击"全部付款"时,它被重定向到需要填写信用卡信息的MSU 付款
- 后,MSU将他返回PHP发送电子邮件并打印有关付款的消息的网站。
一切正常,但找不到钩子在哪里以及如何标记已支付的购物卡中的所有产品并更改数量。
我该怎么做?
谢谢
通常在付款过程之后,客户会被重定向到"谢谢"页面(或"订单已收到",客户可以在其中查看其已付款订单(...通常推车被清空在某个地方(我不记得具体在哪里(。
因此,如果没有清空,则需要例如使用(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();
}
代码进入功能.php活动子主题(或主题(的文件或任何插件文件中。
你必须测试一下,看看它是否方便......
使用此代码,将跳过付款。(Versión WC 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 );