我想根据客户选择的运输方式向他们发送一封自定义文本电子邮件。我们使用运输区域。
我相信默认情况下它称为“固定费率”或“固定费率”方法? https://prnt.sc/FyDXD6NbMkSc
我遇到过 WooCommerce 根据付款方式和运输方式添加自定义电子邮件内容 答案线程。
这是我的代码:
add_action( 'woocommerce_email_order_details', 'my_completed_order_email_instructions', 10, 4 );
function my_completed_order_email_instructions( $order, $sent_to_admin, $plain_text, $email ) {
// Only for completed email notifications to customer
if( 'customer_completed_order' != $email->id ) return;
foreach( $order->get_items('shipping') as $shipping_item ){
$shipping_rate_id = $shipping_item->get_method_id();
$method_array = explode(':', $shipping_rate_id );
$shipping_method_id = reset($method_array);
// Display a custom text for local pickup shipping method only
if( 'local_pickup' == $shipping_method_id ){
echo '<p><strong>Ritiro in sede</strong></p>';
break;
}
}
}
但这仅涵盖本地运输。
尝试以下方法:
add_action( 'woocommerce_email_order_details', 'completed_order_email_custom_instructions', 10, 4 );
function completed_order_email_custom_instructions( $order, $sent_to_admin, $plain_text, $email ) {
// Only for "Customer Completed Order" email notification
if( 'customer_completed_order' !== $email->id ) return;
if ( $order->get_shipping_country() === 'EE' && $order->has_shipping_method('local_pickup') ){
echo '<p><strong>'.__('Ritiro in sede').'</strong></p>';
} elseif ( $order->get_shipping_country() !== 'EE' && ! $order->has_shipping_method('flat_rate') ){
echo '<p><strong>'.__('custom text 2').'</strong></p>';
} elseif ( $order->has_shipping_method('flat_rate') ){
echo '<p><strong>'.__('custom text 3').'</strong></p>';
}
}
代码位于子主题的functions.php 文件中(或插件中)。应该可以。
相关: