J'essaie d'obtenir la valeur de woocommerce customfield à partir d'un tableau d'ID de produit. Pas de chance, je suis sur la page personnalisée pas sur la boucle woocommerce
essayé ceci: $ productArray1 est une liste d'ID de produit (et ça marche)
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;
}
};
Je peux obtenir tous les produits avec le même customfield comme ceci:
$products = wc_get_products( array( 'product_cip' => '3337875548519' ) );
echo 'PRODUCT WITH SAME CIP (TOTAL : '.count($products).')<br>';
Mais je dois trouver 'product_cip' par ID de produit. Un indice? Merci pour l'aide
Si vous recherchez tous les produits avec la même valeur 'product_cip', essayez ceci:
$ a = array ( 'post_type' => 'product', 'post_status' => 'publish', 'posts_per_page' => - 1 , 'meta_query' => array ( array ( 'key' => 'product_cip', 'value' => 'une certaine valeur', 'compare' => '=' ) ), 'fields' => 'ids' ); $ b = get_posts ($ a); compte d'écho ($ b);
si vous avez toutes les données produits
$ products_array = array (); poureach ($ b as $ v) { $ _ product = wc_get_product ($ v); echo $ _product-> get_name (). ','; $ products_array [] = $ _ product; }
Essaye ça:
$ product_obj = array (); poureach ($ productArray1 as $ value) { $ product_obj ['id'] = $ value; $ product_obj ['product_cip'] = get_post_meta ($ value, 'product_cip'); }
ou
poureach ($ productArray1 as $ value) { $ product_obj ['id'] = $ value; $ product_obj ['product_cip'] = get_post_meta ( $ value, 'product_cip', true); } echo 'PRODUIT AVEC LE MÊME CIP (TOTAL:' .count ($ product_obj). ')
';
si meta value pas tableau.