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