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
Patricia ArquetteOriginal
2024-11-29 07:37:14507Durchsuche

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>';
}

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!

Stellungnahme:
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