/**
* Translating IDs stored as field values upon WPML post/page duplication.
*
* @param $value
* @param $target_language
* @param $meta_data
* @return mixed
*/
public function wpml_translate_values($value, $target_language, $meta_data)
{
$fields = RWMB_Core::get_fields();
foreach ($fields as $field) {
if (in_array($field['type'], array('post', 'taxonomy_advanced')) && $field['id'] === $meta_data['key']) {
// Post type needed for WPML filter differs between fields
$post_type = $field['type'] === 'taxonomy_advanced' ? $field['taxonomy'] : $field['post_type'];
// Translating values, whether are stored as comma separated strings or not.
if (strpos($value, ',') === false) {
$value = apply_filters('wpml_object_id', $value, $post_type, true, $target_language);
} else {
// Dealing with IDs stored as comma separated strings
$translated_values = array();
$values = explode(',', $value);
foreach ($values as $v) {
$translated_values[] = apply_filters('wpml_object_id', $v, $post_type, true, $target_language);
}
$value = implode(',', $translated_values);
}
}
}
return $value;
}