2017-12-18 243 views
1

我试图使用以下代码在Woocommerce “处理订单”和“订单完成”客户电子邮件上的订单表后面添加自定义内容。针对WooCommerce客户处理和完成订单电子邮件通知

只有客户选择“本地取货”作为送货方式时才应添加。

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订单管理页面手动发送的“订单明细/发票”电子邮件中。

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

回答

1

这可以轻松完成通过缺失钩参数$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文件中,或者也包含在任何插件文件中。

测试和工程


类似的答案:Add a custom text to specific email notification for local pickup Woocommerce orders

+0

感谢您的回答。这没有工作,因为我的WPML条件: 'ICL_LANGUAGE_CODE ==“他”' 我猜'发送Woocommerce电子邮件时'ICL_LANGUAGE_CODE'不存在。 ($ order-> id,'wpml_language',true);' 'if($ lang =='');为了解决这个问题,我用下面的代码替换了上面的代码行,它的功能就像一个符号: '$ lang = get_post_meta '他'&& ...){' –

+1

我的错误,你是完全正确的。我给你的答案是可接受的选中标记。 –

1

这并没有因为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>'; 
} 
相关问题