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.