我有一个使用Dokan 插件的多供应商 Woocommerce 商店,我正在尝试根据供应商的身份将购物车分成几部分。例如:
- 供应商 1
- 产品C
- 产品B
- 供应商 2
- 产品A
Dokan 使用自定义角色“供应商”来扩展用户类,因此要获取供应商的 ID,我应该能够使用类似的东西:
$post_data = get_post( $cart_item['product_id'] );
$vendor_id = $post_data->post_author;
这确实有效,但它只会获得第一个供应商 ID,并且只会对购物车中的所有剩余产品重复该 ID。我知道这是因为我没有检索数组,但我在 WP 文档中找不到关于如何获取作者 ID 数组的任何内容(除了 wp_list_authors,但效果不佳)。
作为一个实验,只要我按类别排序,我就设法让拆分+排序工作,因为我可以使用 wp_get_post_terms()。我不能为作者数据复制这个,虽然......
当前(相关)代码如下:
<?php
$cat_sort = array();
foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
$product_id = $cart_item['product_id'];
$cat_ids = wp_get_post_terms( $product_id, 'product_cat', array( 'fields' => 'ids' ) );
foreach ( $cat_ids as $id ) {
$cat_sort[$id][$cart_item_key] = $cart_item;
}
}
ksort( $cat_sort );
$grouped_cart_items = array();
foreach ( $cat_sort as $cat_id => $cart_items ) {
$term = get_term( $cat_id, 'product_cat' );
?>
<tr>
<td colspan="6" class=""><strong><?php echo $term->name; ?></strong></td>
</tr>
(在这之后是实际的产品循环,在这里不应该很重要,因为它们的排序发生在上面的代码中)
关于如何以与获取类别相同的方式获取购物车产品的作者信息的任何想法?我好难过...
提前感谢您的任何帮助!