2016-11-17 5 views
0

Ich bin auf der Suche nach einem add_filter oder add_action, die ich in functions.php setzen konnte, um die Anzahl der abgefragten oder zwischengespeicherten Ergebnisse in der Aufträge admin bearbeiten Seite (shop_order) zu begrenzen.Woocommerce Admin Bestellungen hook to limit Anzahl oder Gesamtzahl der angezeigten Bestellungen

Wir haben derzeit etwa 15.000 Bestellungen und die Abfragen dauern 20 Sekunden oder mehr zu laden. Es wäre ausreichend, die Ergebnisse auf 1000 oder 2000 zu begrenzen.

Transienten wurden gelöscht, Datenbank optimiert. Übliche Täter identifiziert. Aber ich bin nicht arrogant genug, um alles zu wissen, also sind irgendwelche Vorschläge willkommen, einschließlich der Änderung der Abfrage.

Antwort

1

Nur schnell Brainstorming, aber vielleicht sollte dies helfen:

add_action('pre_get_posts', 'limitShopOrders'); 

function limitShopOrders ($query) { 

if (is_admin() and $query->is_main_query() and $query->get('post_type') == 'shop_order') { 

$query->set('posts_per_page' => 1000); 
$query->set('no_found_rows' => true); 

} 

} 

interessant und wichtig ist no_found_rows - Sie hier lesen: https://wordpress.stackexchange.com/a/181553

+0

Dank dafür. Es scheint jedoch, einen Fehler zu werfen. Vielleicht, weil posts_per_page usw. in einem Array gesetzt werden sollte? – user3795286

+0

ok, ich habe das Problem gefunden: $ query-> set ('posts_per_page', '1000'); Ich korrigiere deine Antwort und akzeptiere sie als Lösung. Vielen Dank. – user3795286

Verwandte Themen