Как создать фильтр товаров Woocommerce по кастомному полю в админке WordPress?

Создание фильтра товаров WooCommerce по кастомному полю в админке WordPress требует нескольких шагов. Вот подробная инструкция:

Шаг 1: Создание кастомного поля для товара WooCommerce
1. Откройте файл functions.php вашей темы WordPress.
2. Добавьте следующий код:

   function custom_wc_product_filters() {
     woocommerce_wp_text_input( array(
       'id'          => '_custom_field',
       'label'       => 'Кастомное поле',
       'placeholder' => 'Введите значение',
       'description' => 'Описание кастомного поля',
       'desc_tip'    => true,
     ) );
   }
   add_action( 'woocommerce_product_options_general_product_data', 'custom_wc_product_filters' );

   function custom_wc_save_product_filters( $post_id ) {
     $custom_field = $_POST['_custom_field'] ?? '';
     update_post_meta( $post_id, '_custom_field', sanitize_text_field( $custom_field ) );
   }
   add_action( 'woocommerce_process_product_meta', 'custom_wc_save_product_filters' );

Этот код добавит новое кастомное поле на странице редактирования товара в админке WooCommerce.

Шаг 2: Создание фильтра WooCommerce
1. Откройте файл functions.php вашей темы WordPress.
2. Добавьте следующий код:

   function custom_wc_product_filter_by_custom_field( $query ) {
     global $pagenow, $post_type;

     if ( 'edit.php' !== $pagenow || 'product' !== $post_type ) {
       return;
     }

     $custom_field = $_GET['custom_field'] ?? '';
     if ( ! empty( $custom_field ) ) {
       $query->query_vars['meta_query'][] = array(
         'key'     => '_custom_field',
         'value'   => sanitize_text_field( $custom_field ),
         'compare' => '=',
       );
     }
   }
   add_action( 'pre_get_posts', 'custom_wc_product_filter_by_custom_field' );

Этот код настроит фильтрацию товаров WooCommerce на странице редактирования товаров в админке.

Шаг 3: Просмотр фильтрованных товаров
1. Откройте страницу редактирования товаров в админке WooCommerce.
2. Найдите раздел «Настройки отображения товаров» вверху страницы.
3. Выберите значение для «Кастомное поле» и нажмите кнопку «Фильтр».
4. Товары будут отфильтрованы на основе выбранного значения кастомного поля.

Теперь у вас есть фильтр товаров WooCommerce, который опирается на кастомное поле, созданное в админке WordPress. Вы можете настроить значения кастомного поля для каждого товара и использовать его для упрощения поиска и фильтрации товаров в админке WooCommerce.