Php WooCommerce打印发票和;装箱单-更改类别

Php WooCommerce打印发票和;装箱单-更改类别,php,wordpress,woocommerce,Php,Wordpress,Woocommerce,我有一个WooCommerce商店,里面有几个类别的产品,并使用打印发票和装箱单插件为订单生成装箱单 默认情况下,插件根据产品所列的第一个类别按字母顺序对产品进行排序 我试图将插件设置为忽略预设的ID类别列表,因此所有产品仍将显示,但仅在我允许的类别下列出,而不是按字母顺序排列的第一个类别 我已经通读了一篇文章,并创建了一个自定义插件,它将完全禁用类别,但我一辈子都不知道WooCommerce钩子应该如何忽略某些类别 这就是我目前在定制plguin中的内容,它只是从装箱单中删除类别: if (

我有一个WooCommerce商店,里面有几个类别的产品,并使用打印发票和装箱单插件为订单生成装箱单

默认情况下,插件根据产品所列的第一个类别按字母顺序对产品进行排序

我试图将插件设置为忽略预设的ID类别列表,因此所有产品仍将显示,但仅在我允许的类别下列出,而不是按字母顺序排列的第一个类别

我已经通读了一篇文章,并创建了一个自定义插件,它将完全禁用类别,但我一辈子都不知道WooCommerce钩子应该如何忽略某些类别

这就是我目前在定制plguin中的内容,它只是从装箱单中删除类别:

if ( ! defined( 'ABSPATH' ) ) 

add_filter( 'wc_pip_packing_list_group_items_by_category', '__return_false' );

function sv_wc_pip_packing_list_grouping( $group_items, $order_id, $document_type ) {
 if ( 'pick-list' !== $document_type ) {
  return $group_items;
 }
 $order = wc_get_order( $order_id );
 if ( ! $order->is_paid() ) {
  return false;
 }
 return $group_items;
}
add_filter( 'wc_pip_packing_list_group_items_by_category', 'sv_wc_pip_packing_list_grouping', 10, 3 );

感谢您提供帮助,以确定如何在此功能中定义项目类别。

我想您可以尝试从文档链接中的文档过滤器部分:

wc\U pip\U包装清单\U排除项目

参数:$exclude、$product、$item、$item_数据 返回:(bool) 筛选是否应从装箱单中排除订单项目


在筛选功能中,您应该能够从
$product
中测试类别,或者至少获取相关信息以进行查询。然后,您只需在案例后面返回
true
false

谢谢Kaddath,我的问题不够清楚,因此已对其进行了编辑。这将完全排除一个项目,但我希望该项目仍然可见,就在我没有忽略的类别之一下。好的,我会在有时间的时候看一看,我没有在文档链接中找到您使用的过滤器,$group_items是显示的完整项目订购列表吗?据我所知,$group_items应该返回项目列表,是的。在我得到的代码片段中,它只是按照我理解的顺序id对它们进行排序,该代码片段来自GitHub上的SkyVerge模块,是我能得到的最接近的代码片段。好的,因为如果这是包含有序列表的变量,用于在页面上显示它们,您可以在函数中添加自定义代码,以便在返回之前重新排列项目。您是否尝试过修改i并查看页面是否更改?