WPML
الحالة
محلولة
الإضافة/القالب ذو الصلة
JetEngine
وسوم الموضوع
Compatibility

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

إذا كنت تستخدم ميزة منشئ الملف الشخصي من إضافة 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';
    	}
    }
  • اذهب إلى صفحة إعدادات > الروابط الدائمة وأعد حفظ الروابط الدائمة

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