WPML

סקירת התקלה

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

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

עדיין נתקל בבעיה זו?

אם העדכון אינו פותר זאת, פתח פנייה לתמיכה ואנו נבדוק זאת יחד איתך.