Advertisement
Guest User

Enfold Font Uploader

a guest
Jan 15th, 2024
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.18 KB | Source Code | 0 0
  1. add_action('acf/save_post', 'res_add_font_to_avia', 5);
  2. function res_add_font_to_avia($post_id)
  3. {
  4.     if (isset($_POST['acf']['field_62f356532c89d'])) {
  5.         $font_uploader = new avia_font_manager();
  6.  
  7.         $old_font = get_field('theme_options_font', 'option');
  8.         if (is_array($old_font)) {
  9.             $old_font_ID = (int)$old_font['ID'];
  10.         } else {
  11.             $old_font_ID = (int)$old_font;
  12.         }
  13.         $new_font_ID = (int)$_POST['acf']['field_62f356532c89d'];
  14.         if ($new_font_ID) {
  15.             // check if old font and new font are equal
  16.             if ($new_font_ID === $old_font_ID) return;
  17.  
  18.             // add new font
  19.             $font_name = res_upload_font($new_font_ID, $font_uploader);
  20.  
  21.             // Update font title to have reference for deletion
  22.             $font = array(
  23.                 'ID'         => $new_font_ID,
  24.                 'post_title' => $font_name,
  25.             );
  26.             wp_update_post($font);
  27.         } else {
  28.             // Delete font folder and font
  29.             $font_name = get_the_title($old_font_ID);
  30.             wp_delete_attachment($old_font_ID);
  31.             if ($font_name) {
  32.                 $new_name = trailingslashit($font_uploader->paths['fontdir']) . $font_name;
  33.                 $font_uploader->delete_folder($new_name);
  34.  
  35.                 $fonts = get_option('avia_builder_fonts');
  36.                 if (isset($fonts[$font_name])) {
  37.                     unset($fonts[$font_name]);
  38.                     update_option('avia_builder_fonts', $fonts);
  39.                 }
  40.             }
  41.         }
  42.     }
  43. }
  44.  
  45. function res_upload_font($attachment_id, $font_uploader)
  46. {
  47.     if (!$attachment_id) return '';
  48.  
  49.     $path = realpath(get_attached_file($attachment_id));
  50.     $unzipped = $font_uploader->zip_flatten($path, array('\.eot', '\.svg', '\.ttf', '\.woff', '\.woff2', '\.json'));
  51.    
  52.     if ($unzipped) {
  53.         $font_uploader->create_config();
  54.     }
  55.    
  56.     if ($font_uploader->font_name == 'unknown') {
  57.         $font_uploader->delete_folder($font_uploader->paths['tempdir']);
  58.         exit('Was not able to retrieve the Font name from your Uploaded Folder');
  59.     }
  60.  
  61.     return $font_uploader->font_name;
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement