get( 'languages' ); $create = function ( $language ) { $id = Languages::add( $language['code'], $language['name'], $language['locale'], 0, 0, (int) $language['encode_url'], $language['hreflang'], Obj::prop('country', $language) ); if ( $id ) { $flag = Obj::prop( 'flag', $language ); if ( $flag ) { Languages::setFlag( $language['code'], Obj::propOr( '', 'name', $flag ), (bool) Obj::propOr( false, 'fromTemplate', $flag ) ); } } $this->saveMapping( $language, $id ); return [ $language['code'], $id ]; }; $result = Either::right( Fns::map( $create, $languages ) ); icl_cache_clear( false ); return $result; } /** * @param string $language * @param int $id */ private function saveMapping( $language, $id ) { $languageMapping = Obj::prop( 'mapping', $language ); if ( $id && $languageMapping ) { $languageMapping = Str::split( '_', $languageMapping ); Option::addLanguageMapping( new LanguageMapping( $language['code'], $language['name'], $languageMapping[0], Obj::prop( 1, $languageMapping ) ) ); } } }