在WooCommerce商店页面隐藏没有缩略图的产品

时间:2017-07-03 11:33:36

标签: php wordpress image woocommerce product

我使用进口商将数千种产品进口到商店。虽然我必须在销售商品之前插入产品的图片和说明。

如果没有指定缩略图,我想隐藏商店中的商品。这样,只有在我设置缩略图图像后才能在商店中看到新产品。

我在header.php中尝试了这个,但没有用:

 <?php if($_product->getImage() && $_product->getImage() != 'no_selection'){
?>
 <style>
  /* Css to hide Featured image Div */
 </style>
<?php
}?>

这给了我错误:

  

致命错误:在非对象

上调用成员函数getImage()

如果他们没有放置缩略图,有没有快速的方法可以从商店页面隐藏WordPress WooCommerce产品?

由于

3 个答案:

答案 0 :(得分:6)

您可以使用隐藏在 woocommerce_product_query 操作中的自定义功能,钩子会更改商店查询,并且不会在没有图片的商店页面产品上显示,这样:

add_action( 'woocommerce_product_query', 'custom_pre_get_posts_query' );
function custom_pre_get_posts_query( $query ) {

    $query->set( 'meta_query', array( array(
       'key' => '_thumbnail_id',
       'value' => '0',
       'compare' => '>'
    )));

}

代码放在活动子主题(或主题)的function.php文件中,或者放在任何插件文件中。

此代码已经过测试,适用于WooCommerce 2.6.x和3.0 +

答案 1 :(得分:0)

Woo-commerce通常会在没有缩略图的产品上插入占位符图片。您可以做的是轻松使用Jquery定位不具有缩略图的产品。

在我的网站上放了一个名为&#34; placeholder.png&#34;这将是site_url()。&#34; /wp-content/plugins/woocommerce/assets/images/placeholder.png" ;,网站网址是您网站的网址。

将javascript排入主题或创建子主题并将其添加到functions.php文件中。

这里是代码。

hideproduct.js

 X_Old = (X_New - Bx) / Ax

答案 2 :(得分:0)

嗯,您可以节省很多费用并最初导入您的产品,post_status设置为draft,这将导致不在首页上显示它们。然后,每当您向产品添加图像(我假设您通过WP后端进行)时,您“发布”您的产品,因为您无论如何都必须保存它。

如果您有单独的图片导入脚本,则可以从那里将post_status设置为public