';
}
add_action( 'woocommerce_before_main_content', 'blog_tale_woocommerce_content_wrapper_start', 9 );
/**
* Close container wrapper class after sidebar
*
*/
function blog_tale_woocommerce_content_wrapper_end(){
echo '';
}
add_action( 'woocommerce_sidebar', 'blog_tale_woocommerce_content_wrapper_end', 50 );
/**
* Products per page.
*
* @return integer number of products.
*/
function blog_tale_woocommerce_products_per_page() {
return 12;
}
add_filter( 'loop_shop_per_page', 'blog_tale_woocommerce_products_per_page' );
/**
* Product gallery thumnbail columns.
*
* @return integer number of columns.
*/
function blog_tale_woocommerce_thumbnail_columns() {
return 4;
}
add_filter( 'woocommerce_product_thumbnails_columns', 'blog_tale_woocommerce_thumbnail_columns' );
/**
* Default loop columns on product archives.
*
* @return integer products per row.
*/
function blog_tale_woocommerce_loop_columns() {
return 3;
}
add_filter( 'loop_shop_columns', 'blog_tale_woocommerce_loop_columns' );
/**
* Related Products Args.
*
* @param array $args related products args.
* @return array $args related products args.
*/
function blog_tale_woocommerce_related_products_args( $args ) {
$defaults = array(
'posts_per_page' => 3,
'columns' => 3,
);
$args = wp_parse_args( $defaults, $args );
return $args;
}
add_filter( 'woocommerce_output_related_products_args', 'blog_tale_woocommerce_related_products_args' );
if ( ! function_exists( 'blog_tale_woocommerce_product_columns_wrapper' ) ) {
/**
* Product columns wrapper.
*
* @return void
*/
function blog_tale_woocommerce_product_columns_wrapper() {
$columns = blog_tale_woocommerce_loop_columns();
echo '
';
}
}
add_action( 'woocommerce_before_shop_loop', 'blog_tale_woocommerce_product_columns_wrapper', 40 );
if ( ! function_exists( 'blog_tale_woocommerce_product_columns_wrapper_close' ) ) {
/**
* Product columns wrapper close.
*
* @return void
*/
function blog_tale_woocommerce_product_columns_wrapper_close() {
echo '
';
}
}
add_action( 'woocommerce_after_shop_loop', 'blog_tale_woocommerce_product_columns_wrapper_close', 40 );
/**
* Remove default WooCommerce wrapper.
*/
remove_action( 'woocommerce_before_main_content', 'woocommerce_output_content_wrapper', 10 );
remove_action( 'woocommerce_after_main_content', 'woocommerce_output_content_wrapper_end', 10 );
if ( ! function_exists( 'blog_tale_woocommerce_wrapper_before' ) ) {
/**
* Before Content.
*
* Wraps all WooCommerce content in wrappers which match the theme markup.
*
* @return void
*/
function blog_tale_woocommerce_wrapper_before() {
?>
*/
if ( ! function_exists( 'blog_tale_woocommerce_cart_link_fragment' ) ) {
/**
* Cart Fragments.
*
* Ensure cart contents update when products are added to the cart via AJAX.
*
* @param array $fragments Fragments to refresh via AJAX.
* @return array Fragments to refresh via AJAX.
*/
function blog_tale_woocommerce_cart_link_fragment( $fragments ) {
ob_start();
blog_tale_woocommerce_cart_link();
$fragments['a.cart-contents'] = ob_get_clean();
return $fragments;
}
}
add_filter( 'woocommerce_add_to_cart_fragments', 'blog_tale_woocommerce_cart_link_fragment' );
if ( ! function_exists( 'blog_tale_woocommerce_cart_link' ) ) {
/**
* Cart Link.
*
* Displayed a link to the cart including the number of items present and the cart total.
*
* @return void
*/
function blog_tale_woocommerce_cart_link() {
?>
cart->get_cart_contents_count()); ?>