Waiting for author
Overview of the issue
When using the Image Slider widget from the ThemeRex Addons plugin in Elementor, translated images from WPML Media Translation do not display on translated pages. Instead, the same image from the default language is shown across all languages.
Workaround
Please, make sure of having a full site backup of your site before proceeding.
- Open the Open your theme’s functions.php file and add the following code
123456789101112131415161718192021222324252627
// WPML Workaround for compsupp-7754
add_filter(
'elementor/frontend/before_render'
,
'wpml_compsupp7754_trx_widget_slider_widget'
);
function
wpml_compsupp7754_trx_widget_slider_widget(
$element
) {
if
(
'trx_widget_slider'
!==
$element
->get_name() ) {
return
;
}
$settings
=
$element
->get_settings();
if
( isset(
$settings
[
'slides'
] ) &&
is_array
(
$settings
[
'slides'
] ) ) {
foreach
(
$settings
[
'slides'
]
as
$key
=>
$value
) {
if
(
is_array
(
$value
) && isset(
$value
[
'image'
][
'id'
] ) ) {
$post_type
= get_post_type(
$value
[
'image'
][
'id'
] );
if
(
$post_type
) {
$translated_id
= apply_filters(
'wpml_object_id'
,
$value
[
'image'
][
'id'
],
$post_type
, true );
$translated_url
= wp_get_attachment_url(
$translated_id
);
$settings
[
'slides'
][
$key
][
'image'
][
'id'
] =
$translated_id
;
$settings
[
'slides'
][
$key
][
'image'
][
'url'
] =
$translated_url
;
}
}
}
$element
->set_settings(
'slides'
,
$settings
[
'slides'
] );
}
}