Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save UraraReika/24aaebe1bf340ca2c057ba64de2f1a87 to your computer and use it in GitHub Desktop.
Save UraraReika/24aaebe1bf340ca2c057ba64de2f1a87 to your computer and use it in GitHub Desktop.
Adding AJAX support for adding to cart
<?php
add_filter( 'jet-woo-builder/template-functions/product-add-to-cart-settings', 'wvs_pro_archive_variation_button_args', 999, 2 );
function wvs_pro_archive_variation_button_args( $args, $product ) {
$ajax_add_to_cart_enabled = 'yes' === get_option( 'woocommerce_enable_ajax_add_to_cart' );
if ( 'variable' === $product->get_type() ) {
$classname = WC_Product_Factory::get_classname_from_product_type( 'simple' );
$as_single_product = new $classname( $product->get_id() );
$args['attributes']['data-add-to-cart'] = htmlspecialchars( wp_kses_post( apply_filters( 'woo_variation_swatches_archive_add_to_cart_text', apply_filters( 'woo_variation_swatches_archive_add_to_cart_button_text', apply_filters( 'add_to_cart_text', $as_single_product->add_to_cart_text() ), $product ), $product, $as_single_product ) ) );
$args['attributes']['data-select-options'] = htmlspecialchars( wp_kses_post( apply_filters( 'woo_variation_swatches_archive_add_to_cart_select_options', apply_filters( 'woo_variation_swatches_archive_add_to_cart_button_text', apply_filters( 'variable_add_to_cart_text', $product->add_to_cart_text() ), $product ), $product, $as_single_product ) ) );
$args['class'] .= ' wvs_add_to_cart_button wvs-add-to-cart-button';
if ( $ajax_add_to_cart_enabled ) {
$args['class'] .= ' wvs_ajax_add_to_cart';
} else {
$args[ 'attributes' ][ 'data-product_permalink' ] = $product->add_to_cart_url();
$args['attributes']['data-add_to_cart_url'] = $product->is_purchasable() && $product->is_in_stock() ? wvs_pro_get_current_url() : get_permalink( $product->get_id() );
}
$args[ 'attributes' ][ 'data-variation_id' ] = "";
$args[ 'attributes' ][ 'data-variation' ] = "";
}
return $args;
}
@vamlemat
Copy link

I am interested that when clicking the add to cart button, instead of adding to the cart, go to the product page with the selected attributes, that is, remove the parameters:

&add-to-cart=1964&variation_id=1973

It can?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment