【发布时间】:2021-01-16 05:11:24
【问题描述】:
我有一个 WooCommerce 网站,当产品标签存档页面有 0 个“库存”产品可用时,我需要从产品标签云中隐藏产品标签。
下面的代码显示了我目前的进度,我会随着更多的进展进行更新。 我相信这段代码可以适应运行检查并删除任何“显示计数”值小于 1 的结果,这将回答这个问题。此外,隐藏的结果需要 302 重定向到顶级“商店”页面,同时暂时隐藏:
/* TURN PRODUCT TAG CLOUD INTO ALPHABETICAL LIST WITH TAG TOTALS COUNT VISIBLE */
function woocommerce_product_tag_cloud_widget_filter($args) {
$args = array(
'smallest' => 14,
'largest' => 14,
'format' => 'list',
'taxonomy' => 'product_tag',
'unit' => 'px',
'show_count' => 1,
'number' => 0,
);
echo "<div style='padding-left: 20px;'>";
return $args;
echo "</div>";
}
add_filter('woocommerce_product_tag_cloud_widget_args', 'woocommerce_product_tag_cloud_widget_filter');
我也有这段代码,可以用作第二种方法。注释显示了缺少的内容:
/* REMOVE PRODUCT TAGS FROM THE PRODUCT TAG CLOUD WHEN THEY HAVE LESS THAN 1 IN-STOCK RESULTS */
function filter_woocommerce_product_tag_cloud_widget_args( $array ) {
$c = // check to see how many in stock products a product tag archive has
if($c <= 1){
// show array excluding empty product tag archives
}else{
return $array;
}
}
add_filter( 'woocommerce_product_tag_cloud_widget_args', 'filter_woocommerce_product_tag_cloud_widget_args', 10, 1 );
我有以下资源可以提供帮助,但是我缺乏 PHP 知识意味着我无法将这些不同的代码块放入一个函数中来实现我想要的结果。
我有这段代码来自 How to remove empty product tags from the tag cloud on woocommerce 我之前的问题的答案代码,它隐藏了标签云中的所有空产品标签(但它不考虑库存可用性,所以仍然会显示带有 0 个“有货”产品的产品标签)。
下面还有其他一些代码,它们可能对最终解决方案有所帮助,也可能没有帮助。
此代码隐藏了整个产品标签云。
add_action( 'widgets_init', 'misha_remove_product_tag_cloud_widget' );
function misha_remove_product_tag_cloud_widget(){
unregister_widget('WC_Widget_Product_Tag_Cloud');
}
此代码隐藏所有有 0 个“库存”产品的类别。
add_filter( 'wp_get_nav_menu_items', 'nav_remove_empty_category_menu_item', 10, 3 );
function nav_remove_empty_category_menu_item ( $items, $menu, $args ) {
global $wpdb;
$nopost = $wpdb->get_col( "SELECT term_taxonomy_id FROM $wpdb->term_taxonomy WHERE count = 0" );
foreach ( $items as $key => $item ) {
if ( ( 'taxonomy' == $item->type ) && ( in_array( $item->object_id, $nopost ) ) ) {
unset( $items[$key] );
}
}
return $items;
}
我试图将上述代码的各个元素组合在一起以创建一个实现我的目标的函数,但我缺乏能力意味着我没有任何东西可以正确工作,因此我需要额外的帮助。
【问题讨论】:
标签: php wordpress woocommerce widget taxonomy-terms