Disable ajax add to cart only on variable products

This topic has 4 replies, 3 voices, and was last updated 7 months, 4 weeks ago ago by Andrew Mitchell

  • Avatar: Lucas
    Lucas
    Participant
    April 23, 2024 at 18:14

    Hello support,

    I would like to disable ajax add to cart only on variable products in order to use a third-party plugin for product fields add-on.

    I disabled “Ajax add to cart” in the theme options and it worked great.

    But I would like to keep this option only for simple products and disable it on variable products.
    Can you help me on doing this please?

    Thanks in advance,
    Lucas

    Files is visible for topic creator and
    support staff only.
    3 Answers
    Avatar: Justin
    Luca Rossi
    Support staff
    April 24, 2024 at 05:26

    Hi @Lucas,

    Please keep that option disabled. After creating a PHP file named as simple.php under your child theme directory: xstore-child/woocommerce/single-product/add-to-cart/ with the following code:

    
    <?php
    /**
     * Simple product add to cart
     *
     * This template can be overridden by copying it to yourtheme/woocommerce/single-product/add-to-cart/simple.php.
     *
     * HOWEVER, on occasion WooCommerce will need to update template files and you (the theme developer).
     * will need to copy the new files to your theme to maintain compatibility. We try to do this.
     * as little as possible, but it does happen. When this occurs the version of the template file will.
     * be bumped and the readme will list any important changes.
     *
     * @see 	    http://docs.woothemes.com/document/template-structure/
     * @author 		WooThemes
     * @package 	WooCommerce/Templates
     * @version     7.0.1
     */
    
    if ( ! defined( 'ABSPATH' ) ) {
    	exit; // Exit if accessed directly
    }
    
    global $product;
    
    if ( ! $product->is_purchasable() ) {
    	return;
    }
    
    $qty_val = ( isset( $_POST['quantity'] ) ? wc_stock_amount( wp_unslash( $_POST['quantity'] ) ) : 1 );
    
    $btn_class = '';
    
    //if( $product->supports( 'ajax_add_to_cart' ) && etheme_get_option( 'ajax_add_to_cart', 1 ) ) {
    	$btn_class = 'add_to_cart_button ajax_add_to_cart';
    //}
    
    $btn_class = apply_filters( 'et_single_add_to_cart_btn_class', $btn_class );
    
    $woo_new_7_0_1_version = etheme_woo_version_check();
    $button_class = '';
    if ( $woo_new_7_0_1_version ) {
        $button_class = wc_wp_theme_get_element_class_name( 'button' );
    }
    
    ?>
    
    <?php
    	echo wc_get_stock_html( $product );
    ?>
    
    <?php if ( $product->is_in_stock() ) : ?>
    
    	<?php do_action( 'woocommerce_before_add_to_cart_form' ); ?>
    
    	<form class="cart" method="post" enctype='multipart/form-data' action="<?php echo esc_url( apply_filters( 'woocommerce_add_to_cart_form_action', $product->get_permalink() ) ); ?>">
    	 	<?php
    
    	 			do_action( 'woocommerce_before_add_to_cart_button' );
    
    				do_action( 'woocommerce_before_add_to_cart_quantity' );
    
    	 			woocommerce_quantity_input( array(
    					'min_value'   => apply_filters( 'woocommerce_quantity_input_min', $product->get_min_purchase_quantity(), $product ),
    					'max_value'   => apply_filters( 'woocommerce_quantity_input_max', $product->get_max_purchase_quantity(), $product ),
    					'input_value' => isset( $_POST['quantity'] ) ? wc_stock_amount( wp_unslash( $_POST['quantity'] ) ) : $product->get_min_purchase_quantity(), // WPCS: CSRF ok, input var ok.
    				) );
    
    				do_action( 'woocommerce_after_add_to_cart_quantity' );
    
    	 	?>
    
    	 	<input type="hidden" name="add-to-cart" value="<?php echo esc_attr( $product->get_id() ); ?>" />
    
    	 	<button type="submit" data-quantity="<?php echo esc_attr( $qty_val ); ?>" data-product_id="<?php echo esc_attr( $product->get_id() ); ?>" class="<?php echo esc_attr( $btn_class ); ?> single_add_to_cart_button button alt<?php echo esc_attr( $button_class ? ' ' . $button_class : '' ); ?>"><?php echo esc_html( $product->single_add_to_cart_text() ); ?></button>
    
    		<?php do_action( 'woocommerce_after_add_to_cart_button' ); ?>
    	</form>
    
    	<?php do_action( 'woocommerce_after_add_to_cart_form' ); ?>
    
    <?php endif; ?>
    

    Hope it helps!

    Avatar: Lucas
    Lucas
    Participant
    April 24, 2024 at 08:47

    Hi Luca,

    Thanks it helped me a lot !

    Cheers

    Avatar: Andrew Mitchell
    Andrew Mitchell
    Support staff
    April 24, 2024 at 08:47

    Dear Lucas,

    As we continue our mission to exceed expectations, your insights become increasingly valuable. Could we, with all due respect, request your thoughtful feedback by giving our theme a deserved 5-star rating on ThemeForest?

    Click here to share your valuable perspective: https://themeforest.net/downloads

    Your time and trust are highly appreciated!

    Best Regards,
    The 8Theme Team

  • Viewing 4 results - 1 through 4 (of 4 total)

The issue related to '‘Disable ajax add to cart only on variable products’' has been successfully resolved, and the topic is now closed for further responses

We're using our own and third-party cookies to improve your experience and our website. Keep on browsing to accept our cookie policy.