WPML
add_filter( 'wpml_import_get_trid_from_imported_translations', integer $trid, object $firstTranslation )
Тип
filter
Категория
Вставка контента
Версия WPML
4.9.4

Описание

Этот фильтр полезен, когда Вы импортируете переводы без связанной с ними исходной записи (которая уже есть на сайте). Он позволяет стороннему коду получить ID записи перевода (trid), чтобы восстановить связь исходного контента с его импортированными переводами.

Варианты использования:

- Оригиналы есть на сайте (не импортированы), тогда как переводы импортируются из внешнего источника (электронной таблицы или внешнего инструмента).

- Оригиналы были импортированы ранее, и их метаданные импорта были очищены; переводы на новые языки добавляются позже.

- Любой рабочий процесс, в котором переводы должны быть связаны с оригиналами с помощью общего бизнес-ключа (SKU, слаг, внешний ID и т. д.).

Аргументы

$trid (int|null)

Значение trid, определённое средством импорта, или null, если ничего не найдено.

$firstTranslation (object)

Объект первой записи перевода со свойствами: element_id, translation_group, language_code, source_language_code.

Пример использования

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 );

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

Все хуки категории «Вставка контента» (10) →