基于自定义客户字段的其他订单电子邮件

时间:2019-08-20 06:59:13

标签: wordpress woocommerce wordpress-theming hook-woocommerce

我需要将订单电子邮件的副本发送到由自定义字段定义的第二个电子邮件地址。

我已经安装了标志性的自定义帐户字段插件,并在用户上创建了一个自定义字段(我可以使用,并且可以在admin中对其进行编辑)。 https://iconicwp.com/blog/the-ultimate-guide-to-adding-custom-woocommerce-user-account-fields/ 它叫做“ iconic-register-email”

我还实施了此https://wordpress.stackexchange.com/questions/92020/adding-a-second-email-address-to-a-completed-order-in-woocommerce解决方案来发送额外的电子邮件。它适用于硬编码的电子邮件。

现在,我需要结合解决方案,但我无法使其正常工作。我已将发送电子邮件代码附加在标志性插件代码的底部。

add_filter( 'woocommerce_email_headers', 'mycustom_headers_filter_function', 10, 2);
function mycustom_headers_filter_function( $headers, $object ) {

    $sae = 'a-custom-email@gmail.com';

    if ($object == 'customer_completed_order') {
        $headers .=  'BCC: Name <' . $sae . '>' . "\r\n";
    }

    return $headers;
}

此代码有效,但是我需要使用iconic-register-email字段。

需要获取用户的注册电子邮件地址,因此当该用户下订单时,会将订单副本发送到iconic-register-email定义的地址。

我对编码的知识非常有限,请帮忙。我上线之前要添加的最后一件事。

1 个答案:

答案 0 :(得分:0)

设法解决。不知道这是否是最优雅的解决方案,但它是否有效。

因为它是预定义的函数和数组,所以我就是这样做的

function mycustom_headers_filter_function( $headers, $object ) {
    $sae = iconic_get_userdata( get_current_user_id(), 'iconic-register-email' );

    if ($object == 'new_order') {
        $headers .=  'BCC: <' . $sae . '>' . "\r\n";
    }

    return $headers;
}