2015-01-20 3 views
0

는이 코드가 장바구니 버튼 오류로 추가WooCommerce는 WooCommerce의 variable.php에서

<?php 
/** 
* Variable product add to cart 
* 
* @author  WooThemes 
* @package  WooCommerce/Templates 
* @version  2.1.0 
*/ 

if (! defined('ABSPATH')) exit; // Exit if accessed directly 

global $product, $post; 
?> 

<?php do_action('woocommerce_before_add_to_cart_form'); ?> 

<form class="variations_form cart" method="post" enctype='multipart/form-data' data-product_id="<?php echo $post->ID; ?>" data-product_variations="<?php echo esc_attr(json_encode($available_variations)) ?>"> 
    <?php if (! empty($available_variations)) : ?> 
     <table class="variations" cellspacing="0"> 
      <tbody> 
       <?php $loop = 0; foreach ($attributes as $name => $options) : $loop++; ?> 
        <tr> 
         <td class="label"><label for="<?php echo sanitize_title($name); ?>"><?php echo wc_attribute_label($name); ?></label></td> 
         <td class="value"><select id="<?php echo esc_attr(sanitize_title($name)); ?>" name="attribute_<?php echo sanitize_title($name); ?>"> 
          <option value=""><?php echo __('Choose an option', 'woocommerce') ?>&hellip;</option> 
          <?php 
           if (is_array($options)) { 

            if (isset($_REQUEST[ 'attribute_' . sanitize_title($name) ])) { 
             $selected_value = $_REQUEST[ 'attribute_' . sanitize_title($name) ]; 
            } elseif (isset($selected_attributes[ sanitize_title($name) ])) { 
             $selected_value = $selected_attributes[ sanitize_title($name) ]; 
            } else { 
             $selected_value = ''; 
            } 

            // Get terms if this is a taxonomy - ordered 
            if (taxonomy_exists(sanitize_title($name))) { 

             $orderby = wc_attribute_orderby(sanitize_title($name)); 

             switch ($orderby) { 
              case 'name' : 
               $args = array('orderby' => 'name', 'hide_empty' => false, 'menu_order' => false); 
              break; 
              case 'id' : 
               $args = array('orderby' => 'id', 'order' => 'ASC', 'menu_order' => false, 'hide_empty' => false); 
              break; 
              case 'menu_order' : 
               $args = array('menu_order' => 'ASC', 'hide_empty' => false); 
              break; 
             } 

             $terms = get_terms(sanitize_title($name), $args); 

             foreach ($terms as $term) { 
              if (! in_array($term->slug, $options)) 
               continue; 

              echo '<option value="' . esc_attr($term->slug) . '" ' . selected(sanitize_title($selected_value), sanitize_title($term->slug), false) . '>' . apply_filters('woocommerce_variation_option_name', $term->name) . '</option>'; 
             } 
            } else { 

             foreach ($options as $option) { 
              echo '<option value="' . esc_attr(sanitize_title($option)) . '" ' . selected(sanitize_title($selected_value), sanitize_title($option), false) . '>' . esc_html(apply_filters('woocommerce_variation_option_name', $option)) . '</option>'; 
             } 

            } 
           } 
          ?> 
         </select> <?php 
          if (sizeof($attributes) == $loop) 
           echo '<a class="reset_variations" href="#reset">' . __('Clear selection', 'woocommerce') . '</a>'; 
         ?></td> 
        </tr> 
       <?php endforeach;?> 
      </tbody> 
     </table> 

     <?php do_action('woocommerce_before_add_to_cart_button'); ?> 

     <div class="single_variation_wrap" style=""> 
      <?php do_action('woocommerce_before_single_variation'); ?> 

      <div class="single_variation"></div> 

      <div class="variations_button"> 
       <?php woocommerce_quantity_input(); ?> 
       <button type="submit" class="single_add_to_cart_button button alt"><?php echo $product->single_add_to_cart_text(); ?></button> 
      </div> 

      <input 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" value="" /> 

      <?php do_action('woocommerce_after_single_variation'); ?> 
     </div> 

     <?php do_action('woocommerce_after_add_to_cart_button'); ?> 

    <?php else : ?> 

     <p class="stock out-of-stock"><?php _e('This product is currently out of stock and unavailable.', 'woocommerce'); ?></p> 

    <?php endif; ?> 

</form> 

<?php do_action('woocommerce_after_add_to_cart_form'); ?> 

을하지만 크기를 선택하고 다음을 클릭 할 때 장바구니에 담기, 나는 느릅 나무에 오류가 제품 옵션을 선택합니다 "라고 수 ". 누군가이 문제를 해결하는 방법을 알고 있습니까? 그것은 폼과 같고 버튼은 "함께"작동하지 않습니다. 미리 감사드립니다.

+0

을 주형. 및/또는 플러그인 및 맞춤 스크립트를 사용 중지합니다. 어떤 종류의 오류가 있습니다. 브라우저 개발자 콘솔에서 무엇이 보이십니까? – helgatheviking

답변

0

답변을 찾았습니다. 사용자가 입력했던 것은이의 <input type="hidden" name="variation_id" value="" /> 에 대한 그래서 내가 값으로 제품 ID를 준 그것은 일 : D 를 그래서 같은 : 나는 WooCommerce의`variable.php` 넘어서 시작하는 것이 좋습니다

 <input type="hidden" name="variation_id" value="<?php echo $product->id; ?>" /> 
+3

이 입력은 실제 변형을 선택할 때 WooCommerce의 스크립트에 의해 동적으로 수정되어야합니다. 변수 제품의 ID가 잘못 수정되었습니다. – helgatheviking

관련 문제