Есть несколько способов настроить фильтр товаров Woocommerce в админке WordPress с использованием кастомных полей. Вот два варианта реализации:
1. Через код:
- Создайте кастомное поле для товаров WooCommerce, содержащее информацию об агенте (например, "agent_id").
- В functions.php вашей темы добавьте следующий код:
```php
// Добавим фильтр по агенту в админку
function add_custom_filter_by_agent()
{
global $typenow;
if ($typenow === 'product') {
$agents = get_posts(array(
'post_type' => 'agent', // Замените 'agent' на тип поста, где хранятся агенты
'numberposts' => -1,
'post_status' => 'publish'
));
?>
<select name="agent_id">
<option value=""><?php _e('All Agents', 'textdomain'); ?></option>
<?php foreach ($agents as $agent) { ?>
<option value="<?php echo $agent->ID; ?>" <?php selected($_GET['agent_id'], $agent->ID); ?>>
<?php echo $agent->post_title; ?>
</option>
<?php } ?>
</select>
<?php
}
}
add_action('restrict_manage_posts', 'add_custom_filter_by_agent');
// Применяем фильтр
function apply_custom_filter_by_agent($query)
{
global $pagenow, $typenow;
if ($pagenow === 'edit.php' && $typenow === 'product' && isset($_GET['agent_id']) && $_GET['agent_id'] != '') {
$query->query_vars['meta_key'] = 'agent_id';
$query->query_vars['meta_value'] = $_GET['agent_id'];
}
}
add_action('pre_get_posts', 'apply_custom_filter_by_agent');
```
Здесь вам нужно заменить `'agent'` на тип поста, где хранится информация об агентах, и `'agent_id'` на название вашего кастомного поля.
2. Через плагин:
- Установите и активируйте один из плагинов для фильтрации и поиска, которые поддерживают административные страницы Woocommerce, например "Admin Columns" или "Advanced Custom Fields".
- Создайте кастомное поле для товаров WooCommerce с информацией об агенте.
- Используйте настройки плагина для добавления фильтрации по вашему кастомному полю на странице администрирования товаров.
Оба способа должны позволить вам фильтровать товары WooCommerce по кастомным полям, связанным с выбором агента. Вам нужно выбрать тот, который лучше соответствует вашим потребностям и навыкам.