WooFrance Dépannage et support WordPress WooCommerce Forums Forum de Support WooCommerce WooCommerce – Prix dans bouton add to cart

Étiqueté : 

  • Ce sujet est vide.
Affichage de 1 message (sur 1 au total)
  • Auteur
    Messages
  • #208266
    jeremy.hedin85
    Participant
    Points: 12 pts

    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”>}
    depanagewp
Affichage de 1 message (sur 1 au total)
  • Vous devez être connecté pour répondre à ce sujet.