php - 在 Woocommerce 中将 COD 默认订单状态更改为 "On Hold"而不是 "Processing"

标签 php wordpress woocommerce orders payment-method

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

我试过这个解决方案:Set WooCommerce order status when order is created from processing to pending

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

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

感谢您的帮助,我不知道如何解决,因为我找不到导致插件状态更改的 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 ); 

最佳答案

更新: you found in Github的代码过时,笨拙和复杂,因为有a dedicated filter hook现在。你最好试试这个轻量级有效的代码,它会为设置默认的订单状态。 “货到付款”支付网关 (COD) 到 “暂停” :

add_filter( 'woocommerce_cod_process_payment_order_status', 'change_cod_payment_order_status', 10, 2 );
function change_cod_payment_order_status( $order_status, $order ) {
    return 'on-hold';
}

代码位于您的事件子主题(事件主题)的 functions.php 文件中。测试和工作。

enter image description here

So the default order status set by the payment gateway is now "On Hold" instead of "Processing"

关于php - 在 Woocommerce 中将 COD 默认订单状态更改为 "On Hold"而不是 "Processing",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53280800/

相关文章:

php - session_start() 失败 : Permission denied (13)

php - 带有 Codeigniter 的 Croppic jQuery 插件

php - 将 Redis Cluster 用作 session 处理程序时是否可以实现高可用性?

php - 仅在所有 WooCommerce 产品循环上显示价格后缀

mysql - WordPress 中的编码问题(希伯来文 UTF8)

html - 找不到更改位置 'background-attachment: fixed;'

php - 当购物车中只有特定产品时,删除 WooCommerce 结账条款和条件

php - 有没有更好的方法在 PHP/MySQL 中创建字母分页索引?

javascript - 在我的自定义脚本之后 WooCommerce AJAX 重新加载页面

php - Woocommerce:在订单页面上显示产品变体描述