当前位置: 首页 > 知识库问答 >
问题:

根据产品类别自动设置商品配送类别

宗意蕴
2023-03-14

我的产品有两个基于类别的发货类。每次更新产品后,它都会丢失发货类,我不知道为什么。

然而,我试图通过编程方式为“保存时”的产品分配适当的装运类别:

  • 指定类别=

这是我的代码:

add_action( 'added_post_meta', 'woo_on_product_save', 10, 4 );
add_action( 'updated_post_meta', 'woo_on_product_save', 10, 4 );

function woo_on_product_save( $meta_id, $post_id, $meta_key, $meta_value ) {
    if ( $meta_key == '_edit_lock' ) {
        if ( get_post_type( $post_id ) == 'product' ) { 
            if (has_term('fastfood','product_cat')||has_term('coffee','product_cat')){
            $shipping_class_type=1001;
    }
    else{
        $shipping_class_type=1002;
    }
            $product = wc_get_product( $post_id );
            $product->set_shipping_class_id( $shipping_class_type );
            $product->save();
        }
    }
}

但这并不像预期的那样工作。当我对任何产品(即使是特定类别的产品)进行更改时,装运类总是变成1002。

你能告诉我我做错了什么吗?

共有1个答案

梅耘豪
2023-03-14

更新-改为使用其他钩子尝试以下操作(未测试):

add_action( 'woocommerce_process_product_meta', 'woo_on_product_save', 100 );
function woo_on_product_save( $post_id ) {
    if ( has_term( array('fastfood', 'coffee'), 'product_cat', $post_id ) ) {
        $shipping_class_id = 1001;
    } else {
        $shipping_class_id = 1002;
    }
    $product = wc_get_product( $post_id );
    $product->set_shipping_class_id( $shipping_class_id );
    $product->save();
}

代码进入functions.php活动子主题(或活动主题)的文件中。它可以工作。

注意:您需要确保10011002作为运输类ID存在。

 类似资料:
  • 我有一个名为“产品类型”的WooCommerce产品类别,我试图列出该类别下的所有类别,但不是这些类别的子类别。例如,我有: 产品类型 碳化物米尔斯 钓鱼工具 儿童类别 我希望它列出“电石磨坊”和“打捞工具”,但不是“儿童类别”。 这是我的代码: 但它仍然返回“儿童类别”。我不知道为什么将深度限制为“1”并将“include_children”设置为“false”不能解决这个问题。

  • 我一直在挖掘,但我没有找到我需要的答案。我目前正在使用WordPress-Woocommerce,一个叫做Shopifiq的主题。 我想在每个产品类别页面上显示不同的横幅。我唯一能想到的就是加上这样的东西: 也许在功能上。php文件,但我对php不太熟悉,我正在努力。任何帮助都将不胜感激! 编辑 我应该提到我希望横幅取代顶部的蓝色条,这是页面标题中的手柄。php。我安装了一个插件,如果有人查看,它

  • 我不明白!!!我已经设法将产品类别描述包含在各自的页面中。我有6个类别,其中四个我需要添加一个描述。从四个人中,有三个人发挥了应有的作用。然而,其中有一个不仅显示了它的描述,还显示了另一个类别的描述。 每个类别有两个用于多种语言目的。但是你可以看到我需要添加描述的四个类别。 1-上衣2-下装3-一体式4-运动装 前三个起到了应有的作用。即。底部分类页面。 但第四,运动服不仅不断地展示它的描述,而且

  • 在我的WooCommerce网上商店的单一产品显示所有类别,它属于使用以下代码: 现在,我只想显示顶级父类别,而不想显示产品所属的子类别。 我试了很多,但似乎什么都不管用。有人对此有解决方案吗?

  • 希望你能帮我解决这个问题。我有一个问题,一些产品在子类别404'ing当去那里的产品页面。但奇怪的是,我在谷歌上找不到的只是他们中的一些人在做这件事。 实例 SKU:产品1--类别:类别1 SKU:产品2--类别:类别2,子类别1 SKU:Product3--类别:类别2,子类别1 SKU:Product4--类别:类别2,子类别1 将显示Product1、Product2、Product4。带有

  • 商品类型 商品类型是用于划分商品的属性与规格,为不同类型的商品单独添加相对应的属性与规格项。 一、商品类型具体展示: 1、商品类型与前台商品属性和搜索商品的筛选相关联,具体的前台展示: 2、在后台的具体展示操作: 3、属性标签:添加的商品属性和筛选关键词。 添加商品类型 二、如上图,点击添加商品类型进行设置商品类型。 1、关联规格:关联之前设置好的规格归类后以便于在前台选择不同规格的商品。 2、关