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

WooCommerce结账页如何在自定义复选框中显示商品名称与价格

WooCommerce结账页复选框添加商品名称与价格的实现方案

可以实现在复选框标签中显示购物车商品的名称及价格,只需修改你现有代码中的zpd_add_checkout_privacy_policy函数,添加购物车商品信息的获取逻辑即可,具体修改如下:

修改后的完整代码

// Checkout page - checkbox
function zpd_add_checkout_privacy_policy() {
    
    $configSupportFile = '/home/web1/configsupport.php';

    if( !file_exists( $configSupportFile ) ) {
        return 'Cannot find config support file.';
    }

    require $configSupportFile;

    // 获取购物车中所有商品的名称与对应总价
    $cart_items = WC()->cart->get_cart();
    $product_info = '';

    if ( ! empty( $cart_items ) ) {
        foreach ( $cart_items as $item ) {
            $product = $item['data'];
            $product_name = $product->get_name();
            // 计算当前商品的总价(包含购买数量),用wc_price格式化价格显示
            $product_total_price = wc_price( $item['line_total'] );
            $product_info .= sprintf( '%s的%s费用,', $product_name, $product_total_price );
        }
        // 移除末尾多余的标点符号
        $product_info = rtrim( $product_info, ',' );
    }

    woocommerce_form_field( 'privacy_policy', array(
        'type'          => 'checkbox',
        'class'         => array('form-row privacy'),
        'label_class'   => array('woocommerce-form__label woocommerce-form__label-for-checkbox checkbox'),
        'input_class'   => array('woocommerce-form__input woocommerce-form__input-checkbox input-checkbox'),
        'required'      => true,
        'label'         => 
        '下单将收取'.$product_info.',此为一次性购买,USPS配送通常需3-5个工作日,信用卡账单显示为'.$descriptor[$domain].',下单即同意我们的<a href="/privacy-policy/" target="_blank">隐私政策</a>及<a href="/terms-conditions/" target="_blank">条款与条件</a>',
    ));
}

add_action('woocommerce_review_order_before_submit',  'zpd_add_checkout_privacy_policy', 9);

// Show notice if customer doesn't check the box (required)
function zpd_privacy_not_agreed() {
    if ( ! isset( $_POST['privacy_policy'] ) || ! (int)$_POST['privacy_policy'] ) {
        wc_add_notice( __( '请阅读并接受相关条款以继续下单。' ), 'error' );
    }
}

add_action( 'woocommerce_checkout_process', 'zpd_privacy_not_agreed' );

关键修改说明

  • 通过WC()->cart->get_cart()获取购物车中的所有商品数据
  • 遍历商品数据,提取每个商品的名称和对应总价(包含购买数量),用wc_price()格式化价格为符合站点货币设置的显示格式
  • 将商品信息整合到复选框的标签文本中,替换原有的固定文本
  • 优化了复选框未勾选时的错误提示信息,更贴合实际场景

可选调整

如果你的场景中购物车通常只有单一商品,或者需要显示购物车总价而非单个商品信息,可以将商品信息获取部分替换为:

// 获取购物车总价
$cart_total = WC()->cart->get_cart_total();
$product_info = sprintf( '购物车商品总价%s', $cart_total );

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 20:09:30