• Resolved Abhinav Jain

    (@abhinav307)


    I am using the following code to add a Buy Now button on my client’s website. The code is by LoicTheAztec

    Here is the code:

    add_action( 'woocommerce_after_add_to_cart_button', 'add_custom_addtocart_and_checkout' );
    function add_custom_addtocart_and_checkout() {
        global $product;
    
        $addtocart_url = wc_get_checkout_url().'?add-to-cart='.$product->get_id();
        $button_class  = 'single_add_to_cart_button button alt custom-checkout-btn';
        $button_text   = __("Buy & Checkout", "woocommerce");
    
        if( $product->is_type( 'simple' )) :
        ?>
        <script>
        jQuery(function($) {
            var url    = '<?php echo $addtocart_url; ?>',
                qty    = 'input.qty',
                button = 'a.custom-checkout-btn';
    
            // On input/change quantity event
            $(qty).on('input change', function() {
                $(button).attr('href', url + '&quantity=' + $(this).val() );
            });
        });
        </script>
        <?php
    
        elseif( $product->is_type( 'variable' ) ) : 
    
        $addtocart_url = wc_get_checkout_url().'?add-to-cart=';
        ?>
        <script>
        jQuery(function($) {
            var url    = '<?php echo $addtocart_url; ?>',
                vid    = 'input[name="variation_id"]',
                pid    = 'input[name="product_id"]',
                qty    = 'input.qty',
                button = 'a.custom-checkout-btn';
    
            // Once DOM is loaded
            setTimeout( function(){
                if( $(vid).val() != '' ){
                    $(button).attr('href', url + $(vid).val() + '&quantity=' + $(qty).val() );
                }
            }, 300 );
    
            // On input/change quantity event
            $(qty).on('input change', function() {
                if( $(vid).val() != '' ){
                    $(button).attr('href', url + $(vid).val() + '&quantity=' + $(this).val() );
                }
            });
    
            // On select attribute field change event
            $('.variations_form').on('change blur', 'table.variations select', function() {
                if( $(vid).val() != '' ){
                    $(button).attr('href', url + $(vid).val() + '&quantity=' + $(qty).val() );
                }
            });
        });
        </script>
        <?php
        endif;
        echo '<a href="'.$addtocart_url.'" class="'.$button_class.'">'.$button_text.'</a>';
    }

    Now, the problem is whenever I am clicking on the Buy Now button with the default variations set in the Product editor, the code is not working.

    The Buy Now URL in this case becomes …/?addtocart=0&quantity=n

    Any solutions?

    The page I need help with: [log in to see the link]

Viewing 5 replies - 1 through 5 (of 5 total)
Viewing 5 replies - 1 through 5 (of 5 total)
  • The topic ‘BUY Now Button not working’ is closed to new replies.