Ich verwende diese SQL-Abfrage, um alle Produkte ohne Bild abzurufen
SELECT id
FROM `wp_posts`
WHERE id NOT IN (SELECT post_id FROM `wp_postmeta` WHERE `meta_key` =
'_thumbnail_id')
AND `post_type` = 'product'
AND `post_status` = 'publish'
Jetzt würde ich alle Produkte ohne Bild und Lagerstatus auf Lager abrufen, gibt es eine Möglichkeit, dies zu tun?
Mit der folgenden SQL-Abfrage können Sie Produkte ohne Bild abrufen, die “auf Lager” sind:
SELECT ID
FROM wp_posts p
INNER JOIN wp_postmeta pm ON p.ID = pm.post_id
WHERE ID NOT IN (SELECT post_id FROM wp_postmeta WHERE meta_key = '_thumbnail_id')
AND p.post_type="product"
AND p.post_status="publish"
AND pm.meta_key = '_stock_status'
AND pm.meta_value="instock"
Oder Sie können es mit abfragen WPDB
Klasse über PHP wie:
global $wpdb;
$product_ids = $wpdb->get_col( "
SELECT ID
FROM {$wpdb->prefix}posts p
INNER JOIN {$wpdb->prefix}postmeta pm ON p.ID = pm.post_id
WHERE ID NOT IN (SELECT post_id FROM {$wpdb->prefix}postmeta WHERE meta_key = '_thumbnail_id')
AND p.post_type="product"
AND p.post_status="publish"
AND pm.meta_key = '_stock_status'
AND pm.meta_value="instock"
");
// Raw output
print_r($product_ids);