2017-05-30 93 views
0

我尝试在产品页面内再次打印“有货”,但我无法找到解决方案,我怎么能回应它。在图像上是默认的,但我想再次在同一页上,我怎么可以回显/打印。如何从WooCommerce的产品页面回显“#库存”?

感谢

>>>1 in stock Image <<<

+0

检查这个https://gist.github.com/mujuonly/7c1393f791fdeb261c0225a32cec574e –

+0

@MujeebuRahman YOU ARE生命的救星!!!! OMG <3我正在寻找这个解决方案3周!谢谢!谢谢!谢谢!谢谢! –

回答

0
function wc_dropdown_variation_attribute_options($args = array()) { 
    global $product; 
    $variations = $product->get_available_variations(); 


     $args = wp_parse_args(apply_filters('woocommerce_dropdown_variation_attribute_options_args', $args), array(
      'options'   => false, 
      'attribute'  => false, 
      'product'   => false, 
      'selected'   => false, 
      'name'    => '', 
      'id'    => '', 
      'class'   => '', 
      'show_option_none' => __('Choose an option', 'woocommerce'), 
     )); 
     $options = $args['options']; 
     $product = $args['product']; 
     $attribute = $args['attribute']; 

     $name  = $args['name'] ? $args['name'] : 'attribute_' . sanitize_title($attribute); 
     $id  = $args['id'] ? $args['id'] : sanitize_title($attribute); 
     $class  = $args['class']; 
     if (empty($options) && ! empty($product) && ! empty($attribute)) { 
      $attributes = $product->get_variation_attributes(); 
      $options = $attributes[ $attribute ]; 

     } 
     $html = '<select id="' . esc_attr($id) . '" class="' . esc_attr($class) . '" name="' . esc_attr($name) . '" data-attribute_name="attribute_' . esc_attr(sanitize_title($attribute)) . '">'; 
     if ($args['show_option_none']) { 
      $html .= '<option value="">' . esc_html($args['show_option_none']) . '</option>'; 
     } 
     if (! empty($options)) { 

      /*if ($product && taxonomy_exists($attribute)) { 

       // Get terms if this is a taxonomy - ordered. We need the names too. 
       $terms = wc_get_product_terms($product->get_id(), $attribute, array('fields' => 'all')); 
       foreach ($terms as $term) { 
        if (in_array($term->slug, $options)) { 
         $html .= '<option value="' . esc_attr($term->slug) . '" ' . selected(sanitize_title($args['selected']), $term->slug, false) . '>' . esc_html(apply_filters('woocommerce_variation_option_name', $term->name)) . '</option>'; 
        } 
       } 
      } else {*/ 
       foreach ($options as $option) { 

        foreach ($variations as $variation) { 
         if($variation['attributes'][$name] == $option) { 
          $stock = esc_html($variation['max_qty']); 
         } 
        } 
        if($stock == 0) { 
         $stock_text = ' - (Out of Stock)'; 
         $class = 'option-out-of-stock'; 
         $disabled = 'disabled'; 
        } elseif ($stock < 5) { 
         $stock_text = ' - Only ' . $stock . ' left!'; 
         $class= 'option-hurry'; 
         $disabled = ''; 
        } elseif ($stock < 6) { 
         $stock_text = ' - Only a few left!'; 
         $class = 'option-few'; 
         $disabled = ''; 
        } else { 
         $stock_text = ' - (In Stock)'; 
         $class = ''; 
         $disabled = ''; 
        } 
        // This handles < 2.4.0 bw compatibility where text attributes were not sanitized. 
        $selected = sanitize_title($args['selected']) === $args['selected'] ? selected($args['selected'], sanitize_title($option), false) : selected($args['selected'], $option, false); 
        $html .= '<option value="' . esc_attr($option) . '" ' . $selected . ' class="'.$class.'" '.$disabled.'>' . $option . $stock_text .'</option>'; 
       //} 
      } 
     } 
     $html .= '</select>'; 

     echo apply_filters('woocommerce_dropdown_variation_attribute_options_html', $html, $args); 
    } 
相关问题