Polylang vs Elementor FIX

This code will fix incorrect translation work for elementor archives via polylang

add_filter( 'elementor/theme/get_location_templates/template_id', 'geek_polylang_force_template_id', 99 );

function geek_polylang_force_template_id( $template_id ) {
    // Перевіряємо, чи активований Polylang і чи передано дійсний ID шаблону
    if ( function_exists( 'pll_get_post' ) && $template_id ) {
        
        // pll_get_post бере базовий ID (наприклад, 3585) 
        // і для англійської сторінки повертає його зв'язаний переклад (3587)
        $translated_id = pll_get_post( $template_id );
        
        // Якщо переклад знайдено, жорстко підміняємо ID для рендерингу
        if ( $translated_id && $translated_id > 0 ) {
            return $translated_id;
        }
    }
    
    return $template_id;
}

Did you find this article useful?