Changeset 2967829
- Timestamp:
- 09/16/2023 03:46:34 PM (2 years ago)
- Location:
- wp-job-openings/trunk
- Files:
-
- 4 edited
-
inc/class-awsm-job-openings-form.php (modified) (2 diffs)
-
languages/wp-job-openings.pot (modified) (5 diffs)
-
readme.txt (modified) (2 diffs)
-
wp-job-openings.php (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
wp-job-openings/trunk/inc/class-awsm-job-openings-form.php
r2956872 r2967829 34 34 35 35 add_filter( 'wp_check_filetype_and_ext', array( $this, 'check_filetype_and_ext' ), 10, 5 ); 36 add_action( 'add_attachment', array( $this, 'add_index_php_to_folders' ) ); 36 37 } 37 38 … … 367 368 } 368 369 return $param; 370 } 371 372 public function add_index_php_to_folders( $attachment_id ) { 373 // phpcs:ignore WordPress.Security.NonceVerification.Missing 374 if ( isset( $_POST['action'] ) && $_POST['action'] === 'awsm_applicant_form_submission' ) { 375 $file_path = get_attached_file( $attachment_id ); 376 if ( strpos( $file_path, AWSM_JOBS_UPLOAD_DIR_NAME ) !== false ) { 377 $directory_path = dirname( $file_path ); 378 $index_php_file = $directory_path . '/index.php'; 379 if ( ! file_exists( $index_php_file ) ) { 380 $index_php_content = '<?php\n\n//Silence is golden.\n'; 381 file_put_contents( $index_php_file, $index_php_content ); 382 } 383 } 384 } 369 385 } 370 386 -
wp-job-openings/trunk/languages/wp-job-openings.pot
r2956872 r2967829 8 8 "Content-Transfer-Encoding: 8bit\n" 9 9 "Language-Team: AWSM innovations <hello@awsm.in>\n" 10 "POT-Creation-Date: 2023-0 8-22 12:41+0000\n"10 "POT-Creation-Date: 2023-09-15 12:43+0000\n" 11 11 "X-Poedit-Basepath: ..\n" 12 12 "X-Poedit-KeywordsList: __;_e;_ex:1,2c;_n:1,2;_n_noop:1,2;_nx:1,2,4c;_nx_noop:1,2,3c;_x:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n" … … 16 16 "Plural-Forms: nplurals=2; plural=(n != 1);\n" 17 17 18 #: wp-job-openings.php:2 4718 #: wp-job-openings.php:269 19 19 msgid "Jobs" 20 20 msgstr "" 21 21 22 #: wp-job-openings.php:3 19, admin/class-awsm-job-openings-info.php:266, admin/class-awsm-job-openings-settings.php:48, admin/class-awsm-job-openings-settings.php:48, admin/templates/base.php:1322 #: wp-job-openings.php:341, admin/class-awsm-job-openings-info.php:266, admin/class-awsm-job-openings-settings.php:48, admin/class-awsm-job-openings-settings.php:48, admin/templates/base.php:13 23 23 msgid "Settings" 24 24 msgstr "" 25 25 26 #: wp-job-openings.php:3 26, inc/widgets/class-awsm-job-openings-dashboard-widget.php:55, admin/templates/meta/job-status.php:3026 #: wp-job-openings.php:348, inc/widgets/class-awsm-job-openings-dashboard-widget.php:55, admin/templates/meta/job-status.php:30 27 27 msgid "Job Title" 28 28 msgstr "" 29 29 30 #: wp-job-openings.php:3 2730 #: wp-job-openings.php:349 31 31 msgid "Job ID" 32 32 msgstr "" 33 33 34 #: wp-job-openings.php:3 29, wp-job-openings.php:1099, admin/class-awsm-job-openings-info.php:260, inc/class-awsm-job-openings-core.php:121, inc/class-awsm-job-openings-core.php:123, inc/class-awsm-job-openings-core.php:124, inc/widgets/class-awsm-job-openings-dashboard-widget.php:58, admin/templates/meta/job-status.php:118, admin/templates/overview/widgets/job-listings.php:2734 #: wp-job-openings.php:351, wp-job-openings.php:1121, admin/class-awsm-job-openings-info.php:260, inc/class-awsm-job-openings-core.php:121, inc/class-awsm-job-openings-core.php:123, inc/class-awsm-job-openings-core.php:124, inc/widgets/class-awsm-job-openings-dashboard-widget.php:58, admin/templates/meta/job-status.php:118, admin/templates/overview/widgets/job-listings.php:27 35 35 msgid "Applications" 36 36 msgstr "" 37 37 38 #: wp-job-openings.php:3 30, inc/widgets/class-awsm-job-openings-dashboard-widget.php:6638 #: wp-job-openings.php:352, inc/widgets/class-awsm-job-openings-dashboard-widget.php:66 39 39 msgid "Expiry" 40 40 msgstr "" 41 41 42 #: wp-job-openings.php:3 31, inc/widgets/class-awsm-job-openings-dashboard-widget.php:6342 #: wp-job-openings.php:353, inc/widgets/class-awsm-job-openings-dashboard-widget.php:63 43 43 msgid "Views" 44 44 msgstr "" 45 45 46 #: wp-job-openings.php:3 3246 #: wp-job-openings.php:354 47 47 msgid "Conversion" 48 48 msgstr "" 49 49 50 #: wp-job-openings.php:4 48, admin/templates/overview/widgets/recent-applications.php:2450 #: wp-job-openings.php:470, admin/templates/overview/widgets/recent-applications.php:24 51 51 msgid "Applicant" 52 52 msgstr "" 53 53 54 #: wp-job-openings.php:4 49, admin/templates/overview/widgets/job-listings.php:2354 #: wp-job-openings.php:471, admin/templates/overview/widgets/job-listings.php:23 55 55 msgid "ID" 56 56 msgstr "" 57 57 58 #: wp-job-openings.php:4 50, inc/class-awsm-job-openings-core.php:58, inc/templates/mail/email-digest.php:6758 #: wp-job-openings.php:472, inc/class-awsm-job-openings-core.php:58, inc/templates/mail/email-digest.php:67 59 59 msgid "Job" 60 60 msgstr "" 61 61 62 #: wp-job-openings.php:4 51, inc/templates/mail/email-digest.php:6862 #: wp-job-openings.php:473, inc/templates/mail/email-digest.php:68 63 63 msgid "Applied on" 64 64 msgstr "" 65 65 66 #: wp-job-openings.php: 47966 #: wp-job-openings.php:501 67 67 msgid "View Job: " 68 68 msgstr "" 69 69 70 #: wp-job-openings.php: 487, admin/templates/meta/job-status.php:68, admin/templates/overview/widgets/recent-applications.php:3470 #: wp-job-openings.php:509, admin/templates/meta/job-status.php:68, admin/templates/overview/widgets/recent-applications.php:34 71 71 msgid "ago" 72 72 msgstr "" 73 73 74 #: wp-job-openings.php: 497, wp-job-openings.php:517, wp-job-openings.php:762, wp-job-openings.php:1978, admin/templates/meta/job-status.php:5474 #: wp-job-openings.php:519, wp-job-openings.php:539, wp-job-openings.php:784, wp-job-openings.php:2000, admin/templates/meta/job-status.php:54 75 75 msgid "Expired" 76 76 msgstr "" 77 77 78 78 #. translators: %s: posts count with expired status 79 #: wp-job-openings.php:5 0479 #: wp-job-openings.php:526 80 80 msgid "Expired <span class=\"count\">(%s)</span>" 81 81 msgid_plural "Expired <span class=\"count\">(%s)</span>" … … 83 83 msgstr[1] "" 84 84 85 #: wp-job-openings.php:7 0085 #: wp-job-openings.php:722 86 86 msgid "Email Digest - WP Job Openings" 87 87 msgstr "" 88 88 89 #: wp-job-openings.php:7 5989 #: wp-job-openings.php:781 90 90 msgid "Published" 91 91 msgstr "" 92 92 93 #: wp-job-openings.php:7 5993 #: wp-job-openings.php:781 94 94 msgid "Current Openings" 95 95 msgstr "" 96 96 97 #: wp-job-openings.php:7 6297 #: wp-job-openings.php:784 98 98 msgid "Inactive" 99 99 msgstr "" 100 100 101 #: wp-job-openings.php: 783101 #: wp-job-openings.php:805 102 102 msgid "All Jobs" 103 103 msgstr "" 104 104 105 #: wp-job-openings.php:8 61105 #: wp-job-openings.php:883 106 106 msgid "JavaScript is required! Please enable it in your browser." 107 107 msgstr "" 108 108 109 109 #. translators: %1$s: opening html tag, %2$s: closing html tag, %3$s: Jobs count, %4$s: Plugin rating site 110 #: wp-job-openings.php: 879110 #: wp-job-openings.php:901 111 111 msgid "That's awesome! You have just published %3$sth job posting on your wesbite using %1$sWP Job Openings%2$s. Could you please do us a BIG favor and give it a %1$s5-star%2$s rating on %4$s? Just to help us spread the word and boost our motivation." 112 112 msgstr "" 113 113 114 114 #. translators: %1$s: opening html tag, %2$s: closing html tag, %3$s: Applications count, %4$s: Plugin rating site 115 #: wp-job-openings.php: 882115 #: wp-job-openings.php:904 116 116 msgid "You have received over %1$s%3$s%2$s job applications through %1$sWP Job Openings%2$s. That's awesome! May we ask you to give it a %1$s5-Star%2$s rating on %4$s. It will help us spread the word and boost our motivation." 117 117 msgstr "" 118 118 119 #: wp-job-openings.php: 888119 #: wp-job-openings.php:910 120 120 msgid "Ok, you deserve it" 121 121 msgstr "" 122 122 123 #: wp-job-openings.php: 889123 #: wp-job-openings.php:911 124 124 msgid "I already did" 125 125 msgstr "" 126 126 127 #: wp-job-openings.php: 890127 #: wp-job-openings.php:912 128 128 msgid "Maybe later" 129 129 msgstr "" 130 130 131 #: wp-job-openings.php:9 59131 #: wp-job-openings.php:981 132 132 msgid "Invalid request!" 133 133 msgstr "" 134 134 135 #: wp-job-openings.php:9 65135 #: wp-job-openings.php:987 136 136 msgid "Invalid context!" 137 137 msgstr "" 138 138 139 #: wp-job-openings.php:10 13139 #: wp-job-openings.php:1035 140 140 msgid "Loading..." 141 141 msgstr "" 142 142 143 #: wp-job-openings.php:10 15143 #: wp-job-openings.php:1037 144 144 msgid "Error in submitting your application. Please try again later!" 145 145 msgstr "" 146 146 147 #: wp-job-openings.php:10 16147 #: wp-job-openings.php:1038 148 148 msgid "The file you have selected is too large." 149 149 msgstr "" 150 150 151 #: wp-job-openings.php:1 080, admin/templates/general.php:20151 #: wp-job-openings.php:1102, admin/templates/general.php:20 152 152 msgid "Select a page" 153 153 msgstr "" 154 154 155 #: wp-job-openings.php:1 082, admin/class-awsm-job-openings-settings.php:1131155 #: wp-job-openings.php:1104, admin/class-awsm-job-openings-settings.php:1131 156 156 msgid "Select Image" 157 157 msgstr "" 158 158 159 #: wp-job-openings.php:1 083, admin/class-awsm-job-openings-settings.php:1134159 #: wp-job-openings.php:1105, admin/class-awsm-job-openings-settings.php:1134 160 160 msgid "Change Image" 161 161 msgstr "" 162 162 163 #: wp-job-openings.php:1 084, admin/class-awsm-job-openings-settings.php:1130163 #: wp-job-openings.php:1106, admin/class-awsm-job-openings-settings.php:1130 164 164 msgid "No Image selected" 165 165 msgstr "" 166 166 167 #: wp-job-openings.php:1 085167 #: wp-job-openings.php:1107 168 168 msgid "Select or Upload an Image" 169 169 msgstr "" 170 170 171 #: wp-job-openings.php:1 086171 #: wp-job-openings.php:1108 172 172 msgid "Choose" 173 173 msgstr "" 174 174 175 175 #. translators: %1$s: application id, %2$s: job title 176 #: wp-job-openings.php:1 198176 #: wp-job-openings.php:1220 177 177 msgid "Application #%1$s for %2$s" 178 178 msgstr "" 179 179 180 180 #. translators: %s: application submission time 181 #: wp-job-openings.php:12 07181 #: wp-job-openings.php:1229 182 182 msgid "Submitted on %s" 183 183 msgstr "" 184 184 185 #: wp-job-openings.php:12 11185 #: wp-job-openings.php:1233 186 186 msgid "from IP " 187 187 msgstr "" 188 188 189 #: wp-job-openings.php:14 32189 #: wp-job-openings.php:1454 190 190 msgid "View Applications" 191 191 msgstr "" 192 192 193 #: wp-job-openings.php:16 24193 #: wp-job-openings.php:1646 194 194 msgid "Closing on" 195 195 msgstr "" 196 196 197 #: wp-job-openings.php:16 26197 #: wp-job-openings.php:1648 198 198 msgid "Expired on" 199 199 msgstr "" 200 200 201 #: wp-job-openings.php:16 28201 #: wp-job-openings.php:1650 202 202 msgid "M j, Y" 203 203 msgstr "" 204 204 205 #: wp-job-openings.php:17 37205 #: wp-job-openings.php:1759 206 206 msgid "Full Time" 207 207 msgstr "" 208 208 209 #: wp-job-openings.php:17 38209 #: wp-job-openings.php:1760 210 210 msgid "Part Time" 211 211 msgstr "" 212 212 213 #: wp-job-openings.php:17 39213 #: wp-job-openings.php:1761 214 214 msgid "Freelance" 215 215 msgstr "" 216 216 217 #: wp-job-openings.php:17 40217 #: wp-job-openings.php:1762 218 218 msgid "Temporary" 219 219 msgstr "" 220 220 221 #: wp-job-openings.php:17 41221 #: wp-job-openings.php:1763 222 222 msgid "Intern" 223 223 msgstr "" 224 224 225 #: wp-job-openings.php:17 42225 #: wp-job-openings.php:1764 226 226 msgid "Volunteer" 227 227 msgstr "" 228 228 229 #: wp-job-openings.php:17 43229 #: wp-job-openings.php:1765 230 230 msgid "Per Diem" 231 231 msgstr "" 232 232 233 #: wp-job-openings.php:17 44233 #: wp-job-openings.php:1766 234 234 msgid "Other" 235 235 msgstr "" … … 352 352 msgstr "" 353 353 354 #: admin/class-awsm-job-openings-meta.php:88, inc/class-awsm-job-openings-form.php:8 7354 #: admin/class-awsm-job-openings-meta.php:88, inc/class-awsm-job-openings-form.php:88 355 355 msgid "Phone" 356 356 msgstr "" 357 357 358 #: admin/class-awsm-job-openings-meta.php:91, inc/class-awsm-job-openings-form.php:7 3358 #: admin/class-awsm-job-openings-meta.php:91, inc/class-awsm-job-openings-form.php:74 359 359 msgid "Email" 360 360 msgstr "" 361 361 362 #: admin/class-awsm-job-openings-meta.php:94, inc/class-awsm-job-openings-form.php:10 0362 #: admin/class-awsm-job-openings-meta.php:94, inc/class-awsm-job-openings-form.php:101 363 363 msgid "Cover Letter" 364 364 msgstr "" … … 879 879 880 880 #. translators: %1$s: comma-separated list of allowed file types 881 #: inc/class-awsm-job-openings-form.php:6 2881 #: inc/class-awsm-job-openings-form.php:63 882 882 msgid "Allowed Type(s): %1$s" 883 883 msgstr "" 884 884 885 #: inc/class-awsm-job-openings-form.php:6 7885 #: inc/class-awsm-job-openings-form.php:68 886 886 msgid "Full Name" 887 887 msgstr "" 888 888 889 #: inc/class-awsm-job-openings-form.php:8 2889 #: inc/class-awsm-job-openings-form.php:83 890 890 msgid "Please enter a valid email address." 891 891 msgstr "" 892 892 893 #: inc/class-awsm-job-openings-form.php:9 5893 #: inc/class-awsm-job-openings-form.php:96 894 894 msgid "Please enter a valid phone number." 895 895 msgstr "" 896 896 897 #: inc/class-awsm-job-openings-form.php:1 09897 #: inc/class-awsm-job-openings-form.php:110 898 898 msgid "Upload CV/Resume" 899 899 msgstr "" 900 900 901 #: inc/class-awsm-job-openings-form.php:15 2, inc/class-awsm-job-openings-form.php:277901 #: inc/class-awsm-job-openings-form.php:153, inc/class-awsm-job-openings-form.php:278 902 902 msgid "This field is required." 903 903 msgstr "" 904 904 905 #: inc/class-awsm-job-openings-form.php:19 3905 #: inc/class-awsm-job-openings-form.php:194 906 906 msgid "--Please Choose an Option--" 907 907 msgstr "" 908 908 909 #: inc/class-awsm-job-openings-form.php:4 09, inc/class-awsm-job-openings-third-party.php:91909 #: inc/class-awsm-job-openings-form.php:425, inc/class-awsm-job-openings-third-party.php:91 910 910 msgid "Error in submitting your application. Please refresh the page and retry." 911 911 msgstr "" 912 912 913 #: inc/class-awsm-job-openings-form.php:4 16913 #: inc/class-awsm-job-openings-form.php:432 914 914 msgid "Please verify that you are not a robot." 915 915 msgstr "" 916 916 917 #: inc/class-awsm-job-openings-form.php:4 21917 #: inc/class-awsm-job-openings-form.php:437 918 918 msgid "Please agree to our privacy policy." 919 919 msgstr "" 920 920 921 #: inc/class-awsm-job-openings-form.php:4 27921 #: inc/class-awsm-job-openings-form.php:443 922 922 msgid "Error occurred: Invalid Job." 923 923 msgstr "" 924 924 925 #: inc/class-awsm-job-openings-form.php:4 30, inc/template-functions.php:252925 #: inc/class-awsm-job-openings-form.php:446, inc/template-functions.php:252 926 926 msgid "Sorry! This job has expired." 927 927 msgstr "" 928 928 929 #: inc/class-awsm-job-openings-form.php:4 33929 #: inc/class-awsm-job-openings-form.php:449 930 930 msgid "Name is required." 931 931 msgstr "" 932 932 933 #: inc/class-awsm-job-openings-form.php:4 39933 #: inc/class-awsm-job-openings-form.php:455 934 934 msgid "Invalid email format." 935 935 msgstr "" 936 936 937 #: inc/class-awsm-job-openings-form.php:4 36937 #: inc/class-awsm-job-openings-form.php:452 938 938 msgid "Email is required." 939 939 msgstr "" 940 940 941 #: inc/class-awsm-job-openings-form.php:4 46941 #: inc/class-awsm-job-openings-form.php:462 942 942 msgid "Invalid phone number." 943 943 msgstr "" 944 944 945 #: inc/class-awsm-job-openings-form.php:4 43945 #: inc/class-awsm-job-openings-form.php:459 946 946 msgid "Contact number is required." 947 947 msgstr "" 948 948 949 #: inc/class-awsm-job-openings-form.php:4 50949 #: inc/class-awsm-job-openings-form.php:466 950 950 msgid "Cover Letter cannot be empty." 951 951 msgstr "" 952 952 953 #: inc/class-awsm-job-openings-form.php:4 53953 #: inc/class-awsm-job-openings-form.php:469 954 954 msgid "Please select your cv/resume." 955 955 msgstr "" 956 956 957 #: inc/class-awsm-job-openings-form.php:4 56957 #: inc/class-awsm-job-openings-form.php:472 958 958 msgid "Private job submission is not allowed." 959 959 msgstr "" 960 960 961 #: inc/class-awsm-job-openings-form.php:5 38961 #: inc/class-awsm-job-openings-form.php:554 962 962 msgid "Your application has been submitted." 963 963 msgstr "" 964 964 965 #: inc/class-awsm-job-openings-form.php:6 31965 #: inc/class-awsm-job-openings-form.php:647 966 966 msgid "The following errors have occurred:" 967 967 msgstr "" -
wp-job-openings/trunk/readme.txt
r2957221 r2967829 3 3 Tags: jobs, job listing, job openings, job board, careers page, jobs page, wp job opening, jobs plugin 4 4 Requires at least: 4.8 5 Tested up to: 6.3 5 Tested up to: 6.3.1 6 6 Requires PHP: 5.6 7 7 Stable tag: trunk … … 104 104 == Changelog == 105 105 106 = V 3.4.3 - 2023-09-15 = 107 * Fixed: Medium severity vulnerability (Sensitive Data Exposure via Directory Listing). 108 * Minor bug fixes and code improvements. 109 106 110 = V 3.4.2 - 2023-08-22 = 107 111 * Minor bug fixes and code improvements. -
wp-job-openings/trunk/wp-job-openings.php
r2956872 r2967829 6 6 * Author: AWSM Innovations 7 7 * Author URI: https://awsm.in/ 8 * Version: 3.4. 28 * Version: 3.4.3 9 9 * Requires at least: 4.8 10 10 * Requires PHP: 5.6 … … 38 38 } 39 39 if ( ! defined( 'AWSM_JOBS_PLUGIN_VERSION' ) ) { 40 define( 'AWSM_JOBS_PLUGIN_VERSION', '3.4. 2' );40 define( 'AWSM_JOBS_PLUGIN_VERSION', '3.4.3' ); 41 41 } 42 42 if ( ! defined( 'AWSM_JOBS_UPLOAD_DIR_NAME' ) ) { … … 79 79 80 80 add_action( 'plugins_loaded', array( $this, 'load_textdomain' ) ); 81 add_action( 'plugins_loaded', array( $this, 'upgrade' ) ); 81 82 add_action( 'after_setup_theme', array( $this, 'template_functions' ) ); 82 83 add_action( 'init', array( $this, 'init_actions' ) ); … … 185 186 public function load_textdomain() { 186 187 load_plugin_textdomain( 'wp-job-openings', false, basename( dirname( __FILE__ ) ) . '/languages' ); 188 } 189 190 public function upgrade() { 191 if ( intval( get_option( 'awsm_jobs_upgrade_count' ) ) !== 1 ) { 192 $upload_dir = wp_upload_dir(); 193 $base_dir = trailingslashit( $upload_dir['basedir'] ); 194 $upload_dir = $base_dir . AWSM_JOBS_UPLOAD_DIR_NAME; 195 $this->index_to_upload_dir( $upload_dir ); 196 update_option( 'awsm_jobs_upgrade_count', 1 ); 197 } 198 } 199 200 public function index_to_upload_dir( $dir ) { 201 $index_file = $dir . '/index.php'; 202 if ( ! file_exists( $index_file ) ) { 203 file_put_contents( $index_file, "<?php\n\n//Silence is golden.\n" ); 204 } 205 $sub_dirs = array_filter( glob( $dir . '/*' ), 'is_dir' ); 206 foreach ( $sub_dirs as $sub_dir ) { 207 $this->index_to_upload_dir( $sub_dir ); 208 } 187 209 } 188 210
Note: See TracChangeset
for help on using the changeset viewer.