Tengo una tienda Woocommerce multiproveedor usando Complemento Dokan y estoy tratando de dividir el carrito de compras en secciones según quién es el proveedor. Por ejemplo:
Dokan usa un rol personalizado de ‘proveedor’ para extender la clase de usuario, por lo que para obtener la ID de los proveedores, debería poder usar algo como:
$post_data = get_post( $cart_item['product_id'] );
$vendor_id = $post_data->post_author;
Esto funciona, pero solo obtendrá la identificación del primer proveedor y simplemente la repetirá para todos los productos restantes en el carrito. Sé que esto se debe a que no estoy recuperando una matriz, pero realmente no puedo encontrar nada en la documentación de WP sobre cómo obtener una matriz de ID de autor (aparte de wp_list_authors, pero eso no funciona bien).
Como experimento, logré que la división + clasificación funcionara siempre que ordeno por categorías, ya que puedo usar wp_get_post_terms(). Sin embargo, no puedo replicar esto para los datos del autor…
El código actual (relevante) se encuentra a continuación:
<?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>
(Después de esto, está el ciclo del producto real que no debería ser importante aquí porque su orden de clasificación ocurre en el código anterior)
¿Alguna idea sobre cómo puedo obtener información del autor para los productos del carrito de la misma manera que puedo obtener las categorías? estoy bastante perplejo…
¡Gracias de antemano por cualquier y toda ayuda!
.