Khắc phục lỗi hasMerchantReturnPolicy và shippingDetails

 

Khắc phục lỗi hasMerchantReturnPolicy và shippingDetails

Khắc phục lỗi hasMerchantReturnPolicy và shippingDetails

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

Khắc phục lỗi hasMerchantReturnPolicy và shippingDetails

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

Post a Comment

Mới hơn Cũ hơn