我使用来自制造商的提要上传到WooCommerce自定义字段。自定义字段需要一个产品id作为输入,但是提要不知道这一点,因为它是由WooCommerce创建的。我使用SKU作为关键,比较现有的产品和饲料。
导入的字段名为{metaparent_sku1},内容有几个值,它们之间有几个值,例如: BDCD7、BDAUX、BDCA1、BDCA1、ADUP89 --这些都是唯一的产品sku,它们指的是已经在WooCommerce中的产品。
我想要做的是用相应的产品ID值替换sku值,因为它已经存在于WooCommerce中。
我一直在尝试使用str_replace,但不知道如何设置它,如果可能的话。还是我应该使用查找?如果有人能帮忙处理一些示例代码,我将非常感激。
发布于 2021-10-06 19:25:41
通过sku字段查找产品ID。
[wc_get_product_id_by_sku({sku[1]})]所以在你的情况下,那就是:
[wc_get_product_id_by_sku({metaparent_sku[1]})]当您在一个字段中有多个sku时,请创建一个自定义函数。将以下函数放在功能编辑器中。
/**
* 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]})]https://stackoverflow.com/questions/69470695
复制相似问题