Heim  >  Artikel  >  Backend-Entwicklung  >  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:02623Durchsuche

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

Replacing the Variable Price Range with the Chosen Variation Price in WooCommerce 3

Problem:

On variable products in WooCommerce, the standard layout displays a price range under the product title. This can be confusing and misleading for customers who want to know the exact price of the product with their selected variations.

Solution:

This code addresses the issue by removing the price range and displaying only the lowest product price. Additionally, it updates the displayed price based on the selected variation.

Code:


<br>add_action( 'woocommerce_before_single_product', 'move_variations_single_price', 1 );<br>function move_variations_single_price(){</p>
<pre class="brush:php;toolbar:false">global $product, $post;

if ( $product-&gt;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-&gt;get_variation_price( 'min', true ), $product-&gt;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-&gt;get_variation_regular_price( 'min', true ), $product-&gt;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-&gt;is_on_sale() ) {
    $price = '&lt;del&gt;' . $saleprice . $product-&gt;get_price_suffix() . '&lt;/del&gt; &lt;ins&gt;' . $price . $product-&gt;get_price_suffix() . '&lt;/ins&gt;';
}

?&gt;
&lt;style&gt;
    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;
    }
&lt;/style&gt;
&lt;script&gt;
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 &gt; span.price').html()).append('&lt;p>

}

Additional Notes:

  • This code is compatible with WooCommerce versions 3.2.x and higher.
  • It is recommended to optionally move the CSS to the stylesheet of your active theme for better readability.
  • The code does not handle compatibility with certain plugins or themes that modify WooCommerce's hooks.

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