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

如何在woocommerce中获取自定义产品模板上的自定义产品属性

洪黎昕
2023-03-14

我使用woocommerce插件创建了一个可变产品。在变量产品中,我创建了一个自定义属性“License Duration”,其值为“3个月| 6个月| 1年|寿命”。

现在我想在一个定制的单一产品模板上显示这个属性。

我试过以下解决方法

1.

$licenseDurations = get_the_terms( $post->ID, 'attribute_license-duration' );

这显示了var_dump($licenseDurations)上的以下内容 `

object(WP_Error)[558]
  public 'errors' => 
    array (size=1)
      'invalid_taxonomy' => 
        array (size=1)
          0 => string 'Invalid taxonomy' (length=16)
  public 'error_data' => 
    array (size=0)
    empty`

2.

global $product;
$licenseDuration = $product->get_attribute( 'License Duration' ); // Here I also tried attribute slug `attribute_license-duration` instead of `License Duration` but no use

参考:https://stackoverflow.com/a/13454788/2758870

3.

global $product;
$licenseDurations = get_the_terms( $product->id, 'License Duration');

foreach ( $licenseDurations as $licenseDuration ) 
{
    echo $licenseDuration->name;
}

在以上两种情况下,我都没有得到任何东西,因为$Products;返回nullvar_dump($Products)

4.我也试过这个代码http://isabelcastillo.com/woocommerce-product-attributes-functions

通过直接调用isa\u woo\u get\u one\u pa()来显示值。但是没有运气。

这里有人请帮忙...


共有3个答案

宋丰
2023-03-14

以下是所有产品属性列表。希望这对你有帮助。

$product_attributes = get_post_meta( $post->ID, '_product_attributes' ); 
foreach ( $product_attributes as $group_attributes ) {
    foreach ( $group_attributes as $attributes ) {
      echo $attributes['name'].'=>'.$attributes['value'];
    }
}
钦枫
2023-03-14

不确定woocommerce中是否有更改,上面没有给出属性值。下面这篇文章给出了正确的答案

//用属性名称替换pa_属性,但保留pa_前缀
//例如pa_权重

$fabric_values = get_the_terms( $product->id, 'pa_attribute');

foreach ( $fabric_values as $fabric_value ) {
  echo $fabric_value->name;
}
谷梁子濯
2023-03-14

你可以试试下面这些

1.get\u post\u meta获取产品属性

$attr = get_post_meta( 123, '_product_attributes' ); // replace 123 with the actual product id 
print_r( $attr );

2.或者您可以创建一个产品对象,然后使用get\u attributes方法

$p = new WC_Product( 123 ); // // replace 123 with the actual product id 
print_r( $p->get_attributes() );
 类似资料:
  • 我试图在woocommerce中获得一个特定的自定义属性。我在这个网站上读了很多文章,其中提供了3-5种方法。在尝试了所有方法之后,对我来说唯一有效的方法就是循环所有属性——所有其他属性都不起作用。我有一个名为“pdfs”的自定义属性 以下尝试不起作用:(链接) 这是唯一的一个工作:(链接) 我更希望能够使用第一个选项之一。任何帮助都将不胜感激。谢谢

  • 问题内容: 在Woocommerce中,我试图获取产品自定义属性值,但我失败了,我一无所获。 所以我尝试了: 我正在获取这些原始数据: 我知道有一个值,因为它显示在属性部分,但是我只是找不到一种方法来将其显示在我的自定义代码中。 问题答案: 编辑* : 自Woocommerce版本3起已弃用 * 按照@datafeedr在他的答案中写道: 甚至更紧凑: 原始答案:

  • 在WooCommerce中,我试图获得产品自定义属性值,但我失败了,什么也得不到。 所以我试着: 我得到了这些原始数据: 我知道有一个值,因为它显示在属性部分,但我就是找不到一种方法用我的自定义代码显示它。

  • 当我进入产品编辑页面时,有一个选项卡“属性”。在那里我可以设置属性名及其值。 我假设这就是在Woocommerce上为产品添加自定义属性的方式。 但是如何在循环中得到这个值呢? 我看到人们使用,但它希望我传递分类法和另一个参数数组。分类学是什么?我没有手动添加。论点是什么?

  • 我试图使用WooCommerce的分层导航属性过滤侧边栏小部件过滤WooCommerce商店中的〜30,000种产品。这需要使用预定义的产品属性分类法,而不是在每个产品的基础上使用自定义属性。 商店里的每种产品都有一个导入的定制“品牌”属性。在导入产品之前,我在wp-admin中创建了一个名为()的属性分类法。然而,进口产品没有将其品牌属性(和术语名称)添加到品牌()分类中。取而代之的是,所有的产

  • 问题在于当我的客户尝试从购物车中编辑一个产品时。因为所有产品都有相同的ID(我只有一个产品),所以添加到购物车的最后一个产品的元加载到文本字段中。我当前使用产品id检索中的元,但该id与购物车中的所有其他产品相同。有没有其他方法可以在不使用/(如或使用会话)的情况下检索元?