Missing field 'hasMerchantReturnPolicy' (in 'offers') Missing field 'shippingDetails' (in 'offers')

سلام دوستان من به تازگی یک وبسایت فروش فابل راه انداختم
Missing field ‘hasMerchantReturnPolicy’ (in ‘offers’)

Missing field ‘shippingDetails’ (in ‘offers’)

و خب این دو ارور رو در سرچ کنسول گول گرفتم از افزونه یاست سئو استفاده میکنم به طراح قالب میگم میگه موضوع سئو به ما ربطی نداره و همینجور به فروشنده یاست سئو میگم میگه این موضوع خارج از پشیتبانی ما هست

دو هفته ای هست که درگیر این موضوع هستم ممنون میشم یه راهکار بدید اگر افزونه ای چیزی هست معرفی کنید

سلام

بهترین کار اینه که از یه افزونه سئو استفاده کنید مثل Rank math. اسنیپت های shippingDetails و hasMerchantReturnPolicy براتون اضافه می کنه.

مراحل رفع مشکل:

اگه بخوای بی‌دردسر همه چیز اوکی شه:

  1. افزونه Rank Math SEO رو نصب کن.
  2. برو تو تنظیماتش:
    3.Rank Math → عنوان‌ها و متا → محصولات*
  3. اون پایین، بخش طرح‌واره یا Schema Markup رو پیدا کن.
  4. اونجا می‌تونی آدرس صفحه سیاست بازگشت و ارسال‌هات رو بزاری (مثلاً /return-policy یا /shipping).

همین! از این به بعد خود افزونه این اطلاعاتو توی کدهای محصولاتت می‌ذاره.

برا اینکه بتونی تست کنی درست انجام دادی یا نه از ابزار تست ریچ‌ریزلت گوگل انجام بده.

یا

اگه هم دوست داری می تونی بدون افزونه این کار رو انجام بدی. باید کد زیر رو به functions.php قالبت اضافه کنی:

add_filter('woocommerce_structured_data_product', 'add_custom_schema_fields', 20, 2);

function add_custom_schema_fields($markup, $product) {
    $markup['offers']['hasMerchantReturnPolicy'] = [
        '@type' => 'MerchantReturnPolicy',
        'applicableCountry' => 'IR',
        'returnPolicyCategory' => 'https://schema.org/ReturnAccepted'
    ];

    $markup['offers']['shippingDetails'] = [
        '@type' => 'OfferShippingDetails',
        'shippingRate' => [
            '@type' => 'MonetaryAmount',
            'value' => '0.00',
            'currency' => 'IRR'
        ],
        'shippingDestination' => [
            '@type' => 'DefinedRegion',
            'addressCountry' => 'IR'
        ],
        'deliveryTime' => [
            '@type' => 'ShippingDeliveryTime',
            'handlingTime' => [
                '@type' => 'QuantitativeValue',
                'minValue' => 1,
                'maxValue' => 2,
                'unitCode' => 'd'
            ],
            'transitTime' => [
                '@type' => 'QuantitativeValue',
                'minValue' => 2,
                'maxValue' => 5,
                'unitCode' => 'd'
            ]
        ]
    ];

    return $markup;
}

تو این کد:

  • کشور رو گذاشتیم ایران (IR)
  • ارز هم ریال (IRR)
  • و فرض کردیم ارسال رایگانه (اگه نیست، value رو تغییر بده)
  • اگه محصول برگشت‌پذیر نیست، ReturnNotPermitted بذار

نتیجش رو برامون بزار.

موفق باشید