radio buttons working
authorlaury <laury@gaslightmedia.com>
Wed, 25 Feb 2015 20:44:58 +0000 (15:44 -0500)
committerlaury <laury@gaslightmedia.com>
Wed, 25 Feb 2015 20:44:58 +0000 (15:44 -0500)
footer.php
woocommerce/single-product/add-to-cart/variable.php

index 3a7d329..0265d2b 100755 (executable)
     <?php if (is_product()) { ?>
         <script>
             $( document ).ready(function() {
+
+               // Set the hidden field with variation ID and display price for selected radio button
+               function setVariation() {
+                       sel = $('.variation-radio:checked');
+                       var price = sel.attr('data-price');
+                       var variation = sel.attr('data-variation-id');
+                       $('.single_variation').html('$' + parseFloat(price).toFixed(2));
+                       $('#variation_id').val(variation);
+               }
+
+               // Set variation when radio buttons are clicked
+               $('.variation-radio').click( function() {
+                       setVariation();
+               });             
+
+               // Set variation to default on load
+               setVariation();
+
+
 //                $("#pa_cookie-tin").val('tins-not-included');
 //                $("#pa_cookie-tin option[value='']").val('').remove();
 //                $("#pa_cookie-tin").remove();
     <?php } ?>
     <?php wp_footer(); ?>
   </body>
-</html>
\ No newline at end of file
+</html>
index b538755..6063c38 100644 (file)
@@ -25,6 +25,9 @@ global $product, $post;
                <div class="variations" cellspacing="0">
                        <div>
                                <?php $loop = 0; foreach ( $attributes as $name => $options ) : $loop++; ?>
+<?php 
+// echo "<pre>".print_r($available_variations,1)."<pre><br>"; 
+?>
 
                                         <ul>
                                             <li class="label">
@@ -43,20 +46,28 @@ global $product, $post;
                                                         } else {
                                                                 $selected_value = '';
                                                         }                               //echo   $selected_value;
+
+// adding hidden parameter that will be submitted with the variable product SKU
+//echo '<input id="variation-value" type="hidden" name="attribute_'. sanitize_title($name).'" value="">';
+
                                                         // Get terms if this is a taxonomy - ordered
                                                        if ( taxonomy_exists( $name ) ) {
 
                                                            $terms = wc_get_product_terms( $post->ID, $name, array( 'fields' => 'all' ) );
 
-                                                            foreach ( $terms as $term ) {
+                                                           $firstTerm = 'checked="checked"';
+                                                            foreach ( $terms as $key => $term ) {
                                                                 if ( ! in_array( $term->slug, $options ) ) {
                                                                     continue;
                                                                 }
-                                                                echo '<input type="radio" value="' . esc_attr( $term->slug ) . '" ' . checked( sanitize_title( $selected_value ), sanitize_title( $term->slug ), false ) . ' id="'. esc_attr( sanitize_title($name) ) .'" name="attribute_'. sanitize_title($name).'">' . apply_filters( 'woocommerce_variation_option_name', $term->name ).'<br />';
+
+                                                                echo '<input type="radio" data-price="'.$available_variations[$key]['display_price'].'" data-variation-id="'.$available_variations[$key]['variation_id'].'" value="'.esc_attr( $term->slug ).'" class="variation-radio" name="attribute_'. sanitize_title($name).'" '.$firstTerm.'>
+                                                                       ' . apply_filters( 'woocommerce_variation_option_name', $term->name ).'<br />';
+                                                               $firstTerm = '';
                                                             }
                                                         } else {
                                                             foreach ( $options as $option ) {
-                                                                echo '<input type="radio" value="' .esc_attr( sanitize_title( $option ) ) . '" ' . checked( sanitize_title( $selected_value ), sanitize_title( $option ), false ) . ' id="'. esc_attr( sanitize_title($name) ) .'" name="attribute_'. sanitize_title($name).'">' . apply_filters( 'woocommerce_variation_option_name', $option ) . '<br />';
+                                                                echo '<input type="radio" value="' .esc_attr( sanitize_title( $option ) ) . '" ' . checked( sanitize_title( $selected_value ), sanitize_title( $option ), false ) . ' class="variation-radio" name="attribute_'. sanitize_title($name).'">' . apply_filters( 'woocommerce_variation_option_name', $option ) . '<br />';
                                                             }
                                                         }
 
@@ -65,7 +76,6 @@ global $product, $post;
                                             </fieldset> <?php
                                             if ( sizeof($attributes) == $loop ) {
                                                     //echo '<a class="reset_variations" href="#reset">' . __( 'Clear selection', 'woocommerce' ) . '</a>';
-                                                
                                             }
                                             ?></li>
                                        </il>
@@ -75,10 +85,10 @@ global $product, $post;
 
                <?php do_action( 'woocommerce_before_add_to_cart_button' ); ?>
 
-               <div class="single_variation_wrap" style="display:none;">
+               <div class="single_variation_wrap" style=""> <!-- was "display:none;" -->
                        <?php do_action( 'woocommerce_before_single_variation' ); ?>
 
-                       <div class="single_variation"></div>
+                       <div class="single_variation">(price goes here)</div>
 
                        <div class="variations_button">
                                <?php woocommerce_quantity_input(); ?>
@@ -87,7 +97,7 @@ global $product, $post;
 
                        <input type="hidden" name="add-to-cart" value="<?php echo $product->id; ?>" />
                        <input type="hidden" name="product_id" value="<?php echo esc_attr( $post->ID ); ?>" />
-                       <input type="hidden" name="variation_id" class="variation_id" value="" />
+                       <input type="hidden" id="variation_id" name="variation_id" class="variation_id" value="" />
 
                        <?php do_action( 'woocommerce_after_single_variation' ); ?>
                </div>