针对WooCommerce客户处理和完成订单电子邮件通知



我正在尝试在wooCommerce上的订单表之后添加自定义内容 使用以下代码,"处理订单"one_answers"订单完成"的客户电子邮件。

仅当客户选择"本地拾取"作为运输方法时才能添加它。

function local_pickup_extra_content_email($order, $is_admin_email) {
    if ( $is_admin_email ) {
        return;
    }
    if ( ICL_LANGUAGE_CODE == "he" && strpos( $order->get_shipping_method(), 'Local Pickup' ) !== false) {
        echo '<p><strong>Note:</strong> Please wait for telephone confirmation of local pickup.</p>';
    }
}
add_action( 'woocommerce_email_after_order_table', 'local_pickup_extra_content_email', 10, 2  );

没有将内容添加到指定的电子邮件中。它仅被添加到通过WooCommerce订单管理页面手动发送的"订单详细信息/发票"电子邮件。

如何将上述内容添加到上述电子邮件中?我究竟做错了什么?
(主题文件夹中未覆盖的电子邮件模板)

这可以轻松地针对这些电子邮件通知通过丢失的挂钩参数$email,这样:

add_action( 'woocommerce_email_after_order_table', 'local_pickup_extra_content_email', 10, 4  );
function local_pickup_extra_content_email( $order, $sent_to_admin, $plain_text, $email ) {
    // Only for "Processing Order" and "Order Completed" customer emails
    if( ! ( 'customer_processing_order' == $email->id || 'customer_completed_order' == $email->id ) ) return;
    $lang = get_post_meta( $order->id, 'wpml_language', true );
    if ( $lang == 'he' && && strpos( $order->get_shipping_method(), 'Local Pickup' ) !== false) {
        echo '<p><strong>Note:</strong> Please wait for telephone confirmation of local pickup.</p>';
    }
}

此代码在您的活动子主题(或主题)或任何插件文件中的function.php文件中。

测试并起作用


类似的答案:将自定义文本添加到特定的电子邮件通知到本地拾取wooCommerce订单

这是由于我在if语句中的WPML条件而无法工作的:

ICL_LANGUAGE_CODE == "he" 

我认为当woocommerce发送电子邮件时,我不认为iCl_language_code存在。为了解决这个问题,我用以下问题在上面的问题中替换了if语句,它像魅力一样奏效:

$lang = get_post_meta( $order->id, 'wpml_language', true );
if ( $lang == 'he' && && strpos( $order->get_shipping_method(), 'Local Pickup' ) !== false) {
    echo '<p><strong>Note:</strong> Please wait for telephone confirmation of local pickup.</p>';
}

相关内容

  • 没有找到相关文章

最新更新