Wpis z mikrobloga

Hej Mirki, mam takie pytanie z #wordpress i #php ( ͡° ͜ʖ ͡°) . Metodą prób i błędów i wykorzystania rozwiązań w internecie udało mi się zrobić "Najpopularniejsze" w nowej zakładce, w ten sposób:

$featured_query = new WP_Query( array(
'post_type' => 'product',
'meta_key' => 'total_sales',
'orderby' => 'meta_value_num',
'order' => 'DESC',
'posts_per_page' => 8,
) );

Nawet byłam z siebie dumna ( ͡° ͜ʖ ͡°) ale to totalsales nie bardzo mi pasuje, bo to co było modne rok temu teraz już niekoniecznie.. I chciałabym zmienić to na np. sprzedaż z ostatniego miesiąca, ale to już niestety w żaden sposób mi nie działa, a nie mogę znaleźć już czegoś takiego w internecie (lub po prostu źle szukam). Czy ktoś wie jak inaczej można zrobić 'meta_key' => żeby wyświetlała się sprzedaż tylko z ostatniego msc? Z góry bardzo dziekuję
  • 10
Ostatnich dni nie wyciągniesz pytając o "sumaryczną sprzedaż".

Musisz wyciągnąć sprzedane produkty z ostatnich np 3 tygodni nie z metawartości tylko z tabeli z zamówieniami/fakturami

global $wpdb;

$pytanie = $wpdb->prepare('
SELECT post_id, COUNT(*) AS popularnosc
FROM Twoja_tabela_Z_Zamowieniami_lub_Fakturami
WHERE
data_kupna BETWEEN DATE_SUB(CURRENT_DATE(), INTERVAL 3 WEEK) AND CURRENT_DATE()
GROUP BY post_id
ORDER BY popularnosc DESC
LIMIT 5');

Wykonaj pytanie

$wyniki = $wpdb->get_results( $pytanie ) ;
Stwórz listę ID produktów spełniających w/w

$id_najpopularniejszych =
Są pluginy, które np. raz na tydzień zaciągają z Google Analytics ilość wyświetleń z ostatnich 30 dni.

https://wordpress.org/plugins/google-analytics-post-pageviews/

wtedy masz w postmeta informacje o wyświetleniach z ostatnich 30 dni. Sprzedaż nie odzwierciedla zainteresowania - możesz mieć za wysoką cenę, błąd na stronie... i nie będzie sprzedaży.

Plusy:
Mając wyświetlenia w postmeta wszystko sortujesz standardowymi zapytaniami w pre_get_posts .

Minusy:
Im większa strona/sklep tym więcej danych w bazie danych.
@nebuso: Dzięki, zaczęłam z tym kombinować. Mam tutaj tabelę tylko taką, która się nazywa wpwoocommerceorder_items i w niej mam order item id, order item name, order item type i order id

Zastanawiam się jak on będzie sumował produkty o tym samym id żeby ustalić hierarchię, kiedy już sam kod mi zadziała?