在发送电子邮件之前获取woocommerce订单电子邮件内容作为字符串

时间:2020-08-18 10:38:59

标签: php wordpress woocommerce

我正在编写一个系统,以将所有woocommerce订单电子邮件作为内部通知发送给用户。

我想获取从订单号生成的订单电子邮件内容,并在将其发送给用户之前将其另存为字符串。

我的第一次尝试是使用wp_mail过滤器,并尝试通过其主题行和电子邮件地址确定woocommerce消息。但是后来我意识到,用户可以在其帐户电子邮件中使用不同的帐单电子邮件地址,并且尝试从主题中锻炼电子邮件类型将很容易出错。

有没有一种方法可以在发送woocommerce电子邮件之前生成HTML或消息?如果可能的话,我希望在此过滤器中获取电子邮件内容:woocommerce_email_recipient_customer_completed_order

在此先感谢您的帮助,如果您需要更多信息,请告诉我。

Rob

add_filter('wp_mail', 'my_wp_mail');
function my_wp_mail($atts) {
    $content = $atts['message'];
    $subject = $atts['subject'];
    $user_email = $atts['to'];

    $user = get_user_by('user_email', $user_email);

    if($user){

        $user_id = $user->ID;
        $time_sent = date("d/m/y H:i:s");
        $message_status = 'unread';
        $email_notification['subject'] = $subject;
        $email_notification['message'] = $content;
        $email_notification['timeSent'] = $time_sent;
        $email_notification['status'] = $message_status;

        $current_messages = get_user_meta($user_id, 'emailMessages', true);

        $current_messages[] = $email_notification;

        update_user_meta($user_id, 'emailMessages', $current_messages);
    }
    
    return $atts;
}

0 个答案:

没有答案