2017-05-18 16 views
1

我想找到一個變化股票文本我已經做了下面的代碼,但我正在尋找任何適當的方法。我從woocommerece插件獲得templates/single-product/add-to-cart/variable.php文件的代碼。請任何幫助,將不勝感激。如何找到varation股woocommerece

 $terms = wc_get_product_terms($product->id, $attribute, array('fields' => 'all')); 

      foreach ($terms as $term) { 

       if (in_array($term->slug, $options)) { 
        $product_variations_cus = $product->get_available_variations(); // my custom code start from here 
        foreach($product_variations_cus as $var_cus){ 
         foreach($var_cus['attributes'] as $stock) { 
          if($term->slug==$stock) 
          $availability_html = $var_cus['availability_html']; // end here 
         } 

        } 

        $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)) .' '.$availability_html.'</option>'; 
       } 
      } 

其實我想添加股票文本到varation下拉列表中可以看到圖像。 enter image description here

回答

1
<?php 
    global $product; 
    $product_variations = $product->get_available_variations(); 

    foreach ($product_variations as $variation) { 
     $var_data = $variation['attributes']; 
     $var_data['in_stock'] = $variation['is_in_stock']; 
    } 

?> 

檢查了這一點

+0

謝謝你,夥計!是的,我知道,但我想通過term_id或term slug代碼。意思是我想通過term_id然後他們股票。 – Coder

+0

請你可以在我的代碼選擇選項中看到最後我寫在股票等 – Coder

1

不編輯模板。 將其粘貼到主題的functions.php中。

add_filter('woocommerce_variation_option_name', 'woocommerce_variation_option_name', 10); 
function woocommerce_variation_option_name($name) { 
    global $product; 

    foreach($product->get_children() as $variation_id) { 
     $variation = wc_get_product($variation_id); 

     if (in_array(strtolower($name), $variation->get_attributes())) { 
      $availability = $variation->get_availability(); 
      return $name . ' ' . $availability['availability']; 
     } 
    } 

    return $name; 
} 

它會是這個樣子: enter image description here

+0

@Reigal不工作。在圖像中,您可以看到我已經打印了名稱和$ variation-> get_attributes()數組?我覺得In_array不滿意? – Coder

+0

好吧,這個想法已經存在了......你應該能夠修復與你擁有的代碼有關的代碼...... – Reigel