- Статус
- Решено
- Связанный плагин/тема
- JetEngine
- Теги темы
- Compatibility
Обзор проблемы
Если Вы используете функцию Profile Builder плагина JetEngine, Вы столкнетесь с тем, что параметры не применяются на дополнительном языке.
Обходное решение
Пожалуйста, перед продолжением убедитесь, что создана полная резервная копия Вашего сайта.
Часть 1
- Откройте файл …/wp-content/plugins/jet-engine/includes/modules/profile-builder/inc/rewrite.php.
- Найдите строку 57.
- Замените:
$pages = Module::instance()->settings->get_pages();
- На:
$pages = Module::instance()->settings->get_pages(); // WPML Workaround for compsupp-7264 - PART 1 if ( class_exists('Sitepress') && isset( $pages['account_page'] ) ) { // Get WPML Active Languages $wpml_languages = apply_filters( 'wpml_active_languages', NULL, 'orderby=id&order=desc' ); // Let's add a new item in $pages array for each language, so it can also create rewrite rules for it foreach( $wpml_languages as $language ) { if ( $language['language_code'] != apply_filters('wpml_default_language', NULL ) ) { $account_page_id = $pages['account_page']; // The new item should have the translated account page ID $translated_account_page_id = apply_filters( 'wpml_object_id', $account_page_id , get_post_type($account_page_id) , TRUE, $language['language_code'] ); $pages['account_page_'.$language['language_code']] = $translated_account_page_id; } } }
Часть 2
- Откройте файл …/wp-content/plugins/jet-engine/includes/modules/profile-builder/inc/query.php.
- Найдите строку 53.
- Замените:
$user = get_query_var( Module::instance()->rewrite->user_var );
- На:
$user = get_query_var( Module::instance()->rewrite->user_var ); // WPML Workaround for compsupp-7264 - PART 2 if ( class_exists('Sitepress') ) { // Let's create a with the query_var of the account page in each language $account_pages = []; $wpml_languages = apply_filters( 'wpml_active_languages', NULL, 'orderby=id&order=desc' ); foreach( $wpml_languages as $language ) { if ( $language['language_code'] != apply_filters('wpml_default_language', NULL ) ) { $account_pages[] = 'account_page_'.$language['language_code']; } } // If the current query_var match with our array items, let's "fix" the $page variable so the switch works correctly if ( in_array( $page, $account_pages) ) { $page = 'account_page'; } } - Перейдите на страницу Настройки > Постоянные ссылки и повторно сохраните постоянные ссылки