获取具有特定 meta_key 且 meta_value 在 WooCommerce 中相等的所有产品

Get all products with specific meta_key whose meta_value is equal in WooCommerce

在单个产品页面中,我想在自定义字段 (base_number) 中显示具有相同值的所有产品的库存数量,我认为这可以通过获取这些产品的 ID 来实现.

我试过什么都没有运气

$product = wc_get_product( $product_id );

$same_base = get_posts( array(
    'post_type' => 'product',
    'post_status' => 'publish',
    'meta_key' => 'base_number',
    'meta_value' => get_post_meta(get_the_ID(), 'base_number', TRUE),
    'fields' => 'ids',
));

return $same_base;

如有任何帮助,我们将不胜感激。

使用它来获取 meta_key = base_number

的所有产品
// Get WC_Product Objects
$products = wc_get_products( array(
    'limit'         => -1,
    'status'        => 'publish',
    'meta_key'      => 'base_number',
));

// Loop through
foreach( $products as $product ) {
    // Get product ID
    $product_id = $product->get_id();
    echo '<p>Product ID: ' . $product_id . '</p>';
    
    // Get stock quantity
    $stock_quantity = $product->get_stock_quantity();
    echo '<p>Stock quantity: ' . $stock_quantity . '</p>';
}

使用它来获取 meta_key = base_number 的所有产品,假设 meta_value = 30

// Get WC_Product Objects
$products = wc_get_products( array(
    'limit'         => -1,
    'status'        => 'publish',
    'meta_key'      => 'base_number',
    'meta_value'    => 30
));

// Loop through
foreach( $products as $product ) {
    // Get product ID
    $product_id = $product->get_id();
    echo '<p>Product ID: ' . $product_id . '</p>';
    
    // Get stock quantity
    $stock_quantity = $product->get_stock_quantity();
    echo '<p>Stock quantity: ' . $stock_quantity . '</p>';
}

使用它来获取所有产品 ID,其中 meta_key = base_numbermeta_value = $some_variable

// Some variable
$some_variable = 25;

// Get product ID's
$product_ids = wc_get_products( array(
    'limit'         => -1,
    'status'        => 'publish',
    'meta_key'      => 'base_number',
    'meta_value'    => $some_variable,
    'return'        => 'ids'
));

// Loop through
foreach( $product_ids as $product_id ) {
    echo '<p>Product ID: ' . $product_id . '</p>';
}

要获取您当前正在查看的产品的 base_number,请使用

// Get the global product object
global $product;

// Is a WC product
if ( is_a( $product, 'WC_Product' ) ) {
    // Get meta
    $base_number = $product->get_meta( 'base_number' );
    
    // NOT empty
    if ( ! empty ( $base_number ) ) {
        echo '<p>Base number: ' . $base_number . '</p>';
    }
}