2012-09-09 56 views
2

我遇到了WooCommerce的問題,試圖返回特定類「售罄」的商品已售罄。我正在使用一個返回div而不是經典下拉的插件。所以你可以選擇[S] [M] [L] [XL]等。看看我的意思 - http://www.shultzilla.com/product/tees/greater-than/ -woocommerce - 試圖返回缺貨類

所以我有一個div,我想添加這個類。我會對它進行設計,以便您不能點擊它,並且會使它在產品售罄時無法點擊。

這是我正在做的,但它似乎並沒有回報任何東西。甚至沒有錯誤:

public function is_in_stock() { 
     if ($this->managing_stock()) : 
      if (! $this->backorders_allowed()) : 
       if ($this->get_total_stock() < 1) : 
        return false; 
       else : 
        if ($this->stock_status == 'instock') return true; 
        return false; 
       endif; 
      else : 
       return true; 
      endif; 
     endif; 
     if ($this->stock_status == 'instock') return true; 
     return false; 
    } 

function is_sold_out() { 
     if ($product->is_in_stock()) { 
      $soldOutClass = 'in-stock'; 
     } else { 
      $soldOutClass = 'sold-out'; 
     } 
    } 

public function get_output($placeholder = true, $placeholder_src = 'default') { 
     global $woocommerce; 


     $out = '<div class="select-option swatch-wrapper '.$soldOutStatus .'" data-value="' . $this->term_slug . '" ' . ($this->selected ? 'data-default="true"' : '') . '>'; 

     if ($this->type == 'photo' || $this->type == 'image') { 

      $out .= '<a href="#" style="width:' . $this->width . 'px;height:' . $this->height . 'px;" title="' . $this->term_label . '">'; 
      $out .= '<img src="' . $this->thumbnail_src . '" alt="Thumbnail" class="wp-post-image swatch-photo' . $this->meta_key() . '" width="' . $this->width . '" height="' . $this->height . '"/>'; 
      $out .= '</a>'; 
     } elseif ($this->type == 'color') { 
      $out .= '<a href="#" style="text-indent:-9999px;width:' . $this->width . 'px;height:' . $this->height . 'px;background-color:' . $this->color . ';" title="' . $this->term_label . '">' . $this->term_label . '</a>'; 
     } elseif ($placeholder) { 
      if ($placeholder_src == 'default') { 
       $src = $woocommerce->plugin_url() . '/assets/images/placeholder.png'; 
      } else { 
       $src = $placeholder_src; 
      } 

      $out .= '<a href="#" style="width:' . $this->width . 'px;height:' . $this->height . 'px;" title="' . $this->term_label . '">'; 
      $out .= '<img src="' . $src . '" alt="Thumbnail" class="wp-post-image swatch-photo' . $this->meta_key() . '" width="' . $this->width . '" height="' . $this->height . '"/>'; 
      $out .= '</a>'; 
     } else { 
      return ''; 
     } 

     $out .= '</div>'; 

     return $out; 
    }' 

因此,正如你所看到的,我正在嘗試不工作。我不確定我做錯了什麼。

+0

@jvdberg,你是如何設法修復格式的?我無法讓它工作。 –

回答

3

試試這個功能在你的模板PHP:

function is_out_of_stock() { 
    global $post; 
    $post_id = $post->ID; 
    $stock_status = get_post_meta($post_id, '_stock_status',true) == 'outofstock'; 
} 

然後你可以這樣做:

<img class="<?php echo is_out_of_stock()? 'outofstock':''; ?>" src="..."></img> 
+0

嘿馬克。感謝您的回覆。我會研究這個,看看我們能做些什麼。感謝您的輸入! –

0

創建你的主題目錄下名爲/woocommerce一個文件夾,然後內創建另一個文件夾這叫做/loop,最後把add-to-cart.php文件從這個插件裏面,修改第17行到: ..class="out-of-stock mycustomclasshere"><?php echo apply_filters('out_of_stock_add_to_cart_text',__('Out of Stock','woocommerce'));?>..

mycustomclasshere顯然是你自己的CSS樣式輸出。