商品IDの配列からwoocommerce customfieldの価値を得ようとしています。運が悪い、私はwoocommerceのループではなくカスタムページにいます。
これを試してみました:$ productArray1は製品IDのリストです(そしてそれは働いています)
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;
}
};
私はこのように同じカスタムフィールドを持つすべての製品を入手することができます。
$products = wc_get_products( array( 'product_cip' => '3337875548519' ) );
echo 'PRODUCT WITH SAME CIP (TOTAL : '.count($products).')<br>';
しかし、私は製品IDで 'product_cip'を見つける必要があります。どんな手掛かり ?手伝ってくれてありがとう
同じ 'product_cip'値を持つすべての商品を探す場合は、次のことを試してください。
$ a = array( 'post_type' => 'product'、 'post_status' => 'publish'、 'posts_per_page' => - 1 、 'meta_query' => array( array( 'key' => 'product_cip'、 'value' => 'some value'、[ [比較] => '=' ) )、 'フィールド' => 'ids' ); $ b = get_posts($ a); エコーカウント($ b);
すべての製品データを入手した場合
$ products_array = array(); foreach($ bを$ vとして){ $ _ product = wc_get_product($ v); echo $ _product-> get_name()。 '、'; $ products_array [] = $ _ product; }
これを試して:
$ product_obj = array(); foreach($ productArray1を$ valueとして) { $ product_obj ['id'] = $ value; $ product_obj ['product_cip'] = get_post_meta($ value、 'product_cip'); }
または
foreach($ productArray1を$ value) { $ product_obj ['id'] = $ value; $ product_obj ['product_cip'] = get_post_meta( $ value、 'product_cip'、true); } echo '同じCIPを持つ製品(合計:' .count($ product_obj)。)
';
メタ値が配列でない場合.