我需要帮助解决与插件“WooCommerce支付付款”相关的问题,该计算器会计算运费中的一些额外费用。问题是,这个插件按顺序设置自动“处理”状态,这会导致感谢电子邮件付款(如果是本地付款)并且不发送有关新订单的电子邮件通知,所以客户感到困惑(我没有发送任何信息)钱和我收到了电子邮件“谢谢你的付款”)。
我试过这个解决方案: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 );
function change_cod_payment_order_status( $order_status, $order ) {
return 'on-hold';
}
代码位于活动子主题(活动主题)的function.php文件中。经过测试和工作。
因此,支付网关设置的默认订单状态现在是“暂停”而不是“处理”
以上两个解决方案相同,除了:
但对于我的WP5.1.1和WC3.5.7
function change_cod_payment_order_status( $order_status, $order ) {
return 'on-hold';
}
产生错误
PHP致命错误:未捕获ArgumentCountError:函数change_cod_payment_order_status()的参数太少
所以我更喜欢在主函数中只使用一个参数的代码