【问题标题】:Woocommerce order status for virtual products with Woo Credit plugin带有 Woo Credit 插件的虚拟产品的 Woocommerce 订单状态
【发布时间】:2018-06-16 04:12:29
【问题描述】:

我正在经营我的商店,我销售的所有产品都是虚拟的,因为它们提供解锁码。

我正在使用名为 StockUnlock 的插件来实现与我的提供商的 API 访问:直到这里一切正常。

为了让 StockUnlock 插件在客户购买他的产品时采取行动,订单状态必须在收到付款后处理,但不是:
当我收到付款时,状态变为完成并且插件不起作用。我使用的付款方式是woo-credits(Woo Credits 插件)

如何解决这个问题,以获得处理状态而不是完成?

【问题讨论】:

  • 欢迎来到 StackOverflow!您的问题需要一些工作,以便社区可以更好地帮助您。看看how to ask a good question,再试一次。

标签: php wordpress woocommerce status orders


【解决方案1】:

此行为来自 Woo Credit 插件(您可以联系作者支持线程)

现在您可以尝试此代码,该代码仅针对“woo_credits”支付网关,一旦客户在“订单已收到”页面提交订单,订单状态将更新回“处理中”(谢谢)

add_action( 'woocommerce_thankyou', 'custom_woocommerce_auto_complete_paid_order', 999, 1 );
function custom_woocommerce_auto_complete_paid_order( $order_id ) {
    // Only for 'woo_credits' payment gateway
    if ( ! $order_id || 'woo_credits' != get_post_meta($order_id, '_payment_method', true) )
        return;

    // Get an instance of the WC_Order object
    $order = wc_get_order( $order_id );

    // Update order status back to 'processing'
    $order->update_status( 'processing' );
}

代码进入您的活动子主题(或活动主题)的 function.php 文件中。

此代码未经测试,但可以为您工作。

【讨论】:

  • 好吧,代码对我来说很好,只是另一个问题,我必须假设对于处于相同情况的其他支付网关,我可以使用相同的代码,只需更改支付的 ID,例如' woo_credits' 用于“BACS”
  • @kadergomez 是的,完全正确......我还有其他类似的答案,比如我的第一个答案:stackoverflow.com/a/35689563/3730754 ...
  • 好的,我正在尝试为这个其他插件“用户钱包信用系统”设置相同的代码,所以我使用您的确切代码并将“woo_credits”替换为“wpuw”并且不起作用,任何主意。提前致谢。
  • @kadergomez 尝试通过 Skype 聊天与我联系,我的 ID 是 marsloic
猜你喜欢
  • 2020-08-05
  • 2014-11-16
  • 1970-01-01
  • 2019-03-02
  • 2019-08-28
  • 2015-07-16
  • 1970-01-01
  • 2017-05-24
  • 2013-12-23
相关资源
最近更新 更多