Мы хотим показать поставщиков из заказа в подробном обзоре заказа администратора. Мы используем некоторые части из приведенного ниже кода, чтобы отобразить поставщика для каждого продукта в счете-фактуре. Теперь мы хотим отобразить, какие поставщики на самом деле находятся в порядке для обзора администратора.
- Если в заказе находятся товары только от одного поставщика = ›результат: =› Поставщик (и): Поставщик A
- Если товары от разных поставщиков находятся в порядке = ›результат: =› Поставщик (-ы): Поставщик A, Поставщик B, Поставщик C
Вот что у нас есть на данный момент:
add_action( 'woocommerce_admin_order_data_after_billing_address', 'get_dokan_vendor_shop_name_from_order_test', 10, 1 );
function get_dokan_vendor_shop_name_from_order_test( $product_id ) {
if( empty($product_id) ) return;
$seller = get_post_field( 'post_author', $product_id );
$author = get_user_by( 'id', $seller );
$vendor = dokan()->vendor->get( $seller );
$store_info = dokan_get_store_info( $author->ID );
echo '<h4>' . __('TEST 1 - Vendor in order') . ' (' . $vendor->get_shop_name() . ')</h4>';
if ( ! empty( $store_info['store_name'] ) ) {
return $vendor->get_shop_name();
echo '<h4>' . __('TEST 2 - Vendor in order') . ' (' . $vendor->get_shop_name() . ')</h4>';
} else {
return;
}
}
ОБНОВЛЕНИЕ
С новой информацией это то, что у нас есть на данный момент: он отображает поставщика, но если в заказе есть 2 элемента от поставщика A, то он отображает поставщика A три раза.
Так что теперь у нас просто проблемы с выводом. Информация о заказе поставщика теперь доступна, но результат не такой, как нам хотелось бы.
function action_woocommerce_admin_order_data_after_billing_address( $order ) {
// Loop through order items
foreach ( $order->get_items() as $item ) {
// Get product object
$product = $item->get_product();
// Seller
$seller = $product->post->post_author;
// Author
$author = get_user_by( 'id', $seller );
// Store info
$store_info = dokan_get_store_info( $author->ID );
// Vendor
$vendor = dokan()->vendor->get( $seller );
// Output Vendor in order - TEST 1
echo '<h4>' . __('TEST 2 - Vendor in order') . ' (' . $vendor->get_shop_name() . ')</h4>';
}
// Output Vendor in order - TEST 2
echo '<h4>' . __('TEST 2 - Vendor in order') . ' (' . $vendor->get_shop_name() . ')</h4>';
}
add_action( 'woocommerce_admin_order_data_after_billing_address', 'action_woocommerce_admin_order_data_after_billing_address', 10, 1 );