Jak Listować Produkty WooCommerce z Kolorem Jako Wariant w MySQL?

Wprowadzenie

Cześć wszystkim! Dzisiaj pokażę, jak wylistować wszystkie produkty z określonym atrybutem koloru jako wariant w WordPressie, korzystając z MySQL. Poniżej znajduje się zapytanie SQL, które umożliwi nam uzyskanie potrzebnych danych.

Zapytanie MySQL

Poniższe zapytanie wylistuje wszystkie produkty w WooCommerce, które mają atrybut koloru skonfigurowany jako wariant:

SELECT DISTINCT p.ID, p.post_title
FROM wp_posts p
INNER JOIN wp_postmeta pm ON p.ID = pm.post_id
WHERE p.post_type = 'product'
AND p.post_status = 'publish'
AND pm.meta_key = '_product_attributes'
AND pm.meta_value LIKE '%"pa_kolor";%'
AND pm.meta_value LIKE '%"is_variation";i:1;%'
AND pm.meta_value LIKE '%"pa_kolor";a:%:"is_variation";i:1;%';

Zapytanie to wykonuje następujące kroki:

  1. SELECT DISTINCT p.ID, p.post_title: Wybiera unikalne identyfikatory i tytuły postów z tabeli wp_posts.
  2. INNER JOIN wp_postmeta pm ON p.ID = pm.post_id: Łączy tabelę wp_posts z tabelą wp_postmeta na podstawie ID postu.
  3. WHERE p.post_type = ‘product’: Filtruje wyniki, aby uzyskać tylko te posty, które są produktami.
  4. AND p.post_status = ‘publish’: Filtruje wyniki, aby uzyskać tylko opublikowane produkty.
  5. AND pm.meta_key = ‘_product_attributes’: Filtruje wyniki, aby uzyskać tylko te meta dane, które są atrybutami produktu.
  6. AND pm.meta_value LIKE ‘%”pa_kolor”;%’: Filtruje wyniki, aby uzyskać tylko te produkty, które mają atrybut koloru.
  7. AND pm.meta_value LIKE ‘%”is_variation”;i:1;%’: Filtruje wyniki, aby uzyskać tylko te produkty, które mają atrybut koloru skonfigurowany jako wariant.
  8. AND pm.meta_value LIKE ‘%”pa_kolor”;a:%:”is_variation”;i:1;%’;: Dodatkowo filtruje wyniki, aby upewnić się, że atrybut koloru jest wariantem.

Dzięki temu zapytaniu otrzymamy listę produktów, które mają atrybut koloru skonfigurowany jako wariant, wraz z ich ID i tytułami.

Podsumowanie

To zapytanie jest skutecznym sposobem na wylistowanie produktów z określonym atrybutem koloru jako wariant w WooCommerce. Jeśli masz jakiekolwiek pytania lub potrzebujesz dodatkowej pomocy, daj znać!