WPML
الحالة
محلولة بواسطة المطور
أُبلغ عنها لـ
WPML Multilingual for BuddyPress and BuddyBoss 1.7.0
الإضافة/القالب ذو الصلة
BuddyBoss Platform
وسوم الموضوع
Compatibility

نظرة عامة على المشكلة

يوجد عدم اتساق في الفرز الأبجدي لحقول التصنيفات المترجمة في صفحات الملف الشخصي لـ BuddyBoss. فبينما تُفرز حقول اللغة الافتراضية بشكل صحيح، لا تحافظ الحقول المترجمة على هذا الترتيب.

حل بديل مؤقت

يرجى التأكد من أخذ نسخة احتياطية كاملة لموقعك قبل المتابعة.


  • افتح الملف …/wp-content/plugins/buddyboss-platform/bp-xprofile/classes/class-bp-xprofile-field-type-selectbox.php.

  • داخل BP_XProfile_Field_Type_Selectbox::edit_field_options_html()، استبدل السطر التالي:
    echo $html;

  • بـ:
    // 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;

جميع المشاكل المعروفة →