Created
February 27, 2023 13:29
-
-
Save beamkiller/41412128674b11104d583664d1cfa565 to your computer and use it in GitHub Desktop.
Gold-shop.sk - UX Builder Products element Quantity issue
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
add_filter( 'woocommerce_loop_add_to_cart_link', 'quantity_inputs_for_loop_ajax_add_to_cart', 10, 2 ); | |
/** | |
* Add qty button and ajax to add to cart | |
* @link https://stackoverflow.com/questions/48722178/add-a-quantity-field-to-ajax-add-to-cart-button-on-woocommerce-shop-page | |
* | |
*/ | |
function quantity_inputs_for_loop_ajax_add_to_cart( $html, $product ) { | |
if ( $product && $product->is_type( 'simple' ) && $product->is_purchasable() && $product->is_in_stock() && ! $product->is_sold_individually() ) { | |
// Get the necessary classes | |
$class = implode( ' ', array_filter( array( | |
'button', | |
'product_type_' . $product->get_type(), | |
$product->is_purchasable() && $product->is_in_stock() ? 'add_to_cart_button' : '', | |
$product->supports( 'ajax_add_to_cart' ) ? 'ajax_add_to_cart' : '', | |
) ) ); | |
if (!isset($_GET['wc-ajax']) || $_GET['wc-ajax'] !== 'dgwt_wcas_result_details') { | |
/* $html = ''; */ | |
// Embedding the quantity field to Ajax add to cart button | |
$html = sprintf( '%s<div class="add-to-cart-button"><a rel="nofollow" href="%s" data-quantity="%s" data-product_id="%s" data-product_sku="%s" class="%s">%s</a></div>', | |
woocommerce_quantity_input( array(), $product, false ), | |
esc_url( $product->add_to_cart_url() ), | |
esc_attr( isset( $quantity ) ? $quantity : 1 ), | |
esc_attr( $product->get_id() ), | |
esc_attr( $product->get_sku() ), | |
esc_attr( isset( $class ) ? $class : 'button' ), | |
esc_html( $product->add_to_cart_text() ) | |
); | |
/* $html .= ''; */ | |
} | |
} | |
return $html; | |
} | |
add_action( 'wp_footer' , 'archives_quantity_fields_script' ); | |
function archives_quantity_fields_script(){ | |
?> | |
<script type='text/javascript'> | |
jQuery(function($){ | |
// Update data-quantity | |
$(document.body).on('click input', 'input.qty', function() { | |
$(this).parent().parent().find('a.ajax_add_to_cart').attr('data-quantity', $(this).val()); | |
// (optional) Removing other previous "view cart" buttons | |
$(".added_to_cart").remove(); | |
}); | |
}); | |
</script> | |
<?php | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment