WPML
Estado
Resuelto por el autor
Notificado para
WPML Multilingual for BuddyPress and BuddyBoss 1.7.0
Plugin/tema relacionado
BuddyBoss Platform
Etiquetas de temática
Compatibility

Resumen del problema

Hay una inconsistencia en el orden alfabético de los campos de taxonomía traducidos en las páginas de perfil de BuddyBoss. Mientras que los campos del idioma predeterminado se ordenan correctamente, los campos traducidos no mantienen este orden.

Solución alternativa

Por favor, asegúrese de tener una copia de seguridad completa de su sitio antes de continuar.


  • Abra el archivo …/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(), reemplace la siguiente línea:
    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;

Todos los problemas conocidos →