Skip to content

Instantly share code, notes, and snippets.

@claudiosanches
Last active October 16, 2024 09:38

Revisions

  1. claudiosanches revised this gist Apr 2, 2015. 1 changed file with 3 additions and 3 deletions.
    6 changes: 3 additions & 3 deletions functions.php
    Original file line number Diff line number Diff line change
    @@ -4,9 +4,9 @@ function cs_wc_loop_add_to_cart_scripts() {
    if ( is_shop() || is_product_category() || is_product_tag() || is_product() ) : ?>

    <script>
    jQuery(document).ready(function($) {
    $(document).on( 'change', '.quantity .qty', function() {
    $(this).parent('.quantity').next('.add_to_cart_button').attr('data-quantity', $(this).val());
    jQuery( document ).ready( function( $ ) {
    $( document ).on( 'change', '.quantity .qty', function() {
    $( this ).parent( '.quantity' ).next( '.add_to_cart_button' ).attr( 'data-quantity', $( this ).val() );
    });
    });
    </script>
  2. Claudio Sanches revised this gist Sep 7, 2013. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion functions.php
    Original file line number Diff line number Diff line change
    @@ -14,4 +14,4 @@ function cs_wc_loop_add_to_cart_scripts() {
    <?php endif;
    }

    add_action( 'wp_head', 'cs_wc_loop_add_to_cart_scripts' );
    add_action( 'wp_footer', 'cs_wc_loop_add_to_cart_scripts' );
  3. claudiosanches revised this gist Mar 8, 2013. 2 changed files with 17 additions and 5 deletions.
    17 changes: 17 additions & 0 deletions functions.php
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,17 @@
    <?php

    function cs_wc_loop_add_to_cart_scripts() {
    if ( is_shop() || is_product_category() || is_product_tag() || is_product() ) : ?>

    <script>
    jQuery(document).ready(function($) {
    $(document).on( 'change', '.quantity .qty', function() {
    $(this).parent('.quantity').next('.add_to_cart_button').attr('data-quantity', $(this).val());
    });
    });
    </script>

    <?php endif;
    }

    add_action( 'wp_head', 'cs_wc_loop_add_to_cart_scripts' );
    5 changes: 0 additions & 5 deletions home.js
    Original file line number Diff line number Diff line change
    @@ -1,5 +0,0 @@
    jQuery(document).ready(function($) {
    $(document).on( 'change', '.quantity .qty', function() {
    $(this).parent('.quantity').next('.add_to_cart_button').attr('data-quantity', $(this).val());
    });
    });
  4. claudiosanches created this gist Mar 8, 2013.
    70 changes: 70 additions & 0 deletions add-to-cart.php
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,70 @@
    <?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( 'variable_add_to_cart_url', 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; ?>
    5 changes: 5 additions & 0 deletions home.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,5 @@
    jQuery(document).ready(function($) {
    $(document).on( 'change', '.quantity .qty', function() {
    $(this).parent('.quantity').next('.add_to_cart_button').attr('data-quantity', $(this).val());
    });
    });