// Adăugăm schema pentru produse în pagina de produs din WooCommerce add_action('wp_head', 'add_schema_for_woocommerce_product', 99); function add_schema_for_woocommerce_product() { if (is_product()) { global $product; // Asigurăm că avem un obiect produs valid if (!$product || !$product->exists()) { return; } // Preluăm datele produsului $product_id = $product->get_id(); $product_name = $product->get_name(); $product_sku = $product->get_sku() ? $product->get_sku() : ''; $product_url = get_permalink($product_id); $currency = get_woocommerce_currency(); $brand_name = 'Depozitul de Brazi'; // Poți schimba cu o metodă dinamică // Preluăm imaginea principală a produsului $image_id = $product->get_image_id(); $image_url = wp_get_attachment_url($image_id); // Asigurăm că avem o imagine. Dacă lipsește, folosim o imagine default if (!$image_url) { $image_url = 'URL_imagine_default'; // Înlocuiește cu URL-ul unei imagini default } // Preluăm descrierea produsului $description = $product->get_short_description() ? $product->get_short_description() : $product->get_description(); $description = wp_strip_all_tags($description); // Preluăm mpn sau gtin (unul dintre acestea este obligatoriu) $mpn = $product->get_meta('mpn') ? $product->get_meta('mpn') : ''; $gtin = $product->get_meta('gtin') ? $product->get_meta('gtin') : ''; // Dacă nu avem mpn sau gtin, putem folosi SKU ca mpn if (!$mpn && !$gtin && $product_sku) { $mpn = $product_sku; } // Inițializăm schema $schema = array( '@context' => 'https://schema.org/', '@type' => 'Product', 'name' => $product_name, 'image' => $image_url, 'description' => $description, 'sku' => $product_sku, 'brand' => array( '@type' => 'Brand', 'name' => $brand_name ), ); // Adăugăm mpn sau gtin if ($mpn) { $schema['mpn'] = $mpn; } elseif ($gtin) { $schema['gtin'] = $gtin; } // Adăugăm aggregateRating dacă există evaluări $average_rating = $product->get_average_rating(); $review_count = $product->get_review_count(); if ($average_rating && $review_count) { $schema['aggregateRating'] = array( '@type' => 'AggregateRating', 'ratingValue' => round((float) $average_rating, 2), 'reviewCount' => (int) $review_count ); } // Adăugăm recenziile $reviews = array(); $comments = get_comments(array( 'post_id' => $product_id, 'status' => 'approve', 'type' => 'review', )); foreach ($comments as $comment) { $rating = get_comment_meta($comment->comment_ID, 'rating', true); if ($rating) { $reviews[] = array( '@type' => 'Review', 'author' => array( '@type' => 'Person', 'name' => $comment->comment_author ), 'datePublished' => get_comment_date('c', $comment), 'reviewBody' => wp_strip_all_tags($comment->comment_content), 'reviewRating' => array( '@type' => 'Rating', 'ratingValue' => (int) $rating, 'bestRating' => '5', 'worstRating' => '1' ) ); } } if (!empty($reviews)) { $schema['review'] = $reviews; } // Pregătim oferta $availability = $product->is_in_stock() ? 'http://schema.org/InStock' : 'http://schema.org/OutOfStock'; $condition = 'http://schema.org/NewCondition'; // Presupunem că produsele sunt noi $priceValidUntil = date('Y-m-d', strtotime('+1 year')); // Data dinamică // Verificăm dacă produsul are un preț valid $price = $product->get_price(); if ($price === '') { error_log('Prețul produsului este gol pentru produsul ID ' . $product_id); return; } else { $price = number_format((float) $price, 2, '.', ''); } $regular_price = $product->get_regular_price(); $sale_price = $product->get_sale_price(); // Construim oferta $offer = array( '@type' => 'Offer', 'url' => $product_url, 'priceCurrency' => $currency, 'price' => $price, 'priceValidUntil' => $priceValidUntil, 'availability' => $availability, 'itemCondition' => $condition, 'seller' => array( '@type' => 'Organization', 'name' => $brand_name ), ); // Dacă există un preț redus, includem prețul original if ($sale_price && $regular_price && $regular_price > $sale_price) { $offer['price'] = number_format((float) $sale_price, 2, '.', ''); $offer['priceSpecification'] = array( '@type' => 'UnitPriceSpecification', 'price' => number_format((float) $sale_price, 2, '.', ''), 'priceCurrency' => $currency, 'referencePrice' => number_format((float) $regular_price, 2, '.', ''), 'valueAddedTaxIncluded' => true, ); } $schema['offers'] = $offer; // Convertim schema în JSON-LD $json_ld = json_encode($schema, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT); if ($json_ld === false) { error_log('Eroare la codificarea JSON: ' . json_last_error_msg()); return; } // Afișăm schema.org JSON-LD echo ''; } } Brad Artificial » Depozitul De Brazi
REDUS
41 %
Pănă la 780 lei
REDUS
41 %
Pănă la 900 lei
REDUS
41 %
Pănă la 1.150 lei
REDUS
41 %
Pănă la 1.150 lei
Brad Artificial ATLAS SNOW - image depozitul-de-brazi-logo-white on https://depozituldebrazi.ro

Oare nu ai uitat ceva în coșul tău? 😢

Pentru a salva coșul de cumpărături pentru mai târziu, introdu mai jos adresa ta de email. Și, cine știe, poate chiar îți vom trimite un cod pentru reduceri atrăgătoare :)

Acest site folosește cookie-uri pentru a vă oferi o experiență de navigare mai bună. Navigând pe acest site web, sunteți de acord cu utilizarea noastră de cookie-uri.