2017-02-22 51 views
0

我有一个WooCommerce商店,设置了多个类别的产品,并使用打印发票&装箱单插件来生成订单的装箱单。WooCommerce打印发票和装箱单 - 更改类别

该插件默认情况下会根据它们列出的第一个类别按字母顺序订购产品。

我试图设置插件忽略ID的预设列表类别,所以所有产品仍然会显示,但只列在我允许的类别下,而不是按字母顺序排列的第一类。

我读过通过Invoice & Packing List dev reference抢下SkyVerge snippet并创建了一个自定义插件,这将完全禁用类别,但不能为我的生活出了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); 

感谢所有帮助确定如何在这个函数中定义的项目类别。

回答

0

我想你可以试试这个,部分文件过滤器从你的文档链接:

wc_pip_packing_list_exclude_item

PARAMS:$排除,$产品,$项目,$ item_data 回报:(布尔) 过滤器,如果订单项目应该从装箱单中排除。

在你的过滤器功能中,你应该能够从$product测试类别,或者至少可以得到相关信息来查询它。然后,你只是返回truefalse下面的案例

+0

谢谢Kaddath,我不清楚在我的问题,所以编辑它。这将完全排除一个项目,但我希望该项目仍然可见,只是在我没有忽略的其中一个类别下。 –

+0

好吧,当我有一点时间,我还没有找到你在文档链接中使用的过滤器时,我会看看是$ group_items显示的项目的完整有序列表? – Kaddath

+0

据我所知,$ group_items应该返回项目列表,是的。在我已经知道的代码片段中,我只是通过订单ID来订购它,而这个代码片段来自GitHub上的SkyVerge模块,并且是我可以获得的最接近的模块。 –