针对WooCommerce客户处理和完成订单电子邮件通知
我试图使用以下代码在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><span>Note:</span> 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><span>Note:</span> Please wait for telephone confirmation of local pickup.</p>';
}
}
这代码会出现在您的活动子主题(或主题)的function.php文件中,或者也包含在任何插件文件中。
测试和工程
类似的答案:Add a custom text to specific email notification for local pickup Woocommerce orders
回答:
这并没有因为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><span>Note:</span> Please wait for telephone confirmation of local pickup.</p>';
}
以上是 针对WooCommerce客户处理和完成订单电子邮件通知 的全部内容, 来源链接: utcz.com/qa/261649.html