add_filter( 'wpml_import_get_trid_from_imported_translations', integer $trid, object $firstTranslation )
- Loại
- filter
- Danh mục
- Chèn nội dung
- Phiên bản WPML
- 4.9.4
Miêu tả
Bộ lọc này rất hữu ích khi bạn nhập các bản dịch mà không kèm theo bài viết nguồn liên kết (đã có sẵn trên trang web). Nó cho phép mã của bên thứ ba truy xuất ID bản ghi bản dịch (trid) để kết nối lại nội dung gốc với các bản dịch đã nhập của nó.
Các trường hợp sử dụng:
- Bản gốc tồn tại trên trang web (không được nhập), trong khi các bản dịch được nhập từ một nguồn bên ngoài (bảng tính hoặc công cụ bên ngoài).
- Bản gốc đã được nhập trước đó và siêu dữ liệu nhập của chúng đã được dọn dẹp; các bản dịch ngôn ngữ mới được thêm vào sau.
- Bất kỳ quy trình làm việc nào mà các bản dịch phải được kết nối với bản gốc thông qua một khóa nghiệp vụ chung (SKU, slug, ID bên ngoài, v.v.).
Đối số
$trid (int|null)trid được xác định bởi công cụ nhập, hoặc null nếu không tìm thấy.
$firstTranslation (object)
Đối tượng bài viết bản dịch đầu tiên, với các thuộc tính: element_id, translation_group, language_code, source_language_code.
Ví dụ sử dụng
add_filter( 'wpml_import_get_trid_from_imported_translations',
function( $trid, $firstTranslation ) {
if ( $trid ) {
return $trid;
}
$sku = get_post_meta( $firstTranslation->element_id, '_sku', true );
if ( ! $sku ) {
return $trid;
}
// Find the original post with the same SKU and return its trid.
$original_id = wc_get_product_id_by_sku( $sku );
if ( ! $original_id ) {
return $trid;
}
$details = apply_filters( 'wpml_element_language_details', null, [
'element_id' => $original_id,
'element_type' => 'post_product',
] );
return $details ? $details->trid : $trid;
}, 10, 2 );
Các hook liên quan
wpml_set_element_language_details, wpml_make_post_duplicates, wpml_admin_make_post_duplicates, wpml_copy_post_to_language, wpml_delete_package, wpml_register_string, wpml_register_single_string, wpml_show_package_language_ui, wpml_delete_package_action