Use Any Font - Version 5.9

Version Description

  • Support for all themes that uses Redux and kirki framework. Full list here.
Download this release

Release Info

Developer dnesscarkey
Plugin Icon 128x128 Use Any Font
Version 5.9
Comparing to
See all releases

Code changes from version 5.8 to 5.9

includes/uaf_editor_setup.php CHANGED
@@ -2,7 +2,7 @@
2
  // DEFAULT WORDPRESS EDITOR
3
  function uaf_mce_before_init( $init_array ) {
4
  $theme_advanced_fonts = '';
5
- $fontsData = get_uploaded_font_list();
6
  if (!empty($fontsData)):
7
  foreach ($fontsData as $key=>$fontData):
8
  $theme_advanced_fonts .= ucfirst(str_replace('_',' ', $fontData['font_name'])) .'='.$fontData['font_name'].';';
@@ -22,7 +22,7 @@ function wp_editor_fontsize_filter( $options ) {
22
  // DIVI CUSTOMIZER AND BUILDER (Tested with 4.0.9 and 4.0.9)
23
  add_filter('et_websafe_fonts', 'uaf_send_fonts_divi_list',10,2);
24
  function uaf_send_fonts_divi_list($fonts){
25
- $fontsData = get_uploaded_font_list();
26
  $fonts_uaf = array();
27
  if (!empty($fontsData)):
28
  foreach ($fontsData as $key=>$fontData):
@@ -39,7 +39,7 @@ function uaf_send_fonts_divi_list($fonts){
39
  // SITE ORIGIN BUILDER
40
  add_filter('siteorigin_widgets_font_families', 'uaf_send_fonts_siteorigin_list',10,2);
41
  function uaf_send_fonts_siteorigin_list($fonts){
42
- $fontsData = get_uploaded_font_list();
43
  $fonts_uaf = array();
44
  if (!empty($fontsData)):
45
  foreach ($fontsData as $key=>$fontData):
@@ -51,12 +51,14 @@ function uaf_send_fonts_siteorigin_list($fonts){
51
 
52
  // REDUX Framework
53
  if (class_exists( 'Redux' ) ) {
54
- global $opt_name;
55
- add_filter('redux/'.$opt_name.'/field/typography/custom_fonts', 'uaf_send_fonts_redux_list' );
 
 
56
  }
57
 
58
  function uaf_send_fonts_redux_list( $custom_fonts ) {
59
- $fontsData = get_uploaded_font_list();
60
  $fonts_uaf = array('Use Any Fonts' => array());
61
  if (!empty($fontsData)):
62
  foreach ($fontsData as $key=>$fontData):
@@ -70,7 +72,7 @@ function uaf_send_fonts_redux_list( $custom_fonts ) {
70
  // X Theme
71
  add_filter('x_fonts_data', 'uaf_send_fonts_x_theme_list',10,2);
72
  function uaf_send_fonts_x_theme_list($fonts){
73
- $fontsData = get_uploaded_font_list();
74
  $fonts_uaf = array();
75
  if (!empty($fontsData)):
76
  foreach ($fontsData as $key=>$fontData):
@@ -87,7 +89,7 @@ function uaf_send_fonts_x_theme_list($fonts){
87
 
88
  // elementor
89
  function uaf_send_fonts_elementor_list( $controls_registry ) {
90
- $fontsData = get_uploaded_font_list();
91
  $fonts_uaf = array('Use Any Fonts' => array());
92
  if (!empty($fontsData)):
93
  foreach ($fontsData as $key=>$fontData):
@@ -105,7 +107,7 @@ add_action( 'elementor/controls/controls_registered', 'uaf_send_fonts_elementor_
105
  add_filter('fl_theme_system_fonts', 'uaf_send_fonts_beaver_builder_list',10,2);
106
  add_filter('fl_builder_font_families_system', 'uaf_send_fonts_beaver_builder_list',10,2);
107
  function uaf_send_fonts_beaver_builder_list($fonts){
108
- $fontsData = get_uploaded_font_list();
109
  $fonts_uaf = array();
110
  if (!empty($fontsData)):
111
  foreach ($fontsData as $key=>$fontData):
@@ -121,7 +123,7 @@ function uaf_send_fonts_beaver_builder_list($fonts){
121
  // Themify Builder
122
  add_filter('themify_get_web_safe_font_list', 'uaf_send_fonts_themify_builder_list',10,2);
123
  function uaf_send_fonts_themify_builder_list($fonts){
124
- $fontsData = get_uploaded_font_list();
125
  $fonts_uaf = array();
126
  if (!empty($fontsData)):
127
  foreach ($fontsData as $key=>$fontData):
@@ -136,20 +138,14 @@ function uaf_send_fonts_themify_builder_list($fonts){
136
 
137
  // GENERATE PRESS Tested With Version: 2.4.1
138
  add_filter( 'generate_typography_default_fonts', function( $fonts ) {
139
- $fontsData = get_uploaded_font_list();
140
- $fonts_uaf = array();
141
- if (!empty($fontsData)):
142
- foreach ($fontsData as $key=>$fontData):
143
- $fonts_uaf[] = $fontData['font_name'];
144
- endforeach;
145
- endif;
146
  return array_merge($fonts_uaf,$fonts);
147
  });
148
 
149
  // ASTRA THEME ver 2.2.1
150
  add_action( 'astra_customizer_font_list', 'uaf_astra_customizer_font_list');
151
  function uaf_astra_customizer_font_list( $value ) {
152
- $fontsData = get_uploaded_font_list();
153
  $fonts_uaf = array();
154
  if (!empty($fontsData)):
155
  echo '<optgroup label="Use Any Font">';
@@ -163,13 +159,33 @@ function uaf_astra_customizer_font_list( $value ) {
163
  // oceanwp Theme 1.7.4
164
  if ( !function_exists( 'ocean_add_custom_fonts' ) ) {
165
  function ocean_add_custom_fonts() {
166
- $fontsData = get_uploaded_font_list();
167
- $fonts_uaf = array();
168
- if (!empty($fontsData)):
169
- foreach ($fontsData as $key=>$fontData):
170
- $fonts_uaf[] = $fontData['font_name'];
171
- endforeach;
172
- endif;
173
  return $fonts_uaf;
174
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
175
  }
2
  // DEFAULT WORDPRESS EDITOR
3
  function uaf_mce_before_init( $init_array ) {
4
  $theme_advanced_fonts = '';
5
+ $fontsData = uaf_get_uploaded_font_data();
6
  if (!empty($fontsData)):
7
  foreach ($fontsData as $key=>$fontData):
8
  $theme_advanced_fonts .= ucfirst(str_replace('_',' ', $fontData['font_name'])) .'='.$fontData['font_name'].';';
22
  // DIVI CUSTOMIZER AND BUILDER (Tested with 4.0.9 and 4.0.9)
23
  add_filter('et_websafe_fonts', 'uaf_send_fonts_divi_list',10,2);
24
  function uaf_send_fonts_divi_list($fonts){
25
+ $fontsData = uaf_get_uploaded_font_data();
26
  $fonts_uaf = array();
27
  if (!empty($fontsData)):
28
  foreach ($fontsData as $key=>$fontData):
39
  // SITE ORIGIN BUILDER
40
  add_filter('siteorigin_widgets_font_families', 'uaf_send_fonts_siteorigin_list',10,2);
41
  function uaf_send_fonts_siteorigin_list($fonts){
42
+ $fontsData = uaf_get_uploaded_font_data();
43
  $fonts_uaf = array();
44
  if (!empty($fontsData)):
45
  foreach ($fontsData as $key=>$fontData):
51
 
52
  // REDUX Framework
53
  if (class_exists( 'Redux' ) ) {
54
+ $reduxUafObject = new Redux;
55
+ $reduxArgs = $reduxUafObject::$args;
56
+ $reduxOptName = array_key_first($reduxArgs);
57
+ add_filter('redux/'.$reduxOptName.'/field/typography/custom_fonts', 'uaf_send_fonts_redux_list' );
58
  }
59
 
60
  function uaf_send_fonts_redux_list( $custom_fonts ) {
61
+ $fontsData = uaf_get_uploaded_font_data();
62
  $fonts_uaf = array('Use Any Fonts' => array());
63
  if (!empty($fontsData)):
64
  foreach ($fontsData as $key=>$fontData):
72
  // X Theme
73
  add_filter('x_fonts_data', 'uaf_send_fonts_x_theme_list',10,2);
74
  function uaf_send_fonts_x_theme_list($fonts){
75
+ $fontsData = uaf_get_uploaded_font_data();
76
  $fonts_uaf = array();
77
  if (!empty($fontsData)):
78
  foreach ($fontsData as $key=>$fontData):
89
 
90
  // elementor
91
  function uaf_send_fonts_elementor_list( $controls_registry ) {
92
+ $fontsData = uaf_get_uploaded_font_data();
93
  $fonts_uaf = array('Use Any Fonts' => array());
94
  if (!empty($fontsData)):
95
  foreach ($fontsData as $key=>$fontData):
107
  add_filter('fl_theme_system_fonts', 'uaf_send_fonts_beaver_builder_list',10,2);
108
  add_filter('fl_builder_font_families_system', 'uaf_send_fonts_beaver_builder_list',10,2);
109
  function uaf_send_fonts_beaver_builder_list($fonts){
110
+ $fontsData = uaf_get_uploaded_font_data();
111
  $fonts_uaf = array();
112
  if (!empty($fontsData)):
113
  foreach ($fontsData as $key=>$fontData):
123
  // Themify Builder
124
  add_filter('themify_get_web_safe_font_list', 'uaf_send_fonts_themify_builder_list',10,2);
125
  function uaf_send_fonts_themify_builder_list($fonts){
126
+ $fontsData = uaf_get_uploaded_font_data();
127
  $fonts_uaf = array();
128
  if (!empty($fontsData)):
129
  foreach ($fontsData as $key=>$fontData):
138
 
139
  // GENERATE PRESS Tested With Version: 2.4.1
140
  add_filter( 'generate_typography_default_fonts', function( $fonts ) {
141
+ $fonts_uaf = uaf_get_font_families();
 
 
 
 
 
 
142
  return array_merge($fonts_uaf,$fonts);
143
  });
144
 
145
  // ASTRA THEME ver 2.2.1
146
  add_action( 'astra_customizer_font_list', 'uaf_astra_customizer_font_list');
147
  function uaf_astra_customizer_font_list( $value ) {
148
+ $fontsData = uaf_get_uploaded_font_data();
149
  $fonts_uaf = array();
150
  if (!empty($fontsData)):
151
  echo '<optgroup label="Use Any Font">';
159
  // oceanwp Theme 1.7.4
160
  if ( !function_exists( 'ocean_add_custom_fonts' ) ) {
161
  function ocean_add_custom_fonts() {
162
+ $fonts_uaf = uaf_get_font_families();
 
 
 
 
 
 
163
  return $fonts_uaf;
164
  }
165
+ }
166
+
167
+ // Oxygen Builder
168
+ add_action("ct_builder_ng_init", "uaf_oxygen_builder_font_list");
169
+ function uaf_oxygen_builder_font_list() {
170
+ $fonts_uaf = uaf_get_font_families();
171
+ $output = json_encode( $fonts_uaf );
172
+ $output = htmlspecialchars( $output, ENT_QUOTES );
173
+ echo "elegantCustomFonts=$output;";
174
+ }
175
+
176
+ // KIRKI CUSTOMIZER FRAMEWORK //Like FLATSOME THEME
177
+ add_filter( 'kirki/fonts/standard_fonts', 'uaf_kirki_custom_fonts', 20 );
178
+ function uaf_kirki_custom_fonts($standard_fonts) {
179
+ $fontsData = uaf_get_uploaded_font_data();
180
+ $fonts_uaf = array();
181
+ if (!empty($fontsData)):
182
+ foreach ($fontsData as $key=>$fontData):
183
+ $fonts_uaf[$fontData['font_name']] = array(
184
+ 'label' => $fontData['font_name'].' [Use Any Font]',
185
+ 'variants' => array('regular'),
186
+ 'stack' => $fontData['font_name']
187
+ );
188
+ endforeach;
189
+ endif;
190
+ return array_merge_recursive( $fonts_uaf, $standard_fonts );
191
  }
includes/uaf_font_upload_js.php CHANGED
@@ -46,7 +46,7 @@ if (isset($_POST['submit-uaf-font'])){
46
  <td>
47
  <input type="hidden" name="url" value="<?php echo home_url(); ?>" />
48
  <input type="hidden" name="api_key" value="<?php echo $GLOBALS['uaf_api_key']; ?>" />
49
- <input type="hidden" name="font_count" value="<?php echo count_uploaded_fonts(); ?>" />
50
  <input type="hidden" name="convert_response" id="convert_response" value="" />
51
  <input type="hidden" name="submit-uaf-font" id="submit-uaf-font" value="Upload" />
52
  <input type="submit" name="submit-uaf-font" id="submit-uaf-font" class="button-primary" value="Upload" />
46
  <td>
47
  <input type="hidden" name="url" value="<?php echo home_url(); ?>" />
48
  <input type="hidden" name="api_key" value="<?php echo $GLOBALS['uaf_api_key']; ?>" />
49
+ <input type="hidden" name="font_count" value="<?php echo uaf_count_uploaded_fonts(); ?>" />
50
  <input type="hidden" name="convert_response" id="convert_response" value="" />
51
  <input type="hidden" name="submit-uaf-font" id="submit-uaf-font" value="Upload" />
52
  <input type="submit" name="submit-uaf-font" id="submit-uaf-font" class="button-primary" value="Upload" />
includes/uaf_font_upload_php.php CHANGED
@@ -49,7 +49,7 @@ if (isset($_POST['submit-uaf-font'])){
49
 
50
  <input type="hidden" name="url" value="<?php echo home_url(); ?>" />
51
  <input type="hidden" name="api_key" value="<?php echo $uaf_api_key; ?>" />
52
- <input type="hidden" name="font_count" value="<?php echo count_uploaded_fonts(); ?>" />
53
  <input type="submit" name="submit-uaf-font" class="button-primary" value="Upload" />
54
 
55
 
49
 
50
  <input type="hidden" name="url" value="<?php echo home_url(); ?>" />
51
  <input type="hidden" name="api_key" value="<?php echo $uaf_api_key; ?>" />
52
+ <input type="hidden" name="font_count" value="<?php echo uaf_count_uploaded_fonts(); ?>" />
53
  <input type="submit" name="submit-uaf-font" class="button-primary" value="Upload" />
54
 
55
 
includes/uaf_functions.php CHANGED
@@ -53,7 +53,7 @@ function uaf_write_css(){
53
  }
54
 
55
  ob_start();
56
- $fontsData = get_uploaded_font_list();
57
  if (!empty($fontsData)):
58
  foreach ($fontsData as $key=>$fontData): ?>
59
  @font-face {
@@ -87,7 +87,7 @@ function uaf_write_css(){
87
  ob_end_clean();
88
 
89
  ob_start();
90
- $fontsData = get_uploaded_font_list();
91
  if (!empty($fontsData)):
92
  foreach ($fontsData as $key=>$fontData): ?>
93
  @font-face {
@@ -117,8 +117,8 @@ function uaf_write_css(){
117
 
118
  function uaf_update_check() { // MUST CHANGE WITH EVERY VERSION
119
  $uaf_version_check = get_option('uaf_current_version');
120
- if ($uaf_version_check != '5.8'):
121
- update_option('uaf_current_version', '5.8');
122
  if ($uaf_version_check < 4.0):
123
  uaf_create_folder();
124
  uaf_move_file_to_newPath();
@@ -270,7 +270,7 @@ function uaf_save_font_files($font_name, $convertResponse){
270
  endif;
271
  endforeach;
272
  else:
273
- save_font_entry_to_db($font_name, $fontNameToStore);
274
  $fontUploadFinalResponse['status'] = 'success';
275
  $fontUploadFinalResponse['body'] = 'Font Uploaded';
276
  endif;
@@ -282,7 +282,7 @@ function uaf_save_font_files($font_name, $convertResponse){
282
  return $fontUploadFinalResponse;
283
  }
284
 
285
- function save_font_entry_to_db($font_name, $font_path){
286
  $fontsRawData = get_option('uaf_font_data');
287
  $fontsData = json_decode($fontsRawData, true);
288
  if (empty($fontsData)):
@@ -295,12 +295,23 @@ function save_font_entry_to_db($font_name, $font_path){
295
  uaf_write_css();
296
  }
297
 
298
- function get_uploaded_font_list(){
299
  $fontsRawData = get_option('uaf_font_data');
300
  return json_decode($fontsRawData, true);
301
  }
302
 
303
- function count_uploaded_fonts(){
 
 
 
 
 
 
 
 
 
 
 
304
  $fontsRawData = get_option('uaf_font_data');
305
  $fontsData = json_decode($fontsRawData, true);
306
  return count($fontsData);
@@ -348,7 +359,7 @@ function uaf_key_deactivate(){
348
  function uaf_delete_font(){
349
  $uaf_paths = uaf_path_details();
350
 
351
- $fontsData = get_uploaded_font_list();
352
  $key_to_delete = $_GET['delete_font_key'];
353
  @unlink(realpath($uaf_paths['dir'].$fontsData[$key_to_delete]['font_path'].'.woff2'));
354
  @unlink(realpath($uaf_paths['dir'].$fontsData[$key_to_delete]['font_path'].'.woff'));
@@ -471,4 +482,13 @@ function uaf_save_settings(){
471
  $GLOBALS['uaf_enable_multi_lang_support'] = $uaf_enable_multi_lang_support;
472
  $GLOBALS['uaf_font_display_property'] = $uaf_font_display_property;
473
  uaf_write_css(); // Need to rewrite css for uaf_use_relative_font_path setting change
 
 
 
 
 
 
 
 
 
474
  }
53
  }
54
 
55
  ob_start();
56
+ $fontsData = uaf_get_uploaded_font_data();
57
  if (!empty($fontsData)):
58
  foreach ($fontsData as $key=>$fontData): ?>
59
  @font-face {
87
  ob_end_clean();
88
 
89
  ob_start();
90
+ $fontsData = uaf_get_uploaded_font_data();
91
  if (!empty($fontsData)):
92
  foreach ($fontsData as $key=>$fontData): ?>
93
  @font-face {
117
 
118
  function uaf_update_check() { // MUST CHANGE WITH EVERY VERSION
119
  $uaf_version_check = get_option('uaf_current_version');
120
+ if ($uaf_version_check != '5.9'):
121
+ update_option('uaf_current_version', '5.9');
122
  if ($uaf_version_check < 4.0):
123
  uaf_create_folder();
124
  uaf_move_file_to_newPath();
270
  endif;
271
  endforeach;
272
  else:
273
+ uaf_save_font_entry_to_db($font_name, $fontNameToStore);
274
  $fontUploadFinalResponse['status'] = 'success';
275
  $fontUploadFinalResponse['body'] = 'Font Uploaded';
276
  endif;
282
  return $fontUploadFinalResponse;
283
  }
284
 
285
+ function uaf_save_font_entry_to_db($font_name, $font_path){
286
  $fontsRawData = get_option('uaf_font_data');
287
  $fontsData = json_decode($fontsRawData, true);
288
  if (empty($fontsData)):
295
  uaf_write_css();
296
  }
297
 
298
+ function uaf_get_uploaded_font_data(){
299
  $fontsRawData = get_option('uaf_font_data');
300
  return json_decode($fontsRawData, true);
301
  }
302
 
303
+ function uaf_get_font_families(){
304
+ $fontsData = uaf_get_uploaded_font_data();
305
+ $fonts_uaf = array();
306
+ if (!empty($fontsData)):
307
+ foreach ($fontsData as $key=>$fontData):
308
+ $fonts_uaf[] = $fontData['font_name'];
309
+ endforeach;
310
+ endif;
311
+ return $fonts_uaf;
312
+ }
313
+
314
+ function uaf_count_uploaded_fonts(){
315
  $fontsRawData = get_option('uaf_font_data');
316
  $fontsData = json_decode($fontsRawData, true);
317
  return count($fontsData);
359
  function uaf_delete_font(){
360
  $uaf_paths = uaf_path_details();
361
 
362
+ $fontsData = uaf_get_uploaded_font_data();
363
  $key_to_delete = $_GET['delete_font_key'];
364
  @unlink(realpath($uaf_paths['dir'].$fontsData[$key_to_delete]['font_path'].'.woff2'));
365
  @unlink(realpath($uaf_paths['dir'].$fontsData[$key_to_delete]['font_path'].'.woff'));
482
  $GLOBALS['uaf_enable_multi_lang_support'] = $uaf_enable_multi_lang_support;
483
  $GLOBALS['uaf_font_display_property'] = $uaf_font_display_property;
484
  uaf_write_css(); // Need to rewrite css for uaf_use_relative_font_path setting change
485
+ }
486
+
487
+ if (!function_exists('array_key_first')) { // FOR OLDER VERSION PHP SUPPORT
488
+ function array_key_first(array $arr) {
489
+ foreach($arr as $key => $unused) {
490
+ return $key;
491
+ }
492
+ return NULL;
493
+ }
494
  }
includes/uaf_header.php CHANGED
@@ -38,7 +38,7 @@ endif;
38
  <?php if (empty($GLOBALS['uaf_api_key'])): ?>
39
  <input name="uaf_api_key" id="uaf_api_key" type="text" style="width:350px; margin-left:50px;" />
40
  <input type="submit" name="ucf_api_key_submit" class="button-primary" value="Verify" style="padding:2px;" />
41
- <input type="button" name="uaf_api_key_generate" id="uaf_api_key_generate" class="button-primary" value="Generate Test API Key" style="padding:2px;" onclick="uaf_lite_api_key_generate();" />
42
  <br/> <br/>
43
  Use Any Font need API key to upload the font. You can get the premium key from <a href="https://dineshkarki.com.np/use-any-font/api-key" target="_blank">here</a>. You can also generate Lite / Test API key from button above. <strong>Note : </strong> Lite / Test API only allow single font conversion.
44
  <br/>
38
  <?php if (empty($GLOBALS['uaf_api_key'])): ?>
39
  <input name="uaf_api_key" id="uaf_api_key" type="text" style="width:350px; margin-left:50px;" />
40
  <input type="submit" name="ucf_api_key_submit" class="button-primary" value="Verify" style="padding:2px;" />
41
+ <input type="button" name="uaf_api_key_generate" id="uaf_api_key_generate" class="button-primary" value="Generate Free Test API Key" style="padding:2px;" onclick="uaf_lite_api_key_generate();" />
42
  <br/> <br/>
43
  Use Any Font need API key to upload the font. You can get the premium key from <a href="https://dineshkarki.com.np/use-any-font/api-key" target="_blank">here</a>. You can also generate Lite / Test API key from button above. <strong>Note : </strong> Lite / Test API only allow single font conversion.
44
  <br/>
includes/uaf_uploaded_font_list.php CHANGED
@@ -1,4 +1,4 @@
1
- <?php $fontsData = get_uploaded_font_list(); ?>
2
  <table cellspacing="0" class="wp-list-table widefat fixed bookmarks">
3
  <thead>
4
  <tr>
1
+ <?php $fontsData = uaf_get_uploaded_font_data(); ?>
2
  <table cellspacing="0" class="wp-list-table widefat fixed bookmarks">
3
  <thead>
4
  <tr>
readme.txt CHANGED
@@ -1,35 +1,36 @@
1
- === Use Any Font [ Freemium ] ===
2
  Contributors: dnesscarkey
3
  Tags: custom fonts, font embed, font uploader, any font, embed any font, font uploader, css3 font embed, @font-face embed, font conversion, webfont, ttf, opentype, woff2
4
  Requires at least: 3.0
5
  Tested up to: 5.4
6
- Stable tag: 5.6
7
 
8
- Embed any custom font in your website. #1 Rated custom fonts plugin by WPMUDev.org.
9
 
10
  == Description ==
11
  Use any custom fonts you wish and give your site a elegant look. No css knowledge required.
12
 
13
  Click <a href="http://dineshkarki.com.np/use-any-font/demo" target="_blank">here</a> for Use Any Font working demo.
14
 
15
- Use Any Font gives you freedom to use custom fonts in your website. It is not like other font embed services which gives you countable number of fonts to select from neither the one that stores your font in remote server. You can use any custom font if you have its font format (ttf,otf,woff) without being dependent to other's server uptime.
16
 
17
  <strong>Features</strong>
18
 
19
  * Quick and easy to setup. No css or any rocket science knowledge needed.
20
  * Support all major browsers including IE, Firefox, Chrome, Safari, IOS, Andriod, Opera and more.
21
  * Font conversion within the plugin interface font uploader and quick font assign interface. You can select pre defined html tags or assign it to custom css.
22
- * Use uploaded font directly from Wordpress Editor,
23
  <a href="http://www.elegantthemes.com/affiliates/idevaffiliate.php?id=39880" target="_blank">Divi Builder</a>,
24
  <a href="https://wordpress.org/plugins/siteorigin-panels/" target="_blank">Site Origin Page Buider</a>,
25
  <a href="https://wordpress.org/plugins/elementor/" target="_blank">Elementor Page Builder</a>,
26
  <a href="https://www.wpbeaverbuilder.com/?fla=2054&campaign=use-any-font" target="_blank">Beaver Builder</a>,
27
  <a href="https://themify.me/member/aff/go/dnesscarkey/?cr=aHR0cHM6Ly90aGVtaWZ5Lm1lL2J1aWxkZXI=" target="_blank">Themify Builder</a>,
 
28
  <a href="https://wordpress.org/themes/generatepress/" target="_blank">Generate Press</a>,
29
  <a href="https://wordpress.org/themes/astra/" target="_blank">Astra Theme</a>,
30
  <a href="https://wordpress.org/themes/oceanwp/" target="_blank">Ocean WP Theme</a>,
31
  and any visual builder using the class.
32
- * Custom fonts uploaded can be directly used from Theme options panel for major themeforest themes like <a href="https://goo.gl/Oy6tvt" target="_blank">Avada, X Theme, Salient, Oshine, KLEO, ShopKeeper, SimpleMag, Porto and many more (540+). Check out full list here.</a>
33
  * Supports font format including ttf, otf, woff. The required fonts are converted automatically.
34
  * Accepts custom font file upto 25 MB.
35
  * Embed fonts using @font-face css. SEO friendly and quick loading due to woff2 compression.
@@ -53,6 +54,16 @@ Note : We don't store your fonts in our server neither any of your information e
53
 
54
  We don't respond to support tickets created here. Please visit our <a href="http://dineshkarki.com.np/forums/forum/use-any-fonts" target="_blank">support forum</a> for your issues.
55
 
 
 
 
 
 
 
 
 
 
 
56
  == Installation ==
57
 
58
  1. Upload the plugin use-any-font files to the `/wp-content/plugins/` directory
@@ -93,7 +104,7 @@ You can check video for more details.
93
 
94
  = Does it works with any theme ? =
95
 
96
- Its built-in Font Upload and Font assign section allows you to assign custom fonts to any theme. However, for popular themes like <a href="https://goo.gl/Oy6tvt" target="_blank">Avada, X Theme, Salient, Oshine, KLEO, ShopKeeper, SimpleMag, Porto and many more (540+). Check out full list here.</a>, we have added extra features that allows you to assign the custom font to your theme using the theme options panel.
97
 
98
  = Can I assign font based on language ? =
99
  Ya, Our plugin allows you to assign font based on language. It currently supports WPML and Ploylang. If you are using some others multi lingual plugin, please do contact us and we will try to integrate with our plugin.
@@ -112,6 +123,14 @@ No, our server is needed during font conversion only. After that all fonts are s
112
  <a href="http://dineshkarki.com.np/forums/forum/use-any-fonts" target="_blank">Support Forum</a> to quickly resolve your issues.
113
  <a href="http://dineshkarki.com.np/rectify-my-problem" target="_blank">Rectify My Problem</a> for personal assitance.
114
 
 
 
 
 
 
 
 
 
115
 
116
  == Screenshots ==
117
 
@@ -124,6 +143,9 @@ No, our server is needed during font conversion only. After that all fonts are s
124
 
125
  == Changelog ==
126
 
 
 
 
127
  = 5.6 =
128
  * Added support for Generate Press, Astra and Ocean WP Theme.
129
  * Added setting For Font Display (swap, fallback, block)
1
+ === Use Any Font | Custom Font Plugin ===
2
  Contributors: dnesscarkey
3
  Tags: custom fonts, font embed, font uploader, any font, embed any font, font uploader, css3 font embed, @font-face embed, font conversion, webfont, ttf, opentype, woff2
4
  Requires at least: 3.0
5
  Tested up to: 5.4
6
+ Stable tag: 5.9
7
 
8
+ Embed any custom font in your website. #1 Rated custom fonts plugin by WPMUDev.org with auto converted woff2 compression for faster font loading.
9
 
10
  == Description ==
11
  Use any custom fonts you wish and give your site a elegant look. No css knowledge required.
12
 
13
  Click <a href="http://dineshkarki.com.np/use-any-font/demo" target="_blank">here</a> for Use Any Font working demo.
14
 
15
+ Use Any Font gives you freedom to use custom fonts in your website. It is not like other font embed services which gives you countable number of fonts to select from neither the one that stores your font in remote server. You can use any custom fonts if you have its font format (ttf,otf,woff) without being dependent to other's server uptime. You can just upload one format and the rest needed formats to work in all browsers are automatically converted even in woff2 compressed format for latest browsers and faster load time.
16
 
17
  <strong>Features</strong>
18
 
19
  * Quick and easy to setup. No css or any rocket science knowledge needed.
20
  * Support all major browsers including IE, Firefox, Chrome, Safari, IOS, Andriod, Opera and more.
21
  * Font conversion within the plugin interface font uploader and quick font assign interface. You can select pre defined html tags or assign it to custom css.
22
+ * Use uploaded custom fonts directly from Wordpress Editor,
23
  <a href="http://www.elegantthemes.com/affiliates/idevaffiliate.php?id=39880" target="_blank">Divi Builder</a>,
24
  <a href="https://wordpress.org/plugins/siteorigin-panels/" target="_blank">Site Origin Page Buider</a>,
25
  <a href="https://wordpress.org/plugins/elementor/" target="_blank">Elementor Page Builder</a>,
26
  <a href="https://www.wpbeaverbuilder.com/?fla=2054&campaign=use-any-font" target="_blank">Beaver Builder</a>,
27
  <a href="https://themify.me/member/aff/go/dnesscarkey/?cr=aHR0cHM6Ly90aGVtaWZ5Lm1lL2J1aWxkZXI=" target="_blank">Themify Builder</a>,
28
+ <a href="https://oxygenbuilder.com/" target="_blank">Oxygen Builder</a>,
29
  <a href="https://wordpress.org/themes/generatepress/" target="_blank">Generate Press</a>,
30
  <a href="https://wordpress.org/themes/astra/" target="_blank">Astra Theme</a>,
31
  <a href="https://wordpress.org/themes/oceanwp/" target="_blank">Ocean WP Theme</a>,
32
  and any visual builder using the class.
33
+ * Custom fonts uploaded can be directly used from Theme options panel for major themeforest themes like <a href="https://bit.ly/3auJKzt" target="_blank">Avada, X Theme, Flatsome, Salient, Porto, Shopkeeper, Oshine, WPLMS Learning Management System Theme, KLEO, WoodMart, ListingPro, SimpleMag, ROSA 1, 907, Voice, Grand Restaurant, LeadEngine, Service Finder, MagPlus, Hostiko, Adifier, Puca, GreenMart, Reco, VidoRev, Halena and many more known themes. (1000+). Check out full list here.</a>
34
  * Supports font format including ttf, otf, woff. The required fonts are converted automatically.
35
  * Accepts custom font file upto 25 MB.
36
  * Embed fonts using @font-face css. SEO friendly and quick loading due to woff2 compression.
54
 
55
  We don't respond to support tickets created here. Please visit our <a href="http://dineshkarki.com.np/forums/forum/use-any-fonts" target="_blank">support forum</a> for your issues.
56
 
57
+ <strong>Integration for Themes / Plugin Developers</strong>
58
+
59
+ You can use <strong>uaf_get_font_families();</strong> function to get the list of custom fonts uploaded with Use Any Font. You can add it in your font family select box or list.
60
+
61
+ <em>if (function_exists('uaf_get_font_families')){
62
+ $uaf_font_families = uaf_get_font_families(); // Return Array
63
+ }</em>
64
+
65
+ Please do write us after integration and we will add it in our supported list.
66
+
67
  == Installation ==
68
 
69
  1. Upload the plugin use-any-font files to the `/wp-content/plugins/` directory
104
 
105
  = Does it works with any theme ? =
106
 
107
+ Its built-in Font Upload and Font assign section allows you to assign custom fonts to any theme. However, for popular themes like <a href="https://bit.ly/3auJKzt" target="_blank">Avada, X Theme, Flatsome, Salient, Porto, Shopkeeper, Oshine, WPLMS Learning Management System Theme, KLEO, WoodMart, ListingPro, SimpleMag, ROSA 1, 907, Voice, Grand Restaurant, LeadEngine, Service Finder, MagPlus, Hostiko, Adifier, Puca, GreenMart, Reco, VidoRev, Halena and many more known themes. (1000+). Check out full list here.</a>, we have added extra features that allows you to assign the custom font to your theme using the theme options panel.
108
 
109
  = Can I assign font based on language ? =
110
  Ya, Our plugin allows you to assign font based on language. It currently supports WPML and Ploylang. If you are using some others multi lingual plugin, please do contact us and we will try to integrate with our plugin.
123
  <a href="http://dineshkarki.com.np/forums/forum/use-any-fonts" target="_blank">Support Forum</a> to quickly resolve your issues.
124
  <a href="http://dineshkarki.com.np/rectify-my-problem" target="_blank">Rectify My Problem</a> for personal assitance.
125
 
126
+ = How can theme / plugin developer integrate Use Any Font ? =
127
+ You can use <strong>uaf_get_font_families();</strong> function to get the list of custom fonts uploaded with Use Any Font. You can add it in your font family select box or list.
128
+
129
+ <em>if (function_exists('uaf_get_font_families')){
130
+ $uaf_font_families = uaf_get_font_families(); // Return Array
131
+ }</em>
132
+
133
+ Please do write us after integration and we will add it in our supported list.
134
 
135
  == Screenshots ==
136
 
143
 
144
  == Changelog ==
145
 
146
+ = 5.9 =
147
+ * Support for all themes that uses Redux and kirki framework. Full list <a href="https://bit.ly/3auJKzt" target="_blank">here</a>.
148
+
149
  = 5.6 =
150
  * Added support for Generate Press, Astra and Ocean WP Theme.
151
  * Added setting For Font Display (swap, fallback, block)
use-any-font.php CHANGED
@@ -4,7 +4,7 @@ Plugin Name: Use Any Font
4
  Plugin URI: http://dineshkarki.com.np/use-any-font
5
  Description: Embed any font in your website
6
  Author: Dinesh Karki
7
- Version: 5.8
8
  Author URI: http://www.dineshkarki.com.np
9
  */
10
 
4
  Plugin URI: http://dineshkarki.com.np/use-any-font
5
  Description: Embed any font in your website
6
  Author: Dinesh Karki
7
+ Version: 5.9
8
  Author URI: http://www.dineshkarki.com.np
9
  */
10