gpt4 book ai didi

php - 基于运输区域的 WooCommerce 电子邮件

转载 作者:行者123 更新时间:2023-12-04 17:46:25 25 4
gpt4 key购买 nike

当客户选择运送 zone id = 0(世界其他地区)时,我需要发送电子邮件说明。

我在下面找到了代码,但它基于付款方式:

add_action( 'woocommerce_email_before_order_table', 'add_order_email_instructions', 10, 2 );

function add_order_email_instructions( $order, $sent_to_admin ) {

if ( ! $sent_to_admin ) {

if ( 'cod' == $order->payment_method ) {
// cash on delivery method
echo '<p><strong>Instructions:</strong> Full payment is due immediately upon delivery: <em>cash only, no exceptions</em>.</p>';
} else {
// other methods (ie credit card)
echo '<p><strong>Instructions:</strong> Please look for "Madrigal Electromotive GmbH" on your next credit card statement.</p>';
}
}
}

请问如何将其更改为特定的运输区域?
如何在 WooCommerce 中根据送货区设置特定的电子邮件说明?

我们将不胜感激。

最佳答案

获取订单的可配送区域并非易事。可以使用以下代码示例完成:

add_action( 'woocommerce_email_before_order_table', 'custom_text_in_email_shipping_zone_based', 10, 4 );
function custom_text_in_email_shipping_zone_based( $order, $sent_to_admin, $plain_text, $email ) {
if ( ! $sent_to_admin ) {

// Get the shipping method related data (we need the Instance ID)
$shipping_item = $order->get_items('shipping');
$item = reset($shipping_item);
$shipping_method_id = $item->get_method_id();
$method_arr = explode( ':', $shipping_method_id );

// Get the Zone ID and related data
$shipping_zone_object = WC_Shipping_Zones::get_zone_by( 'instance_id', $method_arr[1] );
$zone_id = $shipping_zone_object->get_id(); // Zone ID
$zone_name = $shipping_zone_object->get_zone_name(); // Zone name
// Get the zone locations codes and types (if needed)
foreach( $shipping_zone_object->get_zone_locations() as $zone_location ){
$zone_location_code = $zone_location->code;
$zone_location_type = $zone_location->type;
}

if ( '0' == $zone_id ) {
// Rest of the world
echo '<p><strong>Instructions:</strong> for Rest of the world.</p>';
}
elseif ( 'Mexico' == $zone_name ) {
// Mexico zone name
echo '<p><strong>Instructions:</strong> for Mexico.</p>';
}
else {
// All other zones
echo '<p><strong>Instructions:</strong> Other zones.</p>';
}
}
}

代码进入事件子主题(或事件主题)的 function.php 文件。

经过测试并有效。

关于php - 基于运输区域的 WooCommerce 电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48303802/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com