我遇到了WooCommerce的问题,试图在售罄的商品上退回特定类“售罄”。我正在使用一个返回div而不是经典下拉的插件。所以你可以选择[S] [M] [L] [XL]等。看看我的意思 - http://www.shultzilla.com/product/tees/greater-than/ -
所以我有一个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 :(得分: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>
答案 1 :(得分: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造型输出。