You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在WooCommerce邮件通知中添加Apaczka插件选择的取件点

解决方案:在WooCommerce订单确认邮件中添加取件柜信息

步骤1:确认取件柜数据的订单元键

插件已将取件柜数据同步到后台订单,这些数据以订单元数据形式存储,你需要先找到对应的元键(存储数据的标识):

  1. 安装并激活「Code Snippets」插件(WordPress官方插件,安全可靠)
  2. 新建代码片段,粘贴以下调试代码:
add_action( 'woocommerce_email_order_details', 'show_order_meta_for_parcel_machine', 10, 4 );
function show_order_meta_for_parcel_machine( $order, $sent_to_admin, $plain_text, $email ) {
    // 仅管理员可见调试信息
    if ( current_user_can( 'manage_woocommerce' ) ) {
        echo '<h3>订单元数据调试</h3>';
        $all_meta = get_post_meta( $order->get_id() );
        echo '<ul>';
        foreach ( $all_meta as $key => $value ) {
            echo '<li><strong>' . esc_html( $key ) . ':</strong> ' . esc_html( $value[0] ) . '</li>';
        }
        echo '</ul>';
    }
}
  1. 保存并激活片段,触发测试订单或查看已有订单的管理员确认邮件
  2. 在邮件中找到包含取件柜名称/地址/编号的元键(如_apaczka_selected_locker、_parcel_machine_details这类标识),记下该元键。

步骤2:添加取件柜信息到订单邮件

新建代码片段,替换调试代码,使用以下正式代码(将YOUR_META_KEY_HERE替换为步骤1找到的元键):

add_action( 'woocommerce_email_order_details', 'add_parcel_machine_info_to_emails', 20, 4 );
function add_parcel_machine_info_to_emails( $order, $sent_to_admin, $plain_text, $email ) {
    // 获取取件柜数据
    $parcel_data = get_post_meta( $order->get_id(), 'YOUR_META_KEY_HERE', true );
    
    if ( ! empty( $parcel_data ) ) {
        // 适配HTML邮件格式
        if ( ! $plain_text ) {
            echo '<h2 style="margin: 16px 0; font-size: 18px;">取件柜信息</h2>';
            echo '<ul style="list-style: none; padding: 0; margin: 0;">';
            
            // 以下为常见字段示例,可根据实际数据结构调整
            if ( isset( $parcel_data['name'] ) ) {
                echo '<li style="margin: 8px 0;"><strong>取件柜名称:</strong> ' . esc_html( $parcel_data['name'] ) . '</li>';
            }
            if ( isset( $parcel_data['address'] ) ) {
                echo '<li style="margin: 8px 0;"><strong>地址:</strong> ' . esc_html( $parcel_data['address'] ) . '</li>';
            }
            if ( isset( $parcel_data['code'] ) ) {
                echo '<li style="margin: 8px 0;"><strong>取件柜编号:</strong> ' . esc_html( $parcel_data['code'] ) . '</li>';
            }
            
            echo '</ul>';
        } 
        // 适配纯文本邮件格式
        else {
            echo "\n=== 取件柜信息 ===\n";
            if ( isset( $parcel_data['name'] ) ) echo "取件柜名称: " . esc_html( $parcel_data['name'] ) . "\n";
            if ( isset( $parcel_data['address'] ) ) echo "地址: " . esc_html( $parcel_data['address'] ) . "\n";
            if ( isset( $parcel_data['code'] ) ) echo "取件柜编号: " . esc_html( $parcel_data['code'] ) . "\n";
        }
    }
}
  1. 保存并激活片段,测试订单邮件即可看到取件柜信息已显示。

注意事项

  • 若不想用Code Snippets插件,可将代码添加到子主题的functions.php文件末尾,但子主题更新不会丢失代码,主主题更新会覆盖,优先推荐插件方式。
  • 若调试时找不到元键,可右键后台订单详情页的取件柜信息区域→「检查」,查看元素属性,插件通常会将数据关联到data-meta-key类的属性中,或直接从元数据列表里找包含取件柜内容的键。

内容的提问来源于stack exchange,提问作者mwlandof

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 08:10:23