WooCommerce 显示可变产品属性

时间:2021-02-22 08:20:14

标签: wordpress woocommerce product product-variations

我正在尝试显示具有多种变体的特定产品的属性(即 id:459),并尝试在索引页面上显示一些属性(即名称、id、产品链接和图像)。我设法获得了变体图片和 id,但是现在发现很难显示产品的 URL 和显示可变的产品名称。

我试图在网上寻找答案,但连手抄本或文档都找不到。有人可以帮忙吗?

这是我的工作代码,显示图像和 ID 非常好。

<?php 
$product = new WC_Product_Variable( '459' );
$variations = $product->get_available_variations();

foreach ( $variations as $variation ) {
    echo "<img src=" . $variation['image']['thumb_src'] .">";
    echo $variation['variation_id'];
    echo $variation['variation_Name ']; // (Error: "Notice: Undefined index: variation_Name in   /var/www/wp-content/themes/...")
}                    
?>

提前感谢您的帮助。

编辑 这是我的代码,除了没有获取属性名称之外,一切都完美无缺。

我收到此错误消息:/var/www/wp-content 中的数组到字符串转换

<?php 
$product = new WC_Product_Variable( '459' ); 
$variations = $product->get_available_variations(); 

foreach ( $product->get_variation_attributes() as $attribute_name =>   $ {
 $attributes[] = array( 'name' => ucwords( str_replace( 'attribute_', '', 
wc_attribute_taxonomy_slug( $attribute_name ) ) ), 
'option' => $attribute, ); 
echo $attribute;
}

foreach ( $variations as $variation ) { 

echo '<div class="col-3">';
echo '<a href="'.$product->get_permalink().'#variations-table">';

echo $product->get_title();

echo "<img src=" . $variation['image']['thumb_src'] .">";

echo 'View Product</a>';
echo '</div>';

} 

?>

非常感谢:)

1 个答案:

答案 0 :(得分:1)

/* try this below code instead*/
/* Get variation attribute based on product ID */
$product = new WC_Product_Variable( $product_id );
$variations = $product->get_available_variations();
$var_data = [];
foreach ($variations as $variation) {
if($variation[‘variation_id’] == $variation_id){
$var_data[] = $variation[‘attributes’];
}
}

/*Get attributes from loop*/
foreach($var_data[0] as $attrName => $var_name) {
echo $var_name;
}