WooCommerce:从变体Sku获取产品ID

时间:2018-03-26 作者:Morten

我正在创建一个webshop,它从csv文件导入许多产品。我需要链接到可用的配件等,这些配件由受人尊敬的产品SKU单独确定和进口。

我知道可以通过以下简单的产品SKU获取产品ID:

wc_get_product_id_by_sku(\'PRODUCT_SKU\');
是否有同样的方法,但使用不同的sku?

2 个回复
SO网友:Tim

我遇到了一个非常类似的问题。我在woocommerce代码中找不到任何可以让您直接从变体sku中查找父产品的内容。但是,由于产品变化存储在wp_posts 具有类型的表product_variation, SKU存储在wp_post_meta 表中,通过使用get_posts() wordpress功能。

$args = array(
    \'post_type\'  => \'product_variation\',
    \'meta_query\' => array(
        array(
            \'key\'   => \'_sku\',
            \'value\' => \'PRODUCT_SKU\',
        )
    )
);
$posts = get_posts( $args);
这将返回匹配的product_variation 自定义帖子类型。

一旦有了它,就可以使用列查找父产品post_parent WooCommerce用于将变体链接到父变量产品。

将其转化为函数非常简单:

function wc_get_product_id_by_variation_sku($sku) {
    $args = array(
        \'post_type\'  => \'product_variation\',
        \'meta_query\' => array(
            array(
                \'key\'   => \'_sku\',
                \'value\' => $sku,
            )
        )
    );
    // Get the posts for the sku
    $posts = get_posts( $args);
    if ($posts) {
        return $posts[0]->post_parent;
    } else {
        return false;
    }
}
我在我的网站上使用它,效果很好。希望这有帮助。

SO网友:abhiGT

最简单的方法是使用wc_get_product_id_by_sku 函数然后获取后期父ID以获取产品ID。

$variation_id = wc_get_product_id_by_sku(\'VARIATION_SKU\');
$product_id = wp_get_post_parent_id($variation_id);

结束

相关推荐