在 WooCommerce 系统中,商品的 SKU 是保存在postmeta数据表中的,字段名称为 _sku
,以这个信息为前提,实现自动生成商品 SKU 的功能就简单了。下面是具体的代码
在下面的代码中,我们把功能挂载到了 save_post
这个 Hook 上,这个 Hook 在保存文章后执行。
首先我们判断文章类型是否为「product」,如果是,我们是用 WordPress 内置的 wp_generate_uuid4 函数生成一个随机的代码,并清理到其中的「-」字符,然后判断商品是否已有 SKU,如果没有,就添加生成的产品 SKU 到文章字段中,如果已有,就不再做处理了。
add_action('save_post', function ($post_id)
{
if (get_post_type($post_id) === 'product') {
$product_number = str_replace('-', '', wp_generate_uuid4());
$sku = get_post_meta($post_id, '_sku', true);
if (empty($sku)) {
update_post_meta($post_id, '_sku', $product_number);
}
}
});
在电商管理中,SKU 是用来判断商品唯一性的参数,商品的价格、属性都是关联到这个参数上面的,如无特殊需要,不建议这么轻率的处理 SKU,如果有 ERP 或库存管理系统,建议和这些系统结合起来进行管理。