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

WooCommerce面料商店订购提示文本格式修改技术求助

WooCommerce面料商店提示文本格式修改方案

以下是修改后的完整代码,可直接替换原代码实现你需要的格式「添加1单位,对应0.5米(£6.25 对应0.5米)」,且所有数值会随订购数量动态更新:

add_action( 'woocommerce_before_add_to_cart_quantity', 'display_product_total_amount_html' );
function display_product_total_amount_html() {
    global $product;
    if( ! has_term( array('fabric'), 'product_cat', $product->get_id() ) ) return;
    
    $metres_per_qty  = 0.5;
    $display_price   = wc_get_price_to_display($product);
    $initial_qty     = 1;
    $initial_metres  = $metres_per_qty * $initial_qty;
    $initial_price   = $display_price * $initial_qty;

    // 格式化价格和文本,适配新的显示格式
    $price_string = sprintf( 
        __('添加%s单位,对应%s米(%s 对应%s米)', 'woocommerce'),  
        '<span class="qty-units">' . $initial_qty . '</span>',
        '<span class="qty-metres">' . $initial_metres . '</span>',
        '<span class="price-amount">' . number_format($initial_price, 2) . '</span>',
        '<span class="price-metres">' . $initial_metres . '</span>'
    );

    // 输出提示容器
    echo '<div class="total-price_qty" style="margin-bottom:20px;">'.$price_string.'</div>'
?>
<script>
jQuery(function($){
    const baseMetres = <?php echo $metres_per_qty; ?>;
    const basePrice = <?php echo $display_price; ?>;
    
    $('input[name=quantity]').on( 'input change', function(){
        const qty = parseInt($(this).val()) || 1;
        const totalMetres = (baseMetres * qty).toFixed(1);
        const totalPrice = (basePrice * qty).toFixed(2);
        
        // 更新单位数量
        $('.total-price_qty .qty-units').text(qty);
        // 更新米数文本
        $('.total-price_qty .qty-metres').text(totalMetres + '米');
        // 更新价格数值
        $('.total-price_qty .price-amount').text(totalPrice);
        // 更新价格部分的米数文本
        $('.total-price_qty .price-metres').text(totalMetres + '米');
    });
});
</script>
<?php 
}

关键改动说明

  • 模板结构调整:重新定义提示文本格式,新增qty-units、price-metres类名,让JS能精准定位需要动态更新的元素
  • 初始值优化:提前计算默认状态下的单位数、米数和价格,确保页面加载时显示正确的初始内容
  • JS逻辑升级:
    • 统一提取基础米数和价格,避免重复调用PHP变量
    • 强制将数量转为整数,避免非数字输入导致的异常
    • 同步更新所有动态元素,保证单位数、米数、价格完全匹配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 11:47:27