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.