Ich versuche, den Wert von woocommerce customfield aus einer Reihe von Produkt-IDs zu ermitteln. Kein Glück, ich bin auf einer benutzerdefinierten Seite und nicht in der Woocommerce-Schleife
versuchte dies: $ productArray1 ist eine Liste der Produkt-ID (und es funktioniert)
global $wpdb;
global $product;
foreach ($productArray1 as $value)
{
$querystr = "
SELECT meta_value
FROM $wpdb->postmeta.meta_key
WHERE $wpdb->postmeta.meta_key = 'product_cip'
AND $wpdb->posts.$product->ID=$value
ORDER BY meta_value DESC
";
$productsCIP = $wpdb->get_results($querystr, OBJECT);
if ( ! $productsCIP ) {
$wpdb->print_error();
}
else {
echo $productsCIP;
}
};
Ich kann alle Produkte mit dem gleichen benutzerdefinierten Feld wie folgt erhalten:
$products = wc_get_products( array( 'product_cip' => '3337875548519' ) );
echo 'PRODUCT WITH SAME CIP (TOTAL : '.count($products).')<br>';
Aber ich muss 'product_cip' anhand der Produkt-ID finden. Irgendeine Ahnung ? Danke für die Hilfe
Wenn Sie alle Produkte mit dem gleichen Wert für 'product_cip' suchen, versuchen Sie Folgendes:
$ a = array ( 'post_type' => 'product', 'post_status' => 'publish', 'posts_per_page' => - 1 , 'meta_query' => array ( array ( 'key' => 'product_cip', 'value' => 'some value', 'compare' => '=' ) ), 'fields' => 'ids' ); $ b = get_posts ($ a); Echozählung ($ b);
wenn Sie alle Produktdaten haben
$ products_array = array (); foreach ($ b als $ v) { $ _ product = wc_get_product ($ v); echo $ _product-> get_name (). ','; $ products_array [] = $ _ product; }
Versuche dies:
$ product_obj = array (); foreach ($ productArray1 als $ value) { $ product_obj ['id'] = $ value; $ product_obj ['product_cip'] = get_post_meta ($ value, 'product_cip'); }
oder
foreach ($ productArray1 als $ value) { $ product_obj ['id'] = $ value; $ product_obj ['product_cip'] = get_post_meta ( $ value, 'product_cip', true); } echo 'PRODUCT WITH SAME CIP (TOTAL:' .count ($ product_obj). ')
';
wenn der Metawert kein Array ist.