-
-
Save lukecav/2470d9fe6337e13da4faae2f6d5fe15f to your computer and use it in GitHub Desktop.
| <?php | |
| /** | |
| * Custom Loop Add to Cart. | |
| * | |
| * Template with quantity and ajax. | |
| */ | |
| if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly. | |
| global $product; | |
| ?> | |
| <?php if ( ! $product->is_in_stock() ) : ?> | |
| <a href="<?php echo apply_filters( 'out_of_stock_add_to_cart_url', get_permalink( $product->id ) ); ?>" class="button"><?php echo apply_filters( 'out_of_stock_add_to_cart_text', __( 'Read More', 'woocommerce' ) ); ?></a> | |
| <?php else : ?> | |
| <?php | |
| $link = array( | |
| 'url' => '', | |
| 'label' => '', | |
| 'class' => '' | |
| ); | |
| switch ( $product->product_type ) { | |
| case "variable" : | |
| $link['url'] = apply_filters( 'woocommerce_variable_add_to_cart', get_permalink( $product->id ) ); | |
| $link['label'] = apply_filters( 'variable_add_to_cart_text', __( 'Select options', 'woocommerce' ) ); | |
| break; | |
| case "grouped" : | |
| $link['url'] = apply_filters( 'grouped_add_to_cart_url', get_permalink( $product->id ) ); | |
| $link['label'] = apply_filters( 'grouped_add_to_cart_text', __( 'View options', 'woocommerce' ) ); | |
| break; | |
| case "external" : | |
| $link['url'] = apply_filters( 'external_add_to_cart_url', get_permalink( $product->id ) ); | |
| $link['label'] = apply_filters( 'external_add_to_cart_text', __( 'Read More', 'woocommerce' ) ); | |
| break; | |
| default : | |
| if ( $product->is_purchasable() ) { | |
| $link['url'] = apply_filters( 'add_to_cart_url', esc_url( $product->add_to_cart_url() ) ); | |
| $link['label'] = apply_filters( 'add_to_cart_text', __( 'Add to cart', 'woocommerce' ) ); | |
| $link['class'] = apply_filters( 'add_to_cart_class', 'add_to_cart_button' ); | |
| } else { | |
| $link['url'] = apply_filters( 'not_purchasable_url', get_permalink( $product->id ) ); | |
| $link['label'] = apply_filters( 'not_purchasable_text', __( 'Read More', 'woocommerce' ) ); | |
| } | |
| break; | |
| } | |
| // If there is a simple product. | |
| if ( $product->product_type == 'simple' ) { | |
| ?> | |
| <form action="<?php echo esc_url( $product->add_to_cart_url() ); ?>" class="cart" method="post" enctype="multipart/form-data"> | |
| <?php | |
| // Displays the quantity box. | |
| woocommerce_quantity_input(); | |
| // Display the submit button. | |
| echo sprintf( '<button type="submit" data-product_id="%s" data-product_sku="%s" data-quantity="1" class="%s button product_type_simple">%s</button>', esc_attr( $product->id ), esc_attr( $product->get_sku() ), esc_attr( $link['class'] ), esc_html( $link['label'] ) ); | |
| ?> | |
| </form> | |
| <?php | |
| } else { | |
| echo apply_filters( 'woocommerce_loop_add_to_cart_link', sprintf('<a href="%s" rel="nofollow" data-product_id="%s" data-product_sku="%s" class="%s button product_type_%s">%s</a>', esc_url( $link['url'] ), esc_attr( $product->id ), esc_attr( $product->get_sku() ), esc_attr( $link['class'] ), esc_attr( $product->product_type ), esc_html( $link['label'] ) ), $product, $link ); | |
| } | |
| ?> | |
| <?php endif; ?> |
There is a need to update $product->id to $product->get_id() and $product->product_type to $product->get_type() since Woocommerce 3.0.0 update
This looks awesome!
but I have one question . After add to cart on variation product it redirects to single page but I would like to stop on the same page and show the message on the header "Product has been added to cart"
Thanks in advance.
its working except the pricing , not displaying price for the selected quantity , could you please help with correct this code..support plsss. I am using wordpress /woocommerce site , i have entered this code through snippets pls support
Did anyone find a solution to the page reloading after the product was added?
Did anyone find a solution to the page reloading after the product was added?
Yes i did, after some research. Add this to your functions.php
// Disable add to cart redirection https://stackoverflow.com/questions/30998060/disable-add-to-cart-redirection/56732418#56732418 add_filter( 'woocommerce_add_to_cart_redirect', 'wp_get_referer' );
Hi this is best solution but i have question regarding product image , how we can show selected variation image ?