Maison >développement back-end >tutoriel php >Comment remplacer la fourchette de prix variable par le prix de variation choisi dans WooCommerce 3 ?

Comment remplacer la fourchette de prix variable par le prix de variation choisi dans WooCommerce 3 ?

DDD
DDDoriginal
2024-11-15 00:56:02697parcourir

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

Remplacement de la fourchette de prix variable par le prix de variation choisi dans WooCommerce 3

Problème :

Sur les produits variables dans WooCommerce, la mise en page standard affiche un prix gamme sous le titre du produit. Cela peut prêter à confusion et induire en erreur les clients qui souhaitent connaître le prix exact du produit avec les variantes sélectionnées.

Solution :

Ce code répond aux problème en supprimant la fourchette de prix et en affichant uniquement le prix du produit le plus bas. De plus, il met à jour le prix affiché en fonction de la variation sélectionnée.

Code:


<br>add_action( 'woocommerce_before_single_product', 'move_variations_single_price', 1 );<br>fonction 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>Supplémentaire Notes :

  • Ce code est compatible avec les versions 3.2.x et supérieures de WooCommerce.
  • Il est recommandé de déplacer éventuellement le CSS vers la feuille de style de votre thème actif pour une meilleure lisibilité.
  • Le code ne gère pas la compatibilité avec certains plugins ou thèmes qui modifient le crochets.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn