Đầu tiên bạn cần phải thêm đoạn code vào trong Function.php để thêm các trường dữ liệu vào trong woocommerce.
Code fucntion
//** Meta field sản phẩm - Buiduchanh.net **/
// Thêm tab tùy chỉnh vào trang chỉnh sửa sản phẩm
function add_custom_product_tab( $tabs ) {
$tabs['bdh_custom_tab'] = array(
'label' => 'Thông tin Schema',
'target' => 'bdh_custom_product_data',
'class' => array('show_if_simple', 'show_if_variable', 'show_if_grouped', 'show_if_external'), // Hiển thị cho tất cả các loại sản phẩm
'priority' => 11,
);
return $tabs;
}
add_filter( 'woocommerce_product_data_tabs', 'add_custom_product_tab' );
// Hiển thị nội dung của tab tùy chỉnh
function add_custom_product_tab_content() {
global $post;
$is_variation = false;
if ( isset( $post->post_type ) && 'product_variation' === $post->post_type ) {
$is_variation = true;
}
echo '';
if($is_variation) {
echo 'Thông tin Schema cho biến thể
';
} else {
echo 'Thông tin Schema
';
}
woocommerce_wp_text_input(
array(
'id' => '_msp',
'label' => 'Mã sản phẩm',
'desc_tip' => 'true',
'description' => 'Mã sản phẩm (SKU)',
'value' => get_post_meta( $post->ID, '_msp', true ),
)
);
woocommerce_wp_text_input(
array(
'id' => '_giatien',
'label' => 'Giá tiền',
'desc_tip' => 'true',
'description' => 'Giá của sản phẩm (số)',
'value' => get_post_meta( $post->ID, '_giatien', true ),
)
);
woocommerce_wp_text_input(
array(
'id' => '_thuonghieu',
'label' => 'Thương hiệu',
'desc_tip' => 'true',
'description' => 'Tên thương hiệu của sản phẩm',
'value' => get_post_meta( $post->ID, '_thuonghieu', true ),
)
);
woocommerce_wp_text_input(
array(
'id' => '_xephang',
'label' => 'Xếp hạng',
'desc_tip' => 'true',
'description' => 'Điểm xếp hạng của sản phẩm (ví dụ: 4.5)',
'value' => get_post_meta( $post->ID, '_xephang', true ),
)
);
woocommerce_wp_text_input(
array(
'id' => '_danhgia',
'label' => 'Tổng lượt đánh giá',
'desc_tip' => 'true',
'description' => 'Tổng số lượt đánh giá của sản phẩm',
'value' => get_post_meta( $post->ID, '_danhgia', true ),
)
);
echo 'Thông tin đánh giá 1
';
woocommerce_wp_text_input(
array(
'id' => '_tenkh_1',
'label' => 'Tên khách hàng 1',
'desc_tip' => 'true',
'description' => 'Tên khách hàng đã đánh giá sản phẩm',
'value' => get_post_meta( $post->ID, '_tenkh_1', true ),
)
);
woocommerce_wp_textarea_input(
array(
'id' => '_review_1',
'label' => 'Đánh giá 1',
'desc_tip' => 'true',
'description' => 'Đánh giá của khách hàng 1 về sản phẩm',
'value' => get_post_meta( $post->ID, '_review_1', true ),
)
);
echo '';
}
add_action( 'woocommerce_product_data_panels', 'add_custom_product_tab_content' );
// Lưu giá trị của custom fields (sản phẩm và biến thể)
function save_custom_product_fields( $post_id ) {
if ( isset( $_POST['_msp'] ) ) {
update_post_meta( $post_id, '_msp', sanitize_text_field( $_POST['_msp'] ) );
}
if ( isset( $_POST['_giatien'] ) ) {
update_post_meta( $post_id, '_giatien', sanitize_text_field( $_POST['_giatien'] ) );
}
if ( isset( $_POST['_thuonghieu'] ) ) {
update_post_meta( $post_id, '_thuonghieu', sanitize_text_field( $_POST['_thuonghieu'] ) );
}
if ( isset( $_POST['_xephang'] ) ) {
update_post_meta( $post_id, '_xephang', sanitize_text_field( $_POST['_xephang'] ) );
}
if ( isset( $_POST['_danhgia'] ) ) {
update_post_meta( $post_id, '_danhgia', sanitize_text_field( $_POST['_danhgia'] ) );
}
if ( isset( $_POST['_tenkh_1'] ) ) {
update_post_meta( $post_id, '_tenkh_1', sanitize_text_field( $_POST['_tenkh_1'] ) );
}
if ( isset( $_POST['_review_1'] ) ) {
update_post_meta( $post_id, '_review_1', sanitize_textarea_field( $_POST['_review_1'] ) );
}
}
add_action( 'woocommerce_process_product_meta', 'save_custom_product_fields' );
add_action( 'woocommerce_save_product_variation', 'save_custom_product_fields' );

Chèn json vào để tạo schema product
Sau đó bạn vào Rankmath > Schema teamplate chọn Add new và chọn phần import bằng mã json.



Code Json mẫu cho bạn
{
"@context": "https://schema.org",
"@graph": {
"@type": "Product",
"name": "%seo_title%",
"description": "%seo_description%",
"sku": "%customfield(_msp)%",
"mpn": "buiduchanh",
"url": "%url%",
"image": "%post_thumbnail%",
"brand": {
"@type": "brand",
"name": "%customfield(_thuonghieu)%"
},
"review": [
{
"@type": "Review",
"@id": "%url%#comment",
"datePublished": "%date(d/m/Y H:i)%",
"description": "%customfield(_review_1)%",
"reviewRating": {
"@type": "Rating",
"ratingValue": "5"
},
"author": {
"@type": "Person",
"name": "%customfield(_tenkh_1)%"
}
}
],
"aggregateRating": {
"@type": "aggregateRating",
"ratingValue": "%customfield(_xephang)%",
"ratingCount": "%customfield(_danhgia)%"
},
"offers": {
"@type": "Offer",
"url": "%url%",
"priceCurrency": "VND",
"price": "%customfield(_giatien)%",
"priceValidUntil": "2025-12-31",
"itemCondition": "https://schema.org/UsedCondition",
"availability": "https://schema.org/InStock",
"shippingDetails": {
"@type": "OfferShippingDetails",
"shippingRate": {
"@type": "MonetaryAmount",
"value": "100000",
"currency": "VND"
},
"shippingDestination": {
"@type": "DefinedRegion",
"addressCountry": "VN"
},
"deliveryTime": {
"@type": "ShippingDeliveryTime",
"handlingTime": {
"@type": "QuantitativeValue",
"minValue": "0",
"maxValue": "10",
"unitCode": "DAY"
},
"transitTime": {
"@type": "QuantitativeValue",
"minValue": "1",
"maxValue": "5",
"unitCode": "DAY"
}
}
},
"hasMerchantReturnPolicy": {
"@type": "MerchantReturnPolicy",
"applicableCountry": "VN",
"returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
"merchantReturnDays": "60",
"returnMethod": "https://schema.org/ReturnByMail",
"returnFees": "https://schema.org/FreeReturn"
}
}
}
}
Lưu ý: Nhớ set thêm điều kiện hiển thị với toàn bộ sản phẩm nhé các bác. Và vào xóa phần schema mặc định của woocommerce đi nhé.
