得到数量*变化的价格

时间:2016-09-20 09:24:53

标签: php wordpress woocommerce

我正在处理一些代码,以便将选定的变体价格*数量与总价格相对应。

不知何故,我无法让它发挥作用:

add_action( 'woocommerce_single_product_summary', 'woocommerce_total_product_price', 31 ); 
function woocommerce_total_product_price() {
global $woocommerce, $product;
// let's setup our divs
echo sprintf('<div id="product_total_price" style="margin-bottom:20px; display: block;">%s %s</div>',__('Totaal Prijs:','woocommerce'),'<span class="price">'.$product->get_price().'</span>');
?>
    <script>
        jQuery(function($){
            var price = <?php get_post_meta( get_the_ID(), '_regular_price', true);?>
            console.log(price);
            var currency = '<?php echo get_woocommerce_currency_symbol(); ?>';

            $('[name=quantity]').change(function(){
                    var product_total = parseFloat(price * this.value);
                    $('#product_total_price .price').html( currency + product_total.toFixed(2));


            });
        });
    </script>
<?php }

对此有任何建议吗?

1 个答案:

答案 0 :(得分:0)

解决了一些追踪和错误..可能更好,但它正在我这边工作。 注意我在荷兰我们用的是,而不是。 (woocommerce也配置为十进制..)。

总价格基于变化@ theme / functions.php

// hook this on priority 31, display below add to cart button.
add_action( 'woocommerce_single_product_summary', 'woocommerce_total_product_variation_price', 31 );
function woocommerce_total_product_variation_price() {
global $woocommerce, $product;
// setup base html... We are going to rewrite this with the standard selected variation
echo sprintf('<div id="product_total_price" style="margin-bottom:20px; display: block;">%s %s</div>',__('Totaal Prijs:','woocommerce'),'<span class="price">'.$product->get_price().'</span>');
?>
    <script>
        jQuery(function($){

        var currency    = currency = ' <?php echo get_woocommerce_currency_symbol(); ?>';

            function priceformat() {
                var product_total = parseFloat(jQuery('.woocommerce-variation-price .amount').text().replace(/ /g ,'').replace(/€/g ,'').replace(/,/g ,'.')) * parseFloat(jQuery('.qty').val());
                var product_total2 = product_total.toFixed(2);
                var product_total3 = product_total2.toString().replace(/\./g, ',');

                jQuery('#product_total_price .price').html( currency + ' ' + product_total3);
            }

            jQuery('[name=quantity]').change(function(){
                priceformat();
            });

            jQuery('body').on('change','.variations select',function(){
                priceformat();              
            });

            priceformat();

        });
    </script>
<?php }