Php 在商业中显示和隐藏库存变化

Php 在商业中显示和隐藏库存变化,php,wordpress,woocommerce,Php,Wordpress,Woocommerce,我们有一个独特的情况,即我们需要显示产品的所有变化,即使他们缺货-这是因为他们在技术上没有缺货-只是不能在线购买。然而,当涉及到购买时,下拉列表显然不应该显示我们已经设置为缺货的变化,因为它们不能在网上购买 不管怎样,如果允许选择它们,那么显示的out os stock消息对用户来说是非常笨拙和混乱的 是否有一个woocommerce函数,可以获取所有变体,而不是默认的get\u available\u variances() 目前,我们选择了从目录中隐藏缺货项目,这样它们就不会出现在“购买”下

我们有一个独特的情况,即我们需要显示产品的所有变化,即使他们缺货-这是因为他们在技术上没有缺货-只是不能在线购买。然而,当涉及到购买时,下拉列表显然不应该显示我们已经设置为缺货的变化,因为它们不能在网上购买

不管怎样,如果允许选择它们,那么显示的out os stock消息对用户来说是非常笨拙和混乱的

是否有一个woocommerce函数,可以获取所有变体,而不是默认的
get\u available\u variances()

目前,我们选择了从目录中隐藏缺货项目,这样它们就不会出现在“购买”下拉列表中,然后我们需要在下面的位置显示信息: content-single-product.php(子主题)


当然,另一个选项是取消选中“从目录中隐藏缺货项目”,并以某种方式防止差异出现在“购买”下拉列表中


提前感谢。

您可以使用此代码片段简单地禁用“缺货”

add_filter( 'woocommerce_variation_is_active', 'grey_out_variations_when_out_of_stock', 10, 2 );
function grey_out_variations_when_out_of_stock( $grey_out, $variation ){
if ( ! $variation->is_in_stock() ){
  return false;
 }else{
  return true;
 }
}
()

然后简单地用这个CSS代码隐藏它

.variations option:disabled {
  display:none;
}

希望有帮助

变化值将因岗位而异。这段代码来自内容单一的产品子模板,非常棒!如果您只是想将缺货的变体变灰,那么您只需要过滤器(PHP代码),而不需要CSS(将它们全部隐藏)。
.variations option:disabled {
  display:none;
}