相关疑难解决方法(0)

WooCommerce:自动完成付款订单(取决于付款方式)

通常,wooCommerce应该自动完成虚拟产品的订单.但它没有,这是一个真正的问题,甚至像BUG一样.

所以在这一点上你可以找到有用的东西(但不是很方便):

1)一个代码片段(你可以在wooCommerce docs中找到):

/**
 * Auto Complete all WooCommerce orders.
 */
add_action( 'woocommerce_thankyou', 'custom_woocommerce_auto_complete_order');
function custom_woocommerce_auto_complete_order( $order_id ) {
    if ( ! $order_id ) {
        return;
    }

    $order = wc_get_order( $order_id );
    $order->update_status( 'completed' );
}
Run Code Online (Sandbox Code Playgroud)

但此代码段不适用于BACS*,付款时付款和支票付款方式.它适用于Paypal和信用卡网关支付方式.

*BACS 是直接银行转账付款方式

而......

2)插件: WooCommerce自动完成订单

此插件适用于所有付款方式,但不适用于其他信用卡网关付款方式.

我的问题:

在第1点中使用(作为基础)wooCommerce代码段:

如何实现基于woocommerce支付方式的条件代码?

我的意思是:如果付款方式不是"BACS","付款时付款"和"支票",则应用代码段(对于虚拟产品的付款订单,更新状态为"已完成").

我不是一个wooCommerce巨型专家编码器,所以我还没有找到如何在woocommerce订单中定位付款方式.

一些帮助将是非常好的.

谢谢.

php wordpress payment-gateway orders woocommerce

27
推荐指数
2
解决办法
1万
查看次数

在 Woocommerce 中将 COD 默认订单状态更改为“暂停”而不是“正在处理”

我需要帮助解决与插件“WooCommerce Pay for Payment”相关的问题,该插件计算运费中的一些额外费用。问题是,这个插件会自动设置“处理”状态,这会导致感谢电子邮件付款(在本地付款的情况下)并且不发送有关新订单的电子邮件通知,因此客户感到困惑(我没有发送任何钱,我收到了电子邮件“感谢您的付款”)。

我尝试了这个解决方案:当订单从处理到待处理时设置 WooCommerce 订单状态

但它只会将订单状态更改回“暂停”,但无论如何都会发送电子邮件感谢付款。

我只需要在每封新订单电子邮件中向客户发送有关新订单的一件事,仅此而已(我想将状态更改为手动“处理”)。

感谢您的帮助,我不知道如何解决,因为我找不到导致插件状态更改的 PHP 文件。

编辑:对不起大家。这是woocommerce插件中的COD问题。不支付我提到的付款。Woocommerce COD 自动设置“处理”状态。

我在 github 上找到了解决方案:here

它的第一个代码。

基于对这个问题的答案,这个代码的工作对我罚款:

function sv_wc_cod_order_status( $status ) {
    return 'on-hold';
}
add_filter( 'woocommerce_cod_process_payment_order_status', 'sv_wc_cod_order_status', 15 ); 
Run Code Online (Sandbox Code Playgroud)

php wordpress orders woocommerce payment-method

2
推荐指数
1
解决办法
6710
查看次数