2015-01-20 2 views
0

В WooCommerce variable.php У меня есть этот код:WooCommerce Добавить в корзину ошибку Кнопки

<?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

Я предлагаю начать сначала с 'variable.php' WooCommerce в шаблон. И/или отключение плагинов и пользовательских скриптов. У вас есть какая-то ошибка. Вы видите что-нибудь в консоли разработчика браузеров? – helgatheviking

ответ

0

Я нашел ответ. Вещь, которую Вы должны были заполнить, был для <input type="hidden" name="variation_id" value="" /> Так я дал ему в качестве значения идентификатор продукта, и она работала: D Так как это:

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

Этот вход должен быть динамически модифицирован скриптом WooCommerce при выборе фактического варианта. Вы неправильно модифицировали его как идентификатор переменной продукта. – helgatheviking

Смежные вопросы