我有一家布料店,我需要它向客户清楚地说明他们要添加到购物篮中的数量。产品价格定为 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
}
您的代码中存在一些错误和缺失,请尝试以下操作:
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 文件中(或插件中)。已测试并有效。