Script Php
Da Webmobili Wiki.
Woocommerce
Qualsiasi tassonomia associata ai prodotti in WooCommerce.
Tassonomie standard WooCommerce
- Categorie prodotti
$categories = wp_get_post_terms($product->get_id(), 'product_cat');
- Tagprodotti
$tags = wp_get_post_terms($product->get_id(), 'product_tag');
Attributi globali WooCommerce
Gli attributi globali vengono registrati come tassonomie con prefisso pa_. Ad esempio:
- Attributo brand → tassonomia pa_brand
- Attributo fornitore → tassonomia pa_fornitore
- Attributo codice_fornitore → tassonomia pa_codice_fornitore
Quindi puoi recuperarli così:
$brands = wp_get_post_terms($product->get_id(), 'pa_brand');
$fornitori = wp_get_post_terms($product->get_id(), 'pa_fornitore');
$codici_fornitore = wp_get_post_terms($product->get_id(), 'pa_codice_fornitore');
Recuperare tutti i termini (categorie + tag + attributi globali)
$taxonomies = get_object_taxonomies('product');
foreach ($taxonomies as $taxonomy) {
$terms = wp_get_post_terms($product->get_id(), $taxonomy);
if (!empty($terms)) {
echo "<strong>{$taxonomy}:</strong> ";
echo implode(', ', wp_list_pluck($terms, 'name'));
echo "<br>";
}
}
Attributi personalizzati (NON globali)
Gli attributi personalizzati (non globali) che inserisci a mano nella scheda prodotto non sono tassonomie: sono salvati come metadati in _product_attributes. Quindi per quelli bisogna usare:
$attributes = $product->get_attributes();
Codice per recuperare sia attributi globali che custom
$product_id = 123; // ID del prodotto da controllare
$product = wc_get_product($product_id);
// 1. Recupera categorie e tag
$categories = wp_get_post_terms($product->get_id(), 'product_cat');
$tags = wp_get_post_terms($product->get_id(), 'product_tag');
echo "<h3>Categorie</h3>";
echo implode(', ', wp_list_pluck($categories, 'name')) . "<br>";
echo "<h3>Tag</h3>";
echo implode(', ', wp_list_pluck($tags, 'name')) . "<br>";
// 2. Recupera attributi globali (tassonomie con prefisso pa_)
$taxonomies = get_object_taxonomies('product');
echo "<h3>Attributi Globali</h3>";
foreach ($taxonomies as $taxonomy) {
if (strpos($taxonomy, 'pa_') === 0) { // solo gli attributi
$terms = wp_get_post_terms($product->get_id(), $taxonomy);
if (!empty($terms)) {
echo ucfirst(str_replace('pa_', '', $taxonomy)) . ": ";
echo implode(', ', wp_list_pluck($terms, 'name'));
echo "<br>";
}
}
}
// 3. Recupera attributi personalizzati (non globali)
echo "<h3>Attributi Personalizzati</h3>";
$attributes = $product->get_attributes();
foreach ($attributes as $attribute) {
if ($attribute->is_taxonomy()) {
// già gestito sopra (pa_*), lo salto
continue;
}
$name = $attribute->get_name();
$options = $attribute->get_options();
echo ucfirst($name) . ": " . implode(', ', $options) . "<br>";
}