我使用进口商将数千种产品进口到商店。虽然我必须在销售商品之前插入产品的图片和说明。
如果没有指定缩略图,我想隐藏商店中的商品。这样,只有在我设置缩略图图像后才能在商店中看到新产品。
我在header.php中尝试了这个,但没有用:
<?php if($_product->getImage() && $_product->getImage() != 'no_selection'){
?>
<style>
/* Css to hide Featured image Div */
</style>
<?php
}?>
这给了我错误:
致命错误:在非对象
上调用成员函数getImage()
如果他们没有放置缩略图,有没有快速的方法可以从商店页面隐藏WordPress WooCommerce产品?
由于
答案 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
。