首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Woocommerce变体SKU

Woocommerce变体SKU
EN

Stack Overflow用户
提问于 2016-03-17 08:06:08
回答 1查看 1.3K关注 0票数 0

目前在Woocommerce中,当处理可变产品时,需要为每个变体完整地定义SKU。

我想要做的是定义一个父SKU,然后为每个变体定义SKU的后缀,最后的SKU是通过连接父SKU和变体后缀来产生的。

假设我有一个基本SKU PRODUCT_0001的父产品,也就是我想在这里定义的SKU PRODUCT_0001

然后对于变体,比如VARIANT_A,我想在这里定义后缀:

现在是产品变体的最终SKU (即在订单工作流程中传输的内容),我想表示为:

PRODUCT_0001/VARIANT_A

这样,可以防止在设置/定义许多变体时重复处理相同的基础产品代码。

有什么简单的方法可以做到这一点吗?

EN

回答 1

Stack Overflow用户

发布于 2016-03-17 15:57:48

我还没有在电子邮件上尝试过,但这在仪表板区域和前端都有效。

代码语言:javascript
复制
add_filter( 'woocommerce_get_sku', 'reigel_woocommerce_get_sku', 10, 2 );
function reigel_woocommerce_get_sku( $sku, $product ){
    // remove current filter to prevent unli loop on get_sku()
    remove_filter( current_filter(), __FUNCTION__ ); 
    if ( $product->get_type() === 'variation' ) {
        $parent = $product->parent->id?$product->parent->id:$product->get_parent();
        $sku = wc_get_product($parent)->get_sku() . '/' . $sku;
    }
    add_filter( 'woocommerce_get_sku', 'reigel_woocommerce_get_sku', 10, 2 );
    return $sku;
}

在变体上禁用sku唯一性...

代码语言:javascript
复制
add_filter( 'wc_product_has_unique_sku', 'reigel_wc_product_has_unique_sku', 10, 3 );
function reigel_wc_product_has_unique_sku( $sku_found, $product_id, $sku ) {
    $product = wc_get_product($product_id);
    if ( $product->get_type() === 'variation' ) {
        $sku_found = false;
    }
    return $sku_found;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36049318

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档