name); $folderslug = $current_folder->slug; if ($current_folder->parent) { $parentFolder = get_term((int) $current_folder->parent, WPMF_TAXO); $parentFolderName = sanitize_title($parentFolder->name); } } else { $foldername = 'uncategorized'; $folderslug = 'uncategorized'; } $sitename = sanitize_title(get_bloginfo('name')); $original_filename = $info['filename']; $date = trim($upload_dir['subdir'], '/'); if ($date === '') { $date = date('Ym', time()); } $ext = empty($info['extension']) ? '' : '.' . $info['extension']; $format_date = date('Y-m-d H-i-s', current_time('timestamp')); $pattern = str_replace('{sitename}', $sitename, $pattern); $pattern = str_replace('{date}', $date, $pattern); $pattern = str_replace('{original name}', $original_filename, $pattern); $pattern = str_replace('{folderslug}', $folderslug, $pattern); $pattern = str_replace('{parent_folder}', $parentFolderName, $pattern); $pattern = str_replace('{timestamp}', $format_date, $pattern); if (strpos($pattern, '#') !== false) { $number = 0; if (strpos($pattern, '{foldername}') !== false) { $pattern = str_replace('{foldername}', $foldername, $pattern); $number_list = get_option('wpmf_rename_number_list'); if (isset($number_list[$parent])) { $number = $number_list[$parent]; } if (!$number) { $number = 0; } $number++; } else { $number = get_option('wpmf_rename_number'); if (!$number) { $number = 0; } $number++; } if (strlen($number) === 1) { $number = '0' . $number; } $pattern = str_replace('#', $number . $ext, $pattern); $pattern = do_shortcode($pattern); $filename = $pattern; } else { $pattern = str_replace('{foldername}', $foldername, $pattern); $pattern = do_shortcode($pattern); $filename = wp_unique_filename($upload_dir['path'], $pattern . $ext); } $file['name'] = $filename; return $file; } /** * Update option wpmf_rename_number * Base on /wp-admin/includes/image.php * * @param array $metadata An array of attachment meta data. * @param integer $attachment_id Current attachment ID. * * @return mixed $metadata */ public function afterUpload($metadata, $attachment_id) { // phpcs:ignore WordPress.Security.NonceVerification.Missing -- No action, nonce is not required if (isset($_POST['wpmf_folder'])) { // phpcs:ignore WordPress.Security.NonceVerification.Missing -- No action, nonce is not required $parent = (int) $_POST['wpmf_folder']; } else { $parent = 0; } $pattern = get_option('wpmf_patern_rename'); if (strpos($pattern, '#') !== false && strpos($pattern, '{foldername}') !== false) { $number_list = get_option('wpmf_rename_number_list', false); if (!empty($number_list) && is_array($number_list)) { if (isset($number_list[$parent])) { $number_list[$parent] = (int) $number_list[$parent] + 1; } else { $number_list[$parent] = 1; } } else { $number_list = array(); $number_list[$parent] = 1; } update_option('wpmf_rename_number_list', $number_list); } else { $number = get_option('wpmf_rename_number'); if (!$number) { $number = 0; } $number++; update_option('wpmf_rename_number', (int) $number); } return $metadata; } }