WPML
סטטוס
נפתר
תוסף/ערכת עיצוב קשורים
JetEngine
תגיות נושא
Compatibility

סקירה כללית של התקלה

אם אתה משתמש בתכונה Profile Builder של התוסף 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';
    	}
    }
  • עבור אל העמוד הגדרות > קישורים קבועים ושמור מחדש את הקישורים הקבועים

כל התקלות הידועות →