0

我想显示变化价格(选择变化后)而不是实际价格范围(在我的情况下Cena: 1 000.OO€ - 1 300€ bez DPH必须是唯一的1 300.00 € s DPH)。

我的单品页面

我只使用 WC 3.2.6 和 3.2.6 以及店面主题和 CSS 自定义。

4

2 回答 2

0

我找到简单的ctrl + v 到你的functions.php的解决方案

remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_price', 10);
add_action('woocommerce_before_single_product', 'check_if_variable_first');

function check_if_variable_first()
{
    if (is_product()) {
        global $post;
        $product = wc_get_product($post->ID);
        if ($product->is_type('variable')) {
            // removing the price of variable products
            // Change location of
            add_action('woocommerce_single_product_summary', 'custom_wc_template_single_price', 20);
            function custom_wc_template_single_price()
            {
                global $product;
                // Variable product only
                if ($product->is_type('variable')):
                    // Main Price

                    $prices = array($product->get_variation_price('min', true), $product->get_variation_price('max', true));
                    $price = $prices[0] !== $prices[1] ? sprintf(__('od %1$s <small>s DPH</small>', 'woocommerce'), wc_price($prices[0])) : wc_price($prices[0]);

                    // Sale Price
                    $prices = array($product->get_variation_regular_price('min', true), $product->get_variation_regular_price('max', true));
                    sort($prices);
                    $saleprice = $prices[0] !== $prices[1] ? sprintf(__('od %1$s', 'woocommerce'), wc_price($prices[0])) : wc_price($prices[0]);

                    if ($price !== $saleprice && $product->is_on_sale()) {
                        $price = '<del>' . $saleprice . $product->get_price_suffix() . '</del> <ins>' . $price . $product->get_price_suffix() . '</ins>';
                    }
                    ?>
                    <style>
                        div.woocommerce-variation-price,
                        div.woocommerce-variation-availability,
                        div.hidden-variable-price {
                            height: 0px !important;
                            overflow: hidden;
                            position: relative;
                            line-height: 0px !important;
                            font-size: 0% !important;
                        }
                    </style>

                    <script>
                        jQuery(document).ready(function ($) {
                            $('select').blur(function () {
                                if ('' != $('input.variation_id').val()) {
                                    $('p.price').html($('div.woocommerce-variation-price > span.price').html()).append('<p class="availability">' + $('div.woocommerce-variation-availability').html() + '</p>');
                                    console.log($('input.variation_id').val());
                                } else {
                                    $('p.price').html($('div.hidden-variable-price').html());
                                    if ($('p.availability'))
                                        $('p.availability').remove();
                                    console.log('NULL');
                                }
                            });
                        });
                    </script>
                    <?php
                    echo '<p class="price">' . $price . '</p><div class="hidden-variable-price" >' . $price . '</div>';
                endif;
            }
        }
    }
}
于 2018-02-15T11:56:53.250 回答
0

这是我的functions.php代码

<?php 
function iconic_variable_price_format( $price, $product ) {

$prefix = sprintf('%s ', __('Od', 'iconic'));

$min_price_regular = $product->get_variation_regular_price( 'min', true );
$min_price_sale    = $product->get_variation_sale_price( 'min', true );
$max_price = $product->get_variation_price( 'max', true );
$min_price = $product->get_variation_price( 'min', true );

$price = ( $min_price_sale == $min_price_regular ) ?
    wc_price( $min_price_regular ) :
    '<del>' . wc_price( $min_price_regular ) . '</del>' . '<ins>' . wc_price( $min_price_sale ) . '</ins>';

return ( $min_price == $max_price ) ?
    $price :
    sprintf('%s%s', $prefix, $price);

}
add_filter(     'woocommerce_variable_sale_price_html','iconic_variable_price_format', 10, 2 );
add_filter( 'woocommerce_variable_price_html', 'iconic_variable_price_format', 10, 2 );?>
于 2018-10-26T22:46:50.497 回答