Woocommerce沙盒贝宝显示订单状态付款待处理

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