'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36'); $response = wp_remote_get($url, $useragent); $response_code = wp_remote_retrieve_response_code($response); if ( is_wp_error( $response ) || $response_code !== 200 ) { return false; } $remote_file = wp_remote_retrieve_body($response); // Collect google fonts urls preg_match_all( '/url\(.*?\)/i', $remote_file, $font_links ); if(!isset( $font_links[0] ) || count( $font_links[0] ) < 1 ) { return false; } foreach( $font_links[0] as $key => $_fontlink ){ $download_url = str_ireplace( array('url(',')'), '', $_fontlink ); if(empty($download_url)){ continue; } $parse_url = parse_url($download_url); $font_name = basename($parse_url['path']); $local_file = $font_dir.'/fonts/'.$font_name; $_local_file = './fonts/'.$font_name; if( empty( $font_name ) || strpos($font_name, '.woff2') === false ){ continue; } // Download font files if(!file_exists( $local_file ) ){ $tmp_file = download_url( $download_url ); if(is_wp_error( $tmp_file )){ continue; } $wp_filesystem->copy( $tmp_file, $local_file ); $wp_filesystem->delete( $tmp_file ); } // Update font links $remote_file = str_replace( $download_url, $_local_file, $remote_file ); } // Save local stylesheet $wp_filesystem->put_contents( $local_path, $remote_file ); return $local_path; }