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

WooCommerce-在订单电子邮件中显示来自特定类别父级的子类别

傅献
2023-03-14

因此,我有一个奇怪的请求,要求在WooCommerce中确认订单后发送的订单电子邮件中显示产品分配给哪些子类别-但是我只想显示特定类别父项的类别。

你看,我在WooCommerce有两个主要类别,一个是品牌,另一个是类别。我只想显示品牌类别下分配给特定产品的子类别。在我的情况下,品牌类别(母公司)的ID为15。

我目前已经测试并确认有效的代码片段如下

function modfuel_woocommerce_before_order_add_cat($name, $item){

   $product_id = $item['product_id'];

   $_product = wc_get_product( $product_id );
   $htmlStr = "";
   $cats = "";
   $terms = get_the_terms( $product_id, 'product_cat' );

   $count = 0;
   foreach ( $terms as $term) {
    $count++;

    if($count > 1){
      $cats .= $term->name;
    }
    else{
      $cats .= $term->name . ',';
    }

   }

   $cats = rtrim($cats,',');

   $htmlStr .= $_product->get_title();

   $htmlStr .= "<p>Category: " . $cats . "</p>";

   return $htmlStr;
}

add_filter('woocommerce_order_item_name','modfuel_woocommerce_before_order_add_cat', 10, 2);

这里有人知道我可以在上面的代码中添加什么来获得我需要的东西吗?

谢谢!

共有1个答案

呼延河
2023-03-14

如果我理解你的代码,你现在有了$术语的所有类别,并希望跳过所有不是品牌子代的术语。

您可以简单地跳过没有这个父级的术语。您的代码看起来像这样:

function modfuel_woocommerce_before_order_add_cat($name, $item){

   $product_id = $item['product_id'];

   $_product = wc_get_product( $product_id );
   $htmlStr = "";
   $cats = "";
   $terms = get_the_terms( $product_id, 'product_cat' );

   $count = 0;
   foreach ( $terms as $term) {
    if ($term->parent != 15) continue;
    $count++;

    if($count > 1){
      $cats .= $term->name;
    }
    else{
      $cats .= $term->name . ',';
    }

   }

   $cats = rtrim($cats,',');

   $htmlStr .= $_product->get_title();

   $htmlStr .= "<p>Category: " . $cats . "</p>";

   return $htmlStr;
}

add_filter('woocommerce_order_item_name','modfuel_woocommerce_before_order_add_cat', 10, 2);

我添加了if($term)-

 类似资料:
  • 我需要一些关于Woocommerce类别显示选项的帮助。在Wordpress仪表板中,我按照以下链接全局设置类别显示选项<外观- 有三种显示选项可用。 展示产品 目前,选择了第三个选项,它显示子类别以及父类别和子类别下的所有产品。但是,我想排除子类别下的所有产品。换句话说,我只想在父类别下显示子类别和产品。 我在几个教程网站上找到了以下片段。代码完全按照我想要的方式工作,但它也禁用了管理产品搜索和

  • 我试图在处理订单时Woocommerce自动发送给客户的电子邮件中显示交货日期的值。 我已经创建了一个名为“leveranstid”的高级自定义字段值,我希望它与电子邮件中的每个产品一起显示。我试图将下面的代码添加到functions.php中,但似乎不起作用。什么也看不出来。如果有人能帮我找到问题所在,我将不胜感激?

  • 所以我已经为一个在线商店做了一个自定义管理订单模板(重新设计和重新安排了很多)。我已经知道“show image=>false/true”这不是我要找的答案,因为我完全改变了我的电子邮件模板中的一切。现在我的问题是不知道如何展示产品形象。 欢迎任何帮助,因为我是编码的新手。 编辑:这是我现在存在的错误: 下面是我的代码:

  • 我在一家Woocommerce商店工作,该商店的产品按父类别(如品牌、颜色、大小等)组织。这些顶级类别中的每一个都有许多子类别:例如,颜色的子类别包括红色、蓝色、粉色等。 客户希望在首页和归档页的网格/循环视图中,在每个产品缩略图下方显示每个产品的品牌和尺寸(产品是鞋)。 每个产品只有一个品牌,但可能有多种尺寸。 因此,本质上,我需要知道是否有一种方法可以只显示单个产品的特定子类别的标题,如下所示

  • 我正试图通过WoodPress主题中的一个函数从woocommerce获取产品类别,我已经做到了: 这将按层次列出所有顶级类别及其下的子类别,但我有子类别(子类别)的子类别,因此如何列出这些子类别。

  • 我用ACF插件创建了一个高级定制字段,以便在Woocommerce产品编辑页面上添加附加信息。这是一个区分T恤模板的副标题。我能够使价值出现在产品页面前端,但我需要这些信息出现在订单细节和所有电子邮件中,也许作为订单元。提前谢了。