php - 在 Woocommerce 中将 COD 默认订单状态更改为“暂停”而不是“处理中”
问题描述
我需要与插件“WooCommerce Pay for Payment”相关的问题的帮助,该插件计算了一些额外的运费。问题是,这个插件会自动设置“处理”状态,这会导致感谢电子邮件付款(在本地付款的情况下)并且不发送有关新订单的电子邮件通知,所以客户很困惑(我没有发送任何钱,我收到了电子邮件“感谢您的付款”)。
我尝试了这个解决方案:Set WooCommerce order status when order is created from processing to pending
但它只会将订单状态更改回“暂停”,但无论如何都会发送电子邮件感谢付款。
我只需要在每封新订单电子邮件中向客户发送有关新订单的信息,仅此而已(我想手动将状态更改为“处理中”)。
感谢您的帮助,我不知道如何解决,因为我找不到导致插件状态更改的 PHP 文件。
编辑:对不起大家。这是 woocommerce 插件中的 COD 问题。如我所述,不支付付款。Woocommerce COD 自动设置“处理”状态。
我在 github 上找到了解决方案:这里
它的第一个代码。
根据对这个问题的回答,这段代码对我来说很好:
function sv_wc_cod_order_status( $status ) {
return 'on-hold';
}
add_filter( 'woocommerce_cod_process_payment_order_status', 'sv_wc_cod_order_status', 15 );
解决方案
更新:您在 Github 中找到的代码已经过时、笨拙和复杂,因为现在有一个专用的过滤器挂钩。您最好尝试一下这个轻量级且有效的代码,它将“货到付款”支付网关(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 文件中。测试和工作。
所以支付网关设置的默认订单状态现在是“等待中”而不是“处理中”
推荐阅读
- c# - 如何在 C# 中将 JSON 数据序列化为 XML
- java - 如何将文本拆分为 2 个不同的句子,然后在 Java 中计算每个句子的单词
- javascript - Nuxt 向组件添加属性并在中间件中访问它
- postgresql - 在 postgres 中使用触发器更新列
- r - R中直方图的平均值
- java - 如何在 log4j2 中记录与设置的日志级别无关的消息
- jenkins - 如何在同一台 Mac 机器上同时运行 2 个不同的 Jenkins 帐户?
- python - 在特定的 Celery 任务之前和之后运行一个函数?
- vue.js - 如何在组件道具中访问 Vuex 存储以设置默认值
- yara - YARA:匹配没有特定子字符串的字符串