Có phải bạn đang gặp thông báo lỗi thiếu hasMerchantReturnPolicy và shippingDetails trong Google Search Console.
Bài viết này, mình sẽ hướng dẫn bạn cách thêm hasMerchantReturnPolicy, thêm shippingDetails để không bị Google Search Console cảnh báo lỗi nữa.
Hướng dẫn fix lỗi hasMerchantReturnPolicy
Hướng dẫn fix lỗi shippingDetails
Bước 1: Mở file functions.php
Bạn cần đăng nhập vào trang quản trị bằng tài khoản admin, mở file functions.php
Giao diện -> Sửa giao diện (hoặc Theme File Editor) -> functions.php
Bước 2: Thêm đoạn code bên dưới vào vị trí cuối cùng của file functions.php
/* * Sửa lỗi hasMerchantReturnPolicy và shippingDetails * Author: wpseo.vn * */ add_filter( 'woocommerce_structured_data_product_offer', 'wpseovn_woocommerce_structured_data_product_offer' ); add_filter( 'wpseo_schema_product', 'wpseovn_wpseo_schema_product' ); add_filter( 'rank_math/snippet/rich_snippet_product_entity', 'wpseovn_rich_snippet_product_entity' ); add_filter( 'wp_schema_pro_schema_product', 'wpseovn_wp_schema_pro_schema_product' ); function get_hasMerchantReturnPolicy(){ return '{ "@type": "MerchantReturnPolicy", "applicableCountry": "vi", "returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow", "merchantReturnDays": "7", "returnMethod": "https://schema.org/ReturnByMail", "returnFees": "https://schema.org/FreeReturn" }'; } function get_shippingDetails(){ return '{ "@type": "OfferShippingDetails", "shippingRate": { "@type": "MonetaryAmount", "value": "0", "currency": "VND" }, "deliveryTime": { "@type": "ShippingDeliveryTime", "businessDays": { "@type": "OpeningHoursSpecification", "dayOfWeek": [ "https://schema.org/Monday", "https://schema.org/Tuesday", "https://schema.org/Wednesday", "https://schema.org/Thursday", "https://schema.org/Friday" ] }, "handlingTime": { "@type": "QuantitativeValue", "minValue": "0", "maxValue": "3", "samedaydelivery" : "Yes", "unitCode": "DAY" }, "transitTime": { "@type": "QuantitativeValue", "minValue": "0", "maxValue": "3", "samedaydelivery" : "Yes", "unitCode": "DAY" } }, "shippingDestination": [ { "@type": "DefinedRegion", "addressCountry": "VN", "addressRegion": ["VN"] } ] }'; } function wpseovn_wpseo_schema_product($data){ if(isset($data['offers'])){ $hasMerchantReturnPolicy = get_hasMerchantReturnPolicy(); $shippingDetails = get_shippingDetails(); foreach ($data['offers'] as $key => $offer){ if(!isset($offers['hasMerchantReturnPolicy']) && $hasMerchantReturnPolicy){ $data['offers'][$key]['hasMerchantReturnPolicy'] = json_decode($hasMerchantReturnPolicy, true); } if(!isset($offers['shippingDetails']) && $shippingDetails){ $data['offers'][$key]['shippingDetails'] = json_decode($shippingDetails, true); } } } return $data; } function wpseovn_rich_snippet_product_entity($entity){ global $product; if(!is_singular('product') || !$product || is_wp_error($product)) return $entity; $hasMerchantReturnPolicy = get_hasMerchantReturnPolicy(); $shippingDetails = get_shippingDetails(); if(!isset($entity['offers']['hasMerchantReturnPolicy']) && $hasMerchantReturnPolicy){ $entity['offers']['hasMerchantReturnPolicy'] = json_decode($hasMerchantReturnPolicy, true); } if(!isset($entity['offers']['shippingDetails']) && $shippingDetails){ $entity['offers']['shippingDetails'] = json_decode($shippingDetails, true); } return $entity; } function wpseovn_wp_schema_pro_schema_product($schema){ if(isset($schema['offers']) && apply_filters( 'wp_schema_pro_remove_product_offers', true )) { $hasMerchantReturnPolicy = get_hasMerchantReturnPolicy(); $shippingDetails = get_shippingDetails(); if (!isset($schema['offers']['hasMerchantReturnPolicy']) && $hasMerchantReturnPolicy) { $schema['offers']['hasMerchantReturnPolicy'] = json_decode($hasMerchantReturnPolicy, true); } if (!isset($schema['offers']['shippingDetails']) && $shippingDetails) { $schema['offers']['shippingDetails'] = json_decode($shippingDetails, true); } } return $schema; } function wpseovn_woocommerce_structured_data_product_offer($offers){ $hasMerchantReturnPolicy = get_hasMerchantReturnPolicy(); $shippingDetails = get_shippingDetails(); if(!isset($offers['hasMerchantReturnPolicy']) && $hasMerchantReturnPolicy){ $offers['hasMerchantReturnPolicy'] = json_decode($hasMerchantReturnPolicy, true); } if(!isset($offers['shippingDetails']) && $shippingDetails){ $offers['shippingDetails'] = json_decode($shippingDetails, true); } return $offers; }
Bước 3: Lưu lại để hoàn tất
sao em thêm vào rồi mà vô google search console check lại nó vẫn k đc v ạ