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

WooCommerce:如何将复选框标签添加至订单邮件?

解决方案

要让免税复选框的标签显示在订单邮件中,需要两步:把用户的选择保存到订单元数据,然后在邮件模板中调用这个数据并显示。以下是完整的修改代码:

//=============================================================================
// ADD TAX EXEMPT CHECKMARK
// =============================================================================
add_action( 'woocommerce_after_order_notes', 'qd_tax_exempt');

function qd_tax_exempt( $checkout ) {
    echo '<div id="qd-tax-exempt"><h3>'.__('Tax Exempt').'</h3>';

    woocommerce_form_field( 'shipping_method_tax_exempt', array(
        'type'          => 'checkbox',
        'class'         => array(),
        'label'         => __('My organization is tax exempt.'),
        'required'      => false,
    ), $checkout->get_value( 'shipping_method_tax_exempt' ));

    echo '</div>';
}

add_action( 'woocommerce_checkout_update_order_review', 'taxexempt_checkout_update_order_review');
function taxexempt_checkout_update_order_review( $post_data ) {
    global $woocommerce;

    $woocommerce->customer->set_is_vat_exempt(FALSE);

    parse_str($post_data);

    if ( isset($shipping_method_tax_exempt) && $shipping_method_tax_exempt == '1') {
        $woocommerce->customer->set_is_vat_exempt(true);
    }               
}

// 新增:保存免税选择到订单元数据
add_action( 'woocommerce_checkout_create_order', 'save_tax_exempt_to_order_meta' );
function save_tax_exempt_to_order_meta( $order ) {
    if ( isset($_POST['shipping_method_tax_exempt']) && $_POST['shipping_method_tax_exempt'] == '1' ) {
        $order->update_meta_data( '_tax_exempt_selected', 'yes' );
    }
}

// 新增:在订单邮件中显示免税标签
add_action( 'woocommerce_email_order_details', 'display_tax_exempt_in_email', 20, 4 );
function display_tax_exempt_in_email( $order, $sent_to_admin, $plain_text, $email ) {
    $tax_exempt = $order->get_meta( '_tax_exempt_selected' );
    
    if ( $tax_exempt == 'yes' ) {
        if ( $plain_text ) {
            echo "\n" . __('My organization is tax exempt.') . "\n";
        } else {
            echo '<p><strong>'.__('Tax Exempt Status:').'</strong> '.__('My organization is tax exempt.').'</p>';
        }
    }
}

代码说明:

  • save_tax_exempt_to_order_meta 函数:在订单创建时,把用户勾选免税的状态保存为订单元数据,确保邮件能从订单中读取该信息。
  • display_tax_exempt_in_email 函数:通过woocommerce_email_order_details钩子,在邮件的订单详情区域插入免税状态显示,同时兼容纯文本和HTML格式的邮件,适配所有邮件类型。

将这段代码添加到你的插件文件中即可,全程通过钩子实现,无需修改主题模板,符合插件开发规范。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 06:52:42