Wordpress woocommerce使用woo filter插件显示错误数量的结果,并隐藏缺货产品
我有一个wordpress+woocommerce+\u divi主题+woof插件安装。有一个已知的错误-当我们有一些缺货的产品,但我们用woocommerce设置隐藏它们时,我们可以看到“显示xxx结果”消息,例如,在产品的分类页面上,xxx是不正确的-这是所有产品的数量,库存和缺货-而只显示库存产品。当我们不使用woof插件时,我们可以在theme functions.php中修复此代码的计数问题:Wordpress woocommerce使用woo filter插件显示错误数量的结果,并隐藏缺货产品,wordpress,woocommerce,Wordpress,Woocommerce,我有一个wordpress+woocommerce+\u divi主题+woof插件安装。有一个已知的错误-当我们有一些缺货的产品,但我们用woocommerce设置隐藏它们时,我们可以看到“显示xxx结果”消息,例如,在产品的分类页面上,xxx是不正确的-这是所有产品的数量,库存和缺货-而只显示库存产品。当我们不使用woof插件时,我们可以在theme functions.php中修复此代码的计数问题: add_action('woocommerce_product_query', 'fix_
add_action('woocommerce_product_query', 'fix_the_count');
function fix_the_count($query) {
$meta_query = $q->get( 'meta_query' );
$meta_query[] = array(
'key' => '_stock_status',
'compare' => '=',
'value' => 'instock'
);
$q->set( 'meta_query', $meta_query );
}
但是,当我们使用woof filtering插件时,通过将该插件的shortcode[woof_products]插入到divi builder类别布局中,该代码不起作用。插件似乎没有使用standart woocommerce\u product\u查询行为,但它的版本已更改,正如我们在插件代码的这一部分中所看到的:
public function woocommerce_product_query($q) {
$meta_query = $q->get('meta_query');
//for extensions
if (!empty(WOOF_EXT::$includes['html_type_objects'])) {
foreach (WOOF_EXT::$includes['html_type_objects'] as $obj) {
if (method_exists($obj, 'assemble_query_params')) {
$q->set('meta_query', $obj->assemble_query_params($meta_query, $q));
}
}
}
return $q;
}
如果我向这个插件代码添加fix\u\u count()内容,如下所示:
public function woocommerce_product_query($q) {
//http://docs.woothemes.com/wc-apidocs/class-WC_Query.html
//wp-content\plugins\woocommerce\includes\class-wc-query.php -> public function product_query( $q )
$meta_query = $q->get('meta_query');
$meta_query[] = array(
'key' => '_stock_status',
'compare' => '=',
'value' => 'instock'
);
$q->set( 'meta_query', $meta_query );
//for extensions
if (!empty(WOOF_EXT::$includes['html_type_objects'])) {
foreach (WOOF_EXT::$includes['html_type_objects'] as $obj) {
if (method_exists($obj, 'assemble_query_params')) {
$q->set('meta_query', $obj->assemble_query_params($meta_query, $q));
}
}
}
return $q;
}
没有发生什么事——伯爵仍然错了。这个问题的解决方案是什么