8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

根据添加到购物车按钮上方的数量显示格式化的 WooCommerce 产品总数

HamZa Samha 1月前

20 0

我有一家布料店,我需要它向客户清楚地说明他们要添加到购物篮中的数量。产品价格定为 1/2 米。因此 1 件库存就是半米布料。

我有一家布料店,我需要它向客户清楚地说明他们要添加到购物篮中的数量。产品价格定为 1/2 米。因此 1 件库存就是半米布料。

https://thefabricboutique.co.uk/product/jennifer-cotton/

我需要它在添加到购物车上方显示。

在 (价格) 中添加 (X) 米。

(x)- 数量所示数量的一半。(3 个数量 = 1.5 米)(价格)- 数量增加,价格随之提高。(3 个数量为 7 英镑 = 21 英镑)

这是为了获得价格而做出的尝试,但我只是在努力完成它!任何帮助都会很棒,谢谢。

我试过这个代码,它可以与价格一起使用,但在数量改变之前似乎会删除货币符号。

add_action( 'woocommerce_before_add_to_cart_quantity', 'qty_front_add_cart' );
 
function qty_front_add_cart() {
    global $woocommerce, $product;
    // let's setup our divs
    echo sprintf('<div id="product_total_price" style="margin-bottom:20px;">%s %s</div>',__('Total price:','woocommerce'),'<span class="price">'.wc_get_price_to_display($product).'</span>');
    ?>
        <script>
            jQuery(function($){
                var price = <?php echo wc_get_price_to_display($product); ?>,
                    currency = '<?php echo get_woocommerce_currency_symbol(); ?>';

                $('[name=quantity]').change(function(){
                    if (!(this.value < 1)) {

                        var product_total = parseFloat(price * this.value);

                        $('#product_total_price .price').html( currency + product_total.toFixed(2));

                    }
                });
            });
        </script>
    <?php 
}
帖子版权声明 1、本帖标题:根据添加到购物车按钮上方的数量显示格式化的 WooCommerce 产品总数
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由HamZa Samha在本站《ajax》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 抱歉,Loic,最后一次打扰你了!是否可以将“添加”替换为“1 单位 =”,它会随着数量的增加而变化?所以应该是,1 单位 = 0.5 米,价格为 4.00 英镑,如果您能再次提供帮助,谢谢!抱歉

  • Kazz 1月前 0 只看Ta
    引用 3

    是的,您可以在函数内部,在 global $product; 之后插入以下内容: if( ! has_term( array('my-category'), 'product_cat', $product->get_id() ) ) return; 用所需的类别名称、slug 或 Ids 替换'my-category'(在数组中,以逗号分隔)...

  • 您的代码中存在一些错误和缺失,请尝试以下操作:

    add_action( 'woocommerce_before_add_to_cart_quantity', 'display_product_total_amount_html' );
    function display_product_total_amount_html() {
        global $product;
    
        $meters_per_qty  = 0.5;
        $display_price   = wc_get_price_to_display($product);
        $formatted_price = '<span class="price-amount">'. number_format($display_price, 2) . '</span>';
    
        // Output product total price amount
        $price_string = sprintf( __('Add %s for %s', 'woocommerce'),  
            '<span class="qty-meters">' . $meters_per_qty . ' meter</span>',
            str_replace('0.00', $formatted_price, wc_price(0)) );
    
        // Output product total price amount
        echo '<div class="total-price_qty" style="margin-bottom:20px;">'.$price_string.'</div>'
        ?>
        <script>
        jQuery(function($){
            $('input[name=quantity]').on( 'input change', function(){
                const qty = $(this).val();
                if ( qty != 0 ) {
                    const lengthTxt = qty > 2 ? ' meters' : ' meter';
                    $('.total-price_qty .price-amount').html( parseFloat(<?php echo $display_price; ?> * qty).toFixed(2) );
                    $('.total-price_qty .qty-meters').html( parseFloat(<?php echo $meters_per_qty; ?> * qty)+lengthTxt );
                }
            });
        });
        </script>
        <?php 
    }
    

    代码位于子主题的 functions.php 文件中(或插件中)。已测试并有效。

    enter image description here

返回
作者最近主题: