Open
Reported for: BuddyPress Multilingual 1.7.0
Overview of the issue
There's an inconsistency in the alphabetical sorting of translated taxonomy fields on the BuddyBoss profile pages. While the default language fields are sorted correctly, the translated fields do not maintain this order.
Workaround
Please, make sure of having a full site backup of your site before proceeding.
- Open …/wp-content/plugins/buddyboss-platform/bp-xprofile/classes/class-bp-xprofile-field-type-selectbox.php file.
- Inside
BP_XProfile_Field_Type_Selectbox::edit_field_options_html()
, replace the following line:echo $html;
- With:
// 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;