Created
December 11, 2019 06:17
-
-
Save cuocsongso/1cd9533974b50c1097e4ececa12f575b to your computer and use it in GitHub Desktop.
How to Add a Quantity Field to Shop Pages in WooCommerce by Thembay PHP file
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
/* How to Add a Quantity Field to Shop Pages in WooCommerce by Thembay */ | |
function thembay_shop_page_add_quantity_field() { | |
/** @var WC_Product $product */ | |
$product = wc_get_product( get_the_ID() ); | |
if ( ! $product->is_sold_individually() && 'variable' != $product->get_type() && $product->is_purchasable() && $product->is_in_stock() ) { | |
woocommerce_quantity_input( array( 'min_value' => 1, 'max_value' => $product->backorders_allowed() ? '' : $product->get_stock_quantity() ) ); | |
} | |
} | |
add_action( 'woocommerce_after_shop_loop_item', 'thembay_shop_page_add_quantity_field', 1 ); | |
/** | |
* Add required JavaScript. | |
*/ | |
function thembay_shop_page_quantity_add_to_cart_handler() { | |
wc_enqueue_js( ' | |
$(".woocommerce .products").on("click", ".quantity input", function() { | |
return false; | |
}); | |
$(".woocommerce .products").on("change input", ".quantity .qty", function() { | |
var add_to_cart_button = $(this).parents( ".product" ).find(".add_to_cart_button"); | |
// For AJAX add-to-cart actions | |
add_to_cart_button.data("quantity", $(this).val()); | |
// For non-AJAX add-to-cart actions | |
add_to_cart_button.attr("href", "?add-to-cart=" + add_to_cart_button.attr("data-product_id") + "&quantity=" + $(this).val()); | |
}); | |
// Trigger on Enter press | |
$(".woocommerce .products").on("keypress", ".quantity .qty", function(e) { | |
if ((e.which||e.keyCode) === 13) { | |
$( this ).parents(".product").find(".add_to_cart_button").trigger("click"); | |
} | |
}); | |
' ); | |
} | |
add_action( 'init', 'thembay_shop_page_quantity_add_to_cart_handler' ); | |
function urna_child_tbay_product_layout_style($type) { | |
return 'v15'; | |
} | |
add_filter( 'urna_woo_config_product_layout', 'urna_child_tbay_product_layout_style', 100, 1 ); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment