wpallimport - 如何用产品 ID 替换 sku?

wpallimport - how do I replace sku with product id?

我使用制造商的提要上传到 WooCommerce 自定义字段。 自定义字段需要一个产品 ID 作为输入,但提要并不知道这一点,因为它是由 WooCommerce 创建的。 我使用 SKU 作为键来将现有产品与 Feed 进行比较。

导入的字段名为{metaparent_sku[1]},内容有多个值,用|分隔, 例如: BDCD7 | BDAUX | BDCA1 | ADUP89 这些是独特的产品 sku,指的是 WooCommerce 中已有的产品。

我想做的是将 sku 值替换为相应的产品 ID 值,因为它已经存在于 WooCommerce 中。

我一直在尝试使用 str_replace,但完全不知道如何设置,如果可能的话。还是我应该使用查找? 如果有人可以帮助提供一些示例代码,我将不胜感激。

通过 sku 字段查找产品 ID。

[wc_get_product_id_by_sku({sku[1]})]

所以在你的情况下是:

[wc_get_product_id_by_sku({metaparent_sku[1]})]

当您在一个字段中有多个 sku 时,请创建一个自定义函数。 将以下函数放在 Function Editor.

/**
 * Find product id(s) by sku(s)
 * @param string $sku
 * @return string with product id(s)
 */
function wp_all_import_get_product_ids_by_sku($sku, $seperator = "|") {
    // define empty $product_ids
    $product_ids = array();
    // remove spaces from sku
    $sku  = str_replace(" ", "", $sku);
    // convert to array
    $skus = explode($seperator, $sku);
    // find product ids
    foreach ($skus as $sku) {
        $product_ids[] = wc_get_product_id_by_sku($sku);
    }
    // return product ids
    return implode(" | ", $product_ids);
}

那就这样用吧

[wp_all_import_get_product_ids_by_sku({metaparent_sku[1]})]