Dans WooCommerce, la page produit variable affiche une fourchette de prix au lieu d'un prix unique. Bien que cela puisse être utile pour certains produits, cela peut s’avérer indésirable dans d’autres cas. Cet article propose une solution pour remplacer la fourchette de prix par la variation de prix choisie, en garantissant que seul le prix disponible le plus bas soit affiché.
Pour y parvenir, nous utiliserons une fonction PHP personnalisée et un script jQuery. La fonction PHP supprimera la fourchette de prix par défaut et la remplacera par un prix fictif. Le script jQuery mettra ensuite à jour le prix de l'espace réservé avec le prix de variation choisi lorsqu'une variation est sélectionnée.
Voici le code qui gérera cela :
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="availability">'+$('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="price">'.$price.'</p> <div class="hidden-variable-price" >'.$price.'</div>'; }
Le code peut être placé dans n'importe quel fichier PHP dans votre thème enfant ou dans le fichier function.php de votre thème. Il est recommandé d'utiliser un thème enfant pour éviter de perdre les personnalisations lors de la mise à jour de votre thème.
Une fois le code ajouté, la page produit variable affichera le prix disponible le plus bas au lieu de la fourchette de prix. Lorsqu'une variante est sélectionnée, le prix sera mis à jour pour refléter le prix de la variante choisie.
Cette solution est compatible avec WooCommerce 3 et supérieur. Il remplace la fourchette de prix variable par la variation de prix choisie, garantissant ainsi que les clients voient un prix clair et précis pour la variation de produit sélectionnée.
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!