اسکیمای ساختاریافته محصول ووکامرس (Product Schema JSON-LD)
با خواندن شیء محصول توسط `wc_get_product` اسکیمای کامل قیمت و موجودی را با فرمت JSON-LD تزریق کنید.
<?php
/**
* تولید اسکیمای جامع و اختصاصی محصول ووکامرس (Product Schema) سازگار با HPOS
*/
function bisco_output_product_schema() {
if ( ! function_exists( 'is_product' ) || ! is_product() ) {
return;
}
$product = wc_get_product( get_the_ID() );
if ( ! $product ) {
return;
}
$image_id = $product->get_image_id();
$image_url = $image_id ? wp_get_attachment_url( $image_id ) : home_url( '/placeholder.jpg' );
$schema = array(
'@context' => 'https://schema.org',
'@type' => 'Product',
'name' => esc_html( $product->get_name() ),
'image' => array( esc_url( $image_url ) ),
'description' => esc_html( wp_strip_all_tags( $product->get_short_description() ?: $product->get_description() ) ),
'sku' => esc_html( $product->get_sku() ?: 'SKU-' . $product->get_id() ),
'offers' => array(
'@type' => 'Offer',
'url' => esc_url( get_permalink( $product->get_id() ) ),
'priceCurrency' => get_woocommerce_currency(),
'price' => $product->get_price() ?: '0',
'priceValidUntil' => gmdate( 'Y-12-31', strtotime( '+1 year' ) ),
'availability' => $product->is_in_stock() ? 'https://schema.org/InStock' : 'https://schema.org/OutOfStock',
'itemCondition' => 'https://schema.org/NewCondition',
),
);
// افزودن امتیاز خریداران در صورت وجود
if ( $product->get_rating_count() > 0 ) {
$schema['aggregateRating'] = array(
'@type' => 'AggregateRating',
'ratingValue' => $product->get_average_rating(),
'reviewCount' => $product->get_rating_count(),
);
}
echo '<script type="application/ld+json">' . wp_json_encode( $schema, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES ) . '</script>' . "
";
}
add_action( 'wp_head', 'bisco_output_product_schema', 5 );