产品变体的属性值

use*_*332 7 format attributes product variation woocommerce

我正面临着产品变化及其在woocommerce中的属性的大问题.我正在尝试显示每个可用产品变体的每个属性的表格.但Woocommerce保存在元后的属性小写的完整,替换斜线和德国的特殊字符,如ü,O,A等我得到的属性与$变种的> get_variation_attributes().我在数据库中搜索了您可以看到的保存值,例如在管理面板的下拉列表中,但它们是这样保存的,没有指向它们所分配的变体的链接:

a:5:{s:10:"bestell-nr";a:6:{s:4:"name";s:11:"Bestell-Nr.";s:5:"value";s:9:"1 | 2 | and so on...
Run Code Online (Sandbox Code Playgroud)

如何以正确的格式显示属性?

谢谢你的帮助!

hel*_*ing 12

实际上,产品属性实际上是自定义分类中的术语,因此您只需要获取该特定分类中的术语.所有属性分类都以'pa_'开头.因此,size属性将是'pa_size'分类法.变体ID是变体的帖子ID.

但是根据你想要如何显示它,WooCommerce有一个内置函数来显示所有变体的属性:

以下内容将显示所有变体属性的定义列表.

echo wc_get_formatted_variation( $product->get_variation_attributes() );
Run Code Online (Sandbox Code Playgroud)

并传递第二个参数true将显示一个平面列表:

echo wc_get_formatted_variation( $product->get_variation_attributes(), true );
Run Code Online (Sandbox Code Playgroud)


Del*_*ant 5

这似乎对我有用。希望这可以帮助。

$post = get_post();
$id =  $post->ID;
$product_variations = new WC_Product_Variable( $id );
$product_variations = $product_variations->get_available_variations();
print_r($product_variations);
Run Code Online (Sandbox Code Playgroud)

这可以在 class-wc-product-variable.php 中找到

所以基本上,如果你在那个页面上环顾四周,你会发现一堆有用的功能。

这是我放在一起的东西。

 $product_children = $product_variations->get_children();

 $child_variations = array();

 foreach ($product_children as $child){

 $child_variations[] = $product_variations->get_available_variation($child);

 }

 print_r($child_variations);
Run Code Online (Sandbox Code Playgroud)