Heim > Backend-Entwicklung > PHP-Tutorial > Wie zeige ich den gewählten Variationspreis anstelle der Preisspanne auf variablen Produktseiten von WooCommerce an?

Wie zeige ich den gewählten Variationspreis anstelle der Preisspanne auf variablen Produktseiten von WooCommerce an?

Patricia Arquette
Freigeben: 2024-11-29 07:37:14
Original
518 Leute haben es durchsucht

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

Ersetzen Sie die variable Preisspanne durch den gewählten Variationspreis in WooCommerce 3

In WooCommerce zeigt die variable Produktseite eine Preisspanne an statt eines Einzelpreises. Während dies bei manchen Produkten sinnvoll sein kann, kann es in anderen Fällen auch unerwünscht sein. Dieser Artikel bietet eine Lösung, um die Preisspanne durch den gewählten Variationspreis zu ersetzen und so sicherzustellen, dass nur der niedrigste verfügbare Preis angezeigt wird.

Um dies zu erreichen, verwenden wir eine benutzerdefinierte PHP-Funktion und ein jQuery-Skript. Die PHP-Funktion entfernt die Standardpreisspanne und ersetzt sie durch einen Platzhalterpreis. Das jQuery-Skript aktualisiert dann den Platzhalterpreis mit dem ausgewählten Variationspreis, wenn eine Variation ausgewählt wird.

Hier ist der Code, der dies erledigt:

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>';
}
Nach dem Login kopieren

Der Code kann eingefügt werden jede PHP-Datei in Ihrem untergeordneten Theme oder der Datei „functions.php“ des Themes. Es wird empfohlen, ein untergeordnetes Theme zu verwenden, um zu vermeiden, dass beim Aktualisieren Ihres Themes Anpassungen verloren gehen.

Sobald der Code hinzugefügt wurde, wird auf der variablen Produktseite der niedrigste verfügbare Preis anstelle der Preisspanne angezeigt. Wenn eine Variante ausgewählt wird, wird der Preis aktualisiert, um den Preis der ausgewählten Variante widerzuspiegeln.

Diese Lösung ist mit WooCommerce 3 und höher kompatibel. Es ersetzt die variable Preisspanne durch den ausgewählten Variationspreis und stellt so sicher, dass Kunden einen klaren und genauen Preis für die ausgewählte Produktvariation sehen.

Das obige ist der detaillierte Inhalt vonWie zeige ich den gewählten Variationspreis anstelle der Preisspanne auf variablen Produktseiten von WooCommerce an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage