Woocommerce sandbox paypal show order status payment pending
即使使用 Paypal Sandbox 完成结帐流程,订单状态也会显示付款待处理。
我的配置错了吗?
我也有同样的问题,可能有很多问题,但我不知道如果实物产品 woocommerce 在付款后无法完成订单,那是因为您应该打包并发送到客户仍然需要卖家采取一些措施。
在class-wc-order.php core woocommerce中你可以找到这个函数
1 2 3 4 5 | public function payment_complete( $transaction_id = '' ) { ... $this->set_status( apply_filters( 'woocommerce_payment_complete_order_status', $this->needs_processing() ? 'processing' : 'completed', $this->get_id(), $this ) ); ... } |
如果产品不是虚拟的,needs_processing() 将返回 true。
我用过滤器 woocommerce_order_item_needs_processing 上的一个简单钩子改变了这种行为,您可以在函数 needs_processing()
中找到它
1 2 3 4 5 6 7 8 9 10 | /** * this hooks turn status complete for every order upon payment. */ add_filter('woocommerce_order_item_needs_processing','my_filter'); //see class-wc-order line 1368 to understand the return value function my_filter(){ return false; } |
但实际上,这个问题可能很多,所以这不是你的情况,然后看看这里的 woocommerce pay pal 文档 https://docs.woocommerce.com/document/paypal-standard/#section-21