Heim >Backend-Entwicklung >PHP-Tutorial >Wie ersetze ich in WooCommerce 3 die variable Preisspanne durch den gewählten Variationspreis?

Wie ersetze ich in WooCommerce 3 die variable Preisspanne durch den gewählten Variationspreis?

DDD
DDDOriginal
2024-11-15 00:56:02700Durchsuche

How to Replace the Variable Price Range with the Chosen Variation Price in WooCommerce 3?

Ersetzen der variablen Preisspanne durch den gewählten Variationspreis in WooCommerce 3

Problem:

Bei variablen Produkten in WooCommerce zeigt das Standardlayout eine Preisspanne unter dem Produkt an Titel. Dies kann für Kunden verwirrend und irreführend sein, die den genauen Preis des Produkts mit ihren ausgewählten Variationen wissen möchten.

Lösung:

Dieser Code befasst sich mit dem Problem, indem die Preisspanne entfernt und nur der niedrigste Produktpreis angezeigt wird. Darüber hinaus wird der angezeigte Preis basierend auf der ausgewählten Variante aktualisiert.

Code:


<br>add_action( 'woocommerce_before_single_product', 'move_variations_single_price', 1 );<br>Funktion move_variations_single_price(){</p>
<pre class="brush:php;toolbar:false">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;

// Prices and calculations
$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] );

$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 &amp;&amp; $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>

}

< ;h3>Zusätzlich Hinweise:

  • Dieser Code ist mit WooCommerce-Versionen 3.2.x und höher kompatibel.
  • Es wird empfohlen, das CSS optional in das Stylesheet Ihres aktiven Themes zu verschieben zur besseren Lesbarkeit.
  • Der Code kümmert sich nicht um die Kompatibilität mit bestimmten Plugins oder Themes, die WooCommerce modifizieren Haken.

Das obige ist der detaillierte Inhalt vonWie ersetze ich in WooCommerce 3 die variable Preisspanne durch den gewählten Variationspreis?. 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