Last active
August 29, 2015 14:23
-
-
Save WillBrubaker/91bff7ed411b68c91e85 to your computer and use it in GitHub Desktop.
Add Quantity Inputs to Simple Products on the WooCommerce Shop Page
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 | |
/** | |
* The template for displaying product content within loops. | |
* | |
* Override this template by copying it to yourtheme/woocommerce/content-product.php | |
* Adapted from work originally authored by WooThemes | |
* @license [<http://fsf.org/>] [GPL 3] | |
* @version 1.6.4 | |
*/ | |
if ( ! defined( 'ABSPATH' ) ) { | |
exit; // Exit if accessed directly | |
} | |
global $product, $woocommerce_loop; | |
// Store loop count we're currently on | |
if ( empty( $woocommerce_loop['loop'] ) ) { | |
$woocommerce_loop['loop'] = 0; | |
} | |
// Store column count for displaying the grid | |
if ( empty( $woocommerce_loop['columns'] ) ) { | |
$woocommerce_loop['columns'] = apply_filters( 'loop_shop_columns', 4 ); | |
} | |
// Ensure visibility | |
if ( ! $product || ! $product->is_visible() ) { | |
return; | |
} | |
// Increase loop count | |
$woocommerce_loop['loop']++; | |
// Extra post classes | |
$classes = array(); | |
if ( 0 == ( $woocommerce_loop['loop'] - 1 ) % $woocommerce_loop['columns'] || 1 == $woocommerce_loop['columns'] ) { | |
$classes[] = 'first'; | |
} | |
if ( 0 == $woocommerce_loop['loop'] % $woocommerce_loop['columns'] ) { | |
$classes[] = 'last'; | |
} | |
?> | |
<li <?php post_class( $classes ); ?>> | |
<?php do_action( 'woocommerce_before_shop_loop_item' ); ?> | |
<a href="<?php the_permalink(); ?>"> | |
<?php | |
/** | |
* woocommerce_before_shop_loop_item_title hook | |
* | |
* @hooked woocommerce_show_product_loop_sale_flash - 10 | |
* @hooked woocommerce_template_loop_product_thumbnail - 10 | |
*/ | |
do_action( 'woocommerce_before_shop_loop_item_title' ); | |
?> | |
<h3><?php the_title(); ?></h3> | |
<?php | |
/** | |
* woocommerce_after_shop_loop_item_title hook | |
* | |
* @hooked woocommerce_template_loop_rating - 5 | |
* @hooked woocommerce_template_loop_price - 10 | |
*/ | |
do_action( 'woocommerce_after_shop_loop_item_title' ); | |
?> | |
</a> | |
<?php | |
if ( 'simple' == $product->product_type ) { | |
remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 ); | |
add_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_single_add_to_cart', 10 ); | |
} else { | |
remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_single_add_to_cart', 10 ); | |
add_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 ); | |
} | |
/** | |
* woocommerce_after_shop_loop_item hook | |
* | |
* conditionally hooked woocommerce_template_single_add_to_cart - 10 | |
* conditionally hooked woocommerce_template_loop_add_to_cart - 10 | |
*/ | |
do_action( 'woocommerce_after_shop_loop_item' ); | |
?> | |
</li> |
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
/* | |
This is the companion CSS to go with content-product.php | |
If your theme has a place for custom CSS use the snippet below. May not work with all themes | |
but should serve as an example | |
*/ | |
#main li.product input { | |
float: none; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment