- Status
- Resolvido pelo autor
- Relatado para
- WPML Multilingual for BuddyPress and BuddyBoss 1.7.0
- Plugin/tema relacionado
- BuddyBoss Platform
- Tags de tópico
- Compatibility
Visão geral do problema
Há uma inconsistência na ordenação alfabética dos campos de taxonomia traduzidos nas páginas de perfil do BuddyBoss. Enquanto os campos do idioma padrão são ordenados corretamente, os campos traduzidos não mantêm essa ordem.
Solução alternativa
Por favor, certifique-se de ter um backup completo do seu site antes de prosseguir.
- Abra o arquivo …/wp-content/plugins/buddyboss-platform/bp-xprofile/classes/class-bp-xprofile-field-type-selectbox.php.
- Dentro de
BP_XProfile_Field_Type_Selectbox::edit_field_options_html(), substitua a seguinte linha:echo $html;
- Por:
// WPML Workaround for compsupp-7514 if ( class_exists('Sitepress') && apply_filters('wpml_default_language', NULL ) != apply_filters( 'wpml_current_language', NULL ) ) { // Match all options preg_match_all('/<option(.*?)>(.*?)<\/option>/s', $html, $matches, PREG_SET_ORDER); // Extract the options into an array $optionsArray = []; foreach ($matches as $match) { $optionsArray[] = [ 'full' => $match[0], 'attributes' => $match[1], 'text' => $match[2], ]; } // Sort the array by the 'text' element usort($optionsArray, function($a, $b) { return strcmp($a['text'], $b['text']); }); // Rebuild the HTML string $sortedHtml = ''; foreach ($optionsArray as $option) { $sortedHtml .= sprintf('<option%s>%s</option>', $option['attributes'], $option['text']); } $html = $sortedHtml; } echo $html;