如何在WordPress中从Slug名称中获取WooCommerce属性标签和ID?

lawou6xi  于 2023-05-28  发布在  WordPress
关注(0)|答案(2)|浏览(140)

我有一个属性:

  • 名称(标签): Package 盒尺寸
  • 炉渣:箱型

我试了这个代码:

$attribute_slug = 'pa_box-size'; 

// Get the term object based on the attribute slug
$term = get_term_by('slug', $attribute_slug, 'pa');

if ($term) {
   $attribute_label = $term->name; // Attribute label
   $attribute_id = $term->term_id; // Attribute ID

   // Output the attribute label and ID
   echo 'Attribute Slug: ' . $attribute_slug . '<br>';
   echo 'Attribute Label: ' . $attribute_label . '<br>';
   echo 'Attribute ID: ' . $attribute_id;
} else {
   echo 'Attribute not found: ' . $attribute_slug;
}

但总是得到“属性未找到:pa_box-size”。

2skhul33

2skhul331#

我用这个解决了我的问题:

$output = '<ul style="list-style:none;">';

// Loop through all Woocommerce product attributes
foreach (wc_get_attribute_taxonomies() as $attribute) {
  $attribute_label = $attribute->attribute_label;  // Product attribute name
  $attribute_slug = $attribute->attribute_name;    // Product attribute slug
  $attribute_id = $attribute->attribute_id;        // Attribute ID

  $output.= '<li class="'.$attribute_slug.'" data-id="'.$attribute_id.'">'
                .$attribute_label.'</li>';
}
// Output
echo $output.'</ul>';

来源:wordpress.stackexchange.com
所以我只需要一个IF语句来检查一个特定的属性。

jchrr9hc

jchrr9hc2#

You can try this code.

$attribute_slug = 'color'; // Replace with your attribute slug

$product_attributes = wc_get_attribute_taxonomies();

foreach ($product_attributes as $product_attribute) {
    if ($product_attribute->attribute_name === $attribute_slug) {
        $attribute_label = $product_attribute->attribute_label;
        $attribute_id = $product_attribute->attribute_id;

        echo 'Attribute Label: ' . $attribute_label . '<br>';
        echo 'Attribute ID: ' . $attribute_id;

        break;
    }
}

相关问题