WooFrance Dépannage et support WordPress WooCommerce › Forums › Forum de Support WooCommerce › WooCommerce – Prix dans bouton add to cart
Étiqueté : WooCommmerce JS jQuery
- Ce sujet est vide.
-
AuteurMessages
-
1 février 2023 à 7 h 17 min #208266
Bonjour,
J’ai un petit soucis, et je n’arrive pas à le résoudre seul. Tout fonctionnait niquel et depuis aujourd’hui (enfin, je crois) je n’arrive pas à faire afficher le prix d’un article en variable dans mon bouton add to cart.
Pourtant, ça fonctionne avec les produits n’ayant pas de variable.Voici un exemple : http://www.jgh-webdesign.fr/HCPRESTIGE/produit/get-ready-micellar-spray/
On peut y voir que s’affiche bien le symbole “€”, mais normalement il devrait y avoir le prix aussi, en fonction du choix des ml.
Je ne comprends pas pourquoi il ne s’affiche pas, surtout que quand on analyse le script, il a bien récupéré le prix des 2 variations.Une idée quelqu’un ?
Voici le code que j’utilise :
<code class=”jscript plain”>add_filter( <code class=”jscript string”>’woocommerce_product_add_to_cart_text'<code class=”jscript plain”>, <code class=”jscript string”>’custom_add_to_cart_price'<code class=”jscript plain”>, 20, 2 ); <code class=”jscript comments”>// Shop and other archives pages<code class=”jscript plain”>add_filter( <code class=”jscript string”>’woocommerce_product_single_add_to_cart_text'<code class=”jscript plain”>, <code class=”jscript string”>’custom_add_to_cart_price'<code class=”jscript plain”>, 20, 2 ); <code class=”jscript comments”>// Single product pages<code class=”jscript keyword”>function <code class=”jscript plain”>custom_add_to_cart_price( $button_text, $product ) {<code class=”jscript spaces”> <code class=”jscript comments”>// Variable products<code class=”jscript spaces”> <code class=”jscript keyword”>if<code class=”jscript plain”>( $product->is_type(<code class=”jscript string”>’variable'<code class=”jscript plain”>) ) {<code class=”jscript spaces”> <code class=”jscript comments”>// shop and archives<code class=”jscript spaces”> <code class=”jscript keyword”>if<code class=”jscript plain”>( ! is_product() ){<code class=”jscript spaces”> <code class=”jscript plain”>$product_price = wc_price( wc_get_price_to_display( $product, array( <code class=”jscript string”>’price’ <code class=”jscript plain”>=> $product->get_variation_price() ) ) );<code class=”jscript spaces”> <code class=”jscript keyword”>return <code class=”jscript plain”>$button_text . <code class=”jscript string”>’ – Dès ‘ <code class=”jscript plain”>. strip_tags( $product_price );<code class=”jscript spaces”> <code class=”jscript plain”>}<code class=”jscript spaces”> <code class=”jscript comments”>// Single product pages<code class=”jscript spaces”> <code class=”jscript keyword”>else <code class=”jscript plain”>{<code class=”jscript spaces”> <code class=”jscript plain”>$variations_data =[]; <code class=”jscript comments”>// Initializing<code class=”jscript spaces”> <code class=”jscript comments”>// Loop through variations data<code class=”jscript spaces”> <code class=”jscript plain”>foreach($product->get_available_variations() as $variation ) {<code class=”jscript spaces”> <code class=”jscript comments”>// Set for each variation ID the corresponding price in the data array (to be used in jQuery)<code class=”jscript spaces”> <code class=”jscript plain”>$variations_data[$variation[<code class=”jscript string”>’variation_id'<code class=”jscript plain”>]] = $variation[<code class=”jscript string”>’display_price'<code class=”jscript plain”>];<code class=”jscript spaces”> <code class=”jscript plain”>}<code class=”jscript spaces”> <code class=”jscript plain”>?><code class=”jscript spaces”> <code class=”jscript plain”><script><code class=”jscript spaces”> <code class=”jscript plain”>jQuery(<code class=”jscript keyword”>function<code class=”jscript plain”>($) {<code class=”jscript spaces”> <code class=”jscript keyword”>var <code class=”jscript plain”>jsonData = <?php echo json_encode($variations_data); ?>,<code class=”jscript spaces”> <code class=”jscript plain”>inputVID = <code class=”jscript string”>’input.variation_id'<code class=”jscript plain”>;<code class=”jscript spaces”> <code class=”jscript plain”>$(<code class=”jscript string”>’input'<code class=”jscript plain”>).change( <code class=”jscript keyword”>function<code class=”jscript plain”>(){<code class=”jscript spaces”> <code class=”jscript keyword”>if<code class=”jscript plain”>( <code class=”jscript string”>” <code class=”jscript plain”>!= $(inputVID).val() ) {<code class=”jscript spaces”> <code class=”jscript keyword”>var <code class=”jscript plain”>vid = $(inputVID).val(), <code class=”jscript comments”>// VARIATION ID<code class=”jscript spaces”> <code class=”jscript plain”>vprice = <code class=”jscript string”>”<code class=”jscript plain”>; <code class=”jscript comments”>// Initilizing<code class=”jscript spaces”> <code class=”jscript comments”>// Loop through variation IDs / Prices pairs<code class=”jscript spaces”> <code class=”jscript plain”>$.each( jsonData, <code class=”jscript keyword”>function<code class=”jscript plain”>( index, price ) {<code class=”jscript spaces”> <code class=”jscript keyword”>if<code class=”jscript plain”>( index == $(inputVID).val() ) {<code class=”jscript spaces”> <code class=”jscript plain”>vprice = (price).toFixed(2); <code class=”jscript comments”>// The right variation price<code class=”jscript spaces”> <code class=”jscript plain”>}<code class=”jscript spaces”> <code class=”jscript plain”>});<code class=”jscript spaces”> <code class=”jscript comments”>// Change price dynamically when changing options<code class=”jscript spaces”> <code class=”jscript plain”>$( <code class=”jscript string”>”button.single_add_to_cart_button.button.alt span” <code class=”jscript plain”>).remove();<code class=”jscript spaces”> <code class=”jscript plain”>$(<code class=”jscript string”>”.single_add_to_cart_button”<code class=”jscript plain”>).append(<code class=”jscript string”>”<span>” <code class=”jscript plain”>+ <code class=”jscript string”>” ” <code class=”jscript plain”>+ vprice + <code class=”jscript string”>” €” <code class=”jscript plain”>+ <code class=”jscript string”>”</span>”<code class=”jscript plain”>);<code class=”jscript spaces”> <code class=”jscript plain”>}<code class=”jscript spaces”> <code class=”jscript plain”>});<code class=”jscript spaces”> <code class=”jscript plain”>});<code class=”jscript spaces”> <code class=”jscript plain”></script><?php<code class=”jscript spaces”> <code class=”jscript keyword”>return <code class=”jscript plain”>$button_text;<code class=”jscript spaces”> <code class=”jscript plain”>}<code class=”jscript spaces”> <code class=”jscript plain”>}<code class=”jscript spaces”> <code class=”jscript comments”>// All other product types<code class=”jscript spaces”> <code class=”jscript keyword”>else <code class=”jscript plain”>{<code class=”jscript spaces”> <code class=”jscript plain”>$product_price = wc_price( wc_get_price_to_display( $product ) );<code class=”jscript spaces”> <code class=”jscript keyword”>return <code class=”jscript plain”>$button_text . <code class=”jscript string”>’ ‘ <code class=”jscript plain”>. strip_tags( $product_price );<code class=”jscript spaces”> <code class=”jscript plain”>}<code class=”jscript plain”>} -
AuteurMessages
- Vous devez être connecté pour répondre à ce sujet.