Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Memaparkan Harga Variasi Terpilih Daripada Julat Harga pada Halaman Produk Pembolehubah WooCommerce?

Bagaimana untuk Memaparkan Harga Variasi Terpilih Daripada Julat Harga pada Halaman Produk Pembolehubah WooCommerce?

Patricia Arquette
Lepaskan: 2024-11-29 07:37:14
asal
424 orang telah melayarinya

How to Display the Chosen Variation Price Instead of the Price Range on WooCommerce Variable Product Pages?

Gantikan Julat Harga Boleh Ubah dengan Harga Variasi Terpilih dalam WooCommerce 3

Dalam WooCommerce, halaman produk berubah memaparkan julat harga bukannya satu harga. Walaupun ini boleh berguna untuk sesetengah produk, ia boleh menjadi tidak diingini dalam kes lain. Artikel ini menyediakan penyelesaian untuk menggantikan julat harga dengan harga variasi yang dipilih, memastikan bahawa hanya harga tersedia terendah dipaparkan.

Untuk mencapainya, kami akan menggunakan fungsi PHP tersuai dan skrip jQuery. Fungsi PHP akan mengalih keluar julat harga lalai dan menggantikannya dengan harga pemegang tempat. Skrip jQuery kemudiannya akan mengemas kini harga pemegang tempat dengan harga variasi yang dipilih apabila variasi dipilih.

Berikut ialah kod yang akan mengendalikan perkara ini:

add_action( 'woocommerce_before_single_product', 'move_variations_single_price', 1 );
function move_variations_single_price(){
    global $product, $post;

    if ( $product->is_type( 'variable' ) ) {
        // removing the variations price for variable products
        remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 );

        // Change location and inserting back the variations price
        add_action( 'woocommerce_single_product_summary', 'replace_variation_single_price', 10 );
    }
}

function replace_variation_single_price(){
    global $product;

    // Main Price
    $prices = array( $product->get_variation_price( 'min', true ), $product->get_variation_price( 'max', true ) );
    $price = $prices[0] !== $prices[1] ? sprintf( __( 'From: %1$s', '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( __( 'From: %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() ){
                if($('p.availability'))
                    $('p.availability').remove();
                $('p.price').html($('div.woocommerce-variation-price > span.price').html()).append('<p class=&quot;availability&quot;>'+$('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=&quot;price&quot;>'.$price.'</p>
    <div class=&quot;hidden-variable-price&quot; >'.$price.'</div>';
}
Salin selepas log masuk

Kod boleh diletakkan dalam sebarang fail PHP dalam tema anak anda atau fail functions.php tema. Anda disyorkan untuk menggunakan tema kanak-kanak untuk mengelak kehilangan sebarang penyesuaian semasa mengemas kini tema anda.

Setelah kod ditambahkan, halaman produk berubah akan menunjukkan harga tersedia terendah dan bukannya julat harga. Apabila variasi dipilih, harga akan dikemas kini untuk menggambarkan harga variasi yang dipilih.

Penyelesaian ini serasi dengan WooCommerce 3 dan ke atas. Ia menggantikan julat harga berubah dengan harga variasi yang dipilih, memastikan pelanggan melihat harga yang jelas dan tepat untuk variasi produk yang dipilih.

Atas ialah kandungan terperinci Bagaimana untuk Memaparkan Harga Variasi Terpilih Daripada Julat Harga pada Halaman Produk Pembolehubah WooCommerce?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan