Как показать все товары продавца в личном кабинете WooCommerce?

Как изменить код, чтобы выводить товары текущего/авторизованного пользователя, а не конкретного продавца по id?
  • 16 февраля 2024 г. 14:38
Ответы на вопрос 1
1. Для отображения всех товаров продавца в личном кабинете WooCommerce, вам нужно использовать функцию `wc_get_products()` с указанием параметра `vendor`.

Например, вы можете использовать следующий код в файле шаблона или в файле функций вашей темы:

```php
$vendor_id = get_current_user_id(); // Получаем ID текущего пользователя
$args = array(
    'status'      => 'publish', // Статус опубликованных товаров
    'limit'       => -1, // Выводим все товары
    'vendor'      => $vendor_id // ID продавца
);

$products = wc_get_products($args);

if ($products) {
    foreach ($products as $product) {
        // Выводите информацию о каждом товаре, как вам нужно
        echo '<h2>' . $product->get_name() . '</h2>';
        echo '<p>' . $product->get_price_html() . '</p>';
    }
} else {
    echo 'Товары не найдены.';
}
```

2. Чтобы изменить код для вывода товаров текущего/авторизованного пользователя, вам понадобится использовать функцию `get_posts()` вместо `wc_get_products()` и указать параметр `author` со значением `get_current_user_id()`.

Вот пример кода:

```php
$author_id = get_current_user_id();

$args = array(
    'post_type'      => 'product',
    'post_status'    => 'publish',
    'author'         => $author_id,
    'posts_per_page' => -1
);

$products = get_posts($args);

if ($products) {
    foreach ($products as $product) {
        // Выводите информацию о каждом товаре, как вам нужно
        echo '<h2>' . get_the_title($product->ID) . '</h2>';
        echo '<p>' . wc_price(get_post_meta($product->ID, '_regular_price', true)) . '</p>';
    }
} else {
    echo 'Товары не найдены.';
}
```

Оба примера кода могут быть добавлены в файл функций вашей темы (например, functions.php) или в файл шаблона личного кабинета WooCommerce.
Похожие вопросы