微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

当运输方式不是“本地取货”时禁用 WooCommerce 新订单电子邮件通知

如何解决当运输方式不是“本地取货”时禁用 WooCommerce 新订单电子邮件通知

仅当客户选择“本地取货”作为送货方式时,我才尝试发送 Woocommerce 新订单电子邮件

为了实现这一点,我在 WooCommerce 设置中禁用了新订单电子邮件通知,同时尝试在满足运输方式 = 本地取货条件时使用过滤器启用新订单电子邮件

到目前为止,我无法将其拉下来。这是我的过滤器:

add_filter( 'woocommerce_email_enabled_new_order','lds_only_send_mail_when_shipping_is_pickup',10,2 );

function lds_only_send_mail_when_shipping_is_pickup($order) {

    if (!empty($order) && $order->get_shipping_method() === 'local_pickup') {
      
      return true;
    
    } 
    
}

不确定我做错了什么?

由于woocommerce_email_enabled_{id}的第一个参数是可选的,我认为满足条件时返回true就足够了。

解决方法

无需对 WooCommerce 设置进行任何更改

要在订单运输方式不等于“本地取货”时禁用 WooCommerce 新订单电子邮件通知,您可以使用 woocommerce_email_recipient_new_order 钩子

所以你得到:

function filter_woocommerce_email_recipient_new_order( $recipient,$order = false ) {   
    if ( ! $order || ! is_a( $order,'WC_Order' ) ) return $recipient;
    
    // Get shipping method
    $shipping_method = $order->get_shipping_method();

    // NOT equal (Note: this should be adjusted to the shipping method in your site language)
    // Such as: 'Afhalen' for dutch,etc...
    if ( $shipping_method != 'Local Pickup' ) {
        $recipient = '';
    }

    return $recipient;
}
add_filter( 'woocommerce_email_recipient_new_order','filter_woocommerce_email_recipient_new_order',10,2 );

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。