【问题标题】:Send customer processing order email notification for on-hold Woocommerce orders为暂停的 Woocommerce 订单发送客户处理订单电子邮件通知
【发布时间】:2018-09-19 11:01:31
【问题描述】:

如果客户通过 bacs 网关下订单,订单状态为“暂挂”,客户会收到随附的包含银行详细信息的邮件通知。付款完成后,客户会收到另一封电子邮件 - 内容几乎与之前相同:customer_processing_order

我的目标:

禁用暂停订单的邮件(这是后端的默认功能)并发送电子邮件,这实际上是用于带有“处理中”状态的付费订单的电子邮件,如果订单带有 (on -hold-status),同时为客户处理订单保留它。

换句话说:状态为“暂停”和“处理中”的新订单应共享相同的电子邮件模板。

这有可能实现吗?

到目前为止,我的尝试相当糟糕(基于另一个有用的解决方案):

function unhook_new_order_processing_emails( $email_class ) {
    // Turn off pending to processing for now
    remove_action( 'woocommerce_order_status_pending_to_processing_notification', array( $email_class->emails['WC_Email_Customer_Processing_Order'], 'trigger' ) );
    // Turn it back on but send the on-hold email
    add_action( 'woocommerce_order_status_pending_to_processing_notification', array( $email_class->emails['WC_Email_Customer_On_Hold_Order'], 'trigger' ) );
}

提前感谢您的帮助!

【问题讨论】:

    标签: php wordpress woocommerce orders email-notifications


    【解决方案1】:

    如果您禁用了客户“暂停”电子邮件通知,您可以使用以下内容通过“处理中”电子邮件模板发送有关暂停订单状态的电子邮件通知:

    add_action('woocommerce_order_status_on-hold', 'email_order_processing_status_for_on_hold', 10, 2 );
    function email_order_processing_status_for_on_hold( $order_id, $order ) {
        WC()->mailer()->get_emails()['WC_Email_Customer_Processing_Order']->trigger( $order_id );
    }
    

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

    【讨论】:

    • 非常感谢!这正是我所需要的!你救了我的网店!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-14
    • 2017-08-08
    • 2019-05-10
    • 2019-12-05
    • 2018-05-31
    • 2018-10-24
    相关资源
    最近更新 更多