将自定义文本添加到本地取货 Woocommerce 订单的特定电子邮件通知

阿勒马伦戈

我试着下面的代码,该代码显示一个消息给所有那些谁应该获得一个客户customer_processing_order,并customer_completed_orderlocal_pickup被选择的送货方式。

我注意到我没有在任何订单元数据中存储任何 _shipping_method 项目,但只有这样的东西: order_item_type: shipping > method_id > local_pickup:3

我怎样才能找回它?

我试过这个代码没有成功:

// testo per Ritiro in Sede

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 ) {

if( 'customer_processing_order' != $email->id ) return;

if ( method_exists( $order, 'get_id' ) ) {
    $order_id = $order->get_id();
} else {
    $order_id = $order->id;
}

$shipping_method_arr = get_post_meta($order_id, '_shipping_method', false); 
$method_id = explode( ':', $shipping_method_arr[0][0] );
$method_id = $method_id[0];  // We get the slug type method


if ( 'local_pickup' == $method_id ){
    echo '<p><strong>Ritiro in sede</strong></p>';
   }
}
LoicTheAztec

这可以通过迭代订单运输项目来完成,这样:

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 processing and completed email notifications to customer
    if( ! ( 'customer_processing_order' == $email->id || '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;
        }
    }
}

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

测试和工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将产品自定义字段添加到WooCommerce已完成的订单电子邮件中

woocommerce将自定义结帐字段添加到电子邮件

将自定义字段数据添加到WooCommerce订单

WooCommerce:将自定义Metabox添加到管理订单页面

根据运输方式自定义Woocommerce新订单电子邮件通知

在WooCommerce中将自定义URL链接添加到管理订单列表页面

Woocommerce新订单电子邮件通知中的自定义“回复”电子邮件标题

在WooCommerce中自定义订单状态更改时发送电子邮件通知

在Woocommerce中的特定电子邮件通知上为特定产品添加自定义文本

在Woocommerce下订单后,将附件添加到管理员电子邮件通知中

为特定的Woocommerce电子邮件通知向BCC添加自定义电子邮件

在Woocommerce中将订单交易ID添加到管理员新订单电子邮件通知中

将优惠券代码名称添加到Woocommerce查看订单详细信息和电子邮件通知

在WooCommerce订单和电子邮件通知中显示自定义字段值

如何将自定义字段作为抄送添加到WooCommerce客户订单电子邮件

订单自定义字段未显示在WooCommerce电子邮件通知中

在WooCommerce中将自定义结帐字段值添加到客户订单注释中

在特定的WooCommerce电子邮件通知上显示自定义字段

在WooCommerce中将自定义占位符添加到电子邮件主题

在Woocommerce订单和电子邮件中的订单总数之后添加自定义文本

将自定义ajax按钮添加到WooCommerce管理订单列表

在WooCommerce订单和电子邮件通知上显示自定义交货通知

WooCommerce:使用自定义电子邮件通知添加自定义订单状态

Woocommerce 将自定义属性(分类法)作为数组添加到邮件模板

仅在 Woocommerce 中针对本地运输和已完成订单的自定义电子邮件通知

根据订单状态自定义 Woocommerce 电子邮件通知内容

如何将我的自定义字段添加到 Woocommerce 订单流程(查看表单、订单详细信息和电子邮件流程)

在 WooCommerce 客户处理订单电子邮件通知中根据付款方式添加自定义消息

当运输方式不是“本地取货”时禁用 WooCommerce 新订单电子邮件通知