Version Description
- Feature - Adds a view button to the Admin UI for easy access to submitted files or URLs. Props tripflex (https://github.com/Automattic/WP-Job-Manager/pull/650)
- Fix - Add hardening to file uploads to prevent accepting unexpected file times. Previously, other WP-allowed types were sometimes accepted.
- Fix - Job post form categories are now properly cached and displayed per language when using WPML or Polylang. (https://github.com/Automattic/WP-Job-Manager/issues/692)
- Fix - Refactored WPML workaround, which was causing no job listings on non-default languages. (https://github.com/Automattic/WP-Job-Manager/issues/617)
- Fix - Allow employers to edit job listings when a listing is pending payment. (https://github.com/Automattic/WP-Job-Manager/pull/664)
- Fix - No longer display Job Taxonomies in the WordPress tag cloud. (https://github.com/Automattic/WP-Job-Manager/pull/658)
- Fix - Migrate away from jQuery.live, which is no longer supported. ( https://github.com/Automattic/WP-Job-Manager/pull/664 )
- Tweak - Updated incorrect settings description. (https://github.com/Automattic/WP-Job-Manager/pull/632)
- Dev - Adds hook to add items in a job's RSS feed item. (https://github.com/Automattic/WP-Job-Manager/pull/636)
- Dev - Adds filter to disable Job Listings cache (https://github.com/Automattic/WP-Job-Manager/pull/684)
- Dev - Inline docs and coding standards improvements.
Download this release
Release Info
Developer | kraftbj |
Plugin | WP Job Manager |
Version | 1.25.1 |
Comparing to | |
See all releases |
Code changes from version 1.25.0 to 1.25.1
- .github/ISSUE_TEMPLATE.md +0 -17
- assets/css/admin.css +1 -1
- assets/css/admin.less +11 -3
- assets/css/mixins.less +16 -1
- assets/js/admin.js +43 -23
- assets/js/admin.min.js +1 -1
- assets/js/ajax-file-upload.js +14 -14
- assets/js/ajax-file-upload.min.js +1 -1
- assets/js/ajax-filters.js +29 -28
- assets/js/ajax-filters.min.js +1 -1
- assets/js/job-application.js +3 -3
- assets/js/job-application.min.js +1 -1
- assets/js/job-dashboard.js +2 -1
- assets/js/job-dashboard.min.js +1 -1
- assets/js/job-submission.js +2 -2
- assets/js/job-submission.min.js +1 -1
- assets/js/multiselect.js +1 -0
- assets/js/term-multiselect.js +1 -0
- changelog.txt +531 -0
- includes/abstracts/abstract-wp-job-manager-form.php +52 -8
- includes/admin/class-wp-job-manager-settings.php +1 -1
- includes/admin/class-wp-job-manager-writepanels.php +3 -3
- includes/class-wp-job-manager-category-walker.php +17 -4
- includes/class-wp-job-manager-post-types.php +9 -0
- includes/class-wp-job-manager-shortcodes.php +6 -0
- includes/class-wp-job-manager-widgets.php +49 -2
- includes/forms/class-wp-job-manager-form-edit-job.php +13 -2
- includes/forms/class-wp-job-manager-form-submit-job.php +28 -3
- readme.txt +19 -410
- wp-job-manager-functions.php +65 -6
- wp-job-manager.php +2 -2
.github/ISSUE_TEMPLATE.md
DELETED
@@ -1,17 +0,0 @@
|
|
1 |
-
<!--
|
2 |
-
Thanks for contributing to WP Job Manager! Enter a clear title (e.g. "Search error when using plus sign") and proceed.
|
3 |
-
-->
|
4 |
-
|
5 |
-
#### What I Expected To Happen
|
6 |
-
|
7 |
-
#### What Happened Instead
|
8 |
-
|
9 |
-
#### Steps to Reproduce the Bug
|
10 |
-
|
11 |
-
<!--
|
12 |
-
PLEASE NOTE:
|
13 |
-
- These comments won't show up when you submit the issue.
|
14 |
-
- Try to add as much detail as possible. Be specific!
|
15 |
-
- GitHub issues aren't for support! If you have questions, use this form: https://wpjobmanager.com/support/
|
16 |
-
- If you're requesting a new feature, explain why you'd like it to be added.
|
17 |
-
-->
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/css/admin.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.clearfix{zoom:1}.clearfix:after,.clearfix:before{content:"";display:table}.clearfix:after{clear:both}@font-face{font-family:job-manager;src:url(../font/job-manager.eot?4963673);src:url(../font/job-manager.eot?4963673#iefix) format('embedded-opentype'),url(../font/job-manager.woff?4963673) format('woff'),url(../font/job-manager.ttf?4963673) format('truetype'),url(../font/job-manager.svg?4963673#job-manager) format('svg');font-weight:400;font-style:normal}@font-face{font-family:jm-logo;src:url(../font/jm-logo/jm.eot?ycsbky);src:url(../font/jm-logo/jm.eot?#iefixycsbky) format('embedded-opentype'),url(../font/jm-logo/jm.woff?ycsbky) format('woff'),url(../font/jm-logo/jm.ttf?ycsbky) format('truetype'),url(../font/jm-logo/jm.svg?ycsbky#icomoon) format('svg');font-weight:400;font-style:normal}.jm-icon{font-family:job-manager!important;font-style:normal;font-weight:400;speak:none;display:inline-block;text-decoration:inherit;width:1em;text-align:center;font-variant:normal;text-transform:none;line-height:1em}.job-manager-settings-wrap .updated{display:none}.job-manager-settings-wrap .job-manager-updated{display:block;margin:1em 0 0}.widefat td.column-featured_job,.widefat td.column-filled,.widefat td.column-job_status{width:46px;text-align:left;padding-left:11px}.widefat th.column-featured_job,.widefat th.column-filled,.widefat th.column-job_status{width:1em}.widefat th.column-featured_job span,.widefat th.column-filled span,.widefat th.column-job_status span{display:block;width:1em;height:1em;line-height:1em;padding:1px 0 0;overflow:hidden}.widefat th.column-featured_job span:before,.widefat th.column-filled span:before,.widefat th.column-job_status span:before{content:'\e803';font-family:job-manager!important;font-style:normal;font-weight:400;speak:none;display:inline-block;text-decoration:inherit;width:1em;text-align:center;font-variant:normal;text-transform:none;line-height:1em}.widefat th.column-filled span:before{content:'\e807'}.widefat th.column-job_status span:before{content:'\e828'}.widefat .column-job_posted strong{display:block;margin-bottom:.2em}.widefat td.column-job_status span{position:relative;font-size:1em;line-height:1.5em;width:1em;height:0;padding:2em 0 0;overflow:hidden;display:block}.widefat td.column-job_status span:before{font-family:job-manager!important;font-style:normal;font-weight:400;speak:none;display:inline-block;text-decoration:inherit;width:1em;text-align:center;font-variant:normal;text-transform:none;position:absolute;top:0;left:0;line-height:1.5em;vertical-align:middle;color:#999;content:'\e829'}.widefat td.column-job_status .status-trash:before{content:'\e82b';color:#a00}.widefat td.column-job_status .status-pending:before{content:'\e82c';color:#ffba00}.widefat td.column-job_status .status-publish:before{content:'\e82f';color:#73a724}.widefat td.column-job_status .status-expired:before{content:'\e82e';color:#a00}.widefat .column-job_listing_type{text-align:left;width:6em;word-wrap:normal!important}.widefat .column-job_listing_type .job-type{color:#fff;padding:4px;font-size:11px;-webkit-border-radius:2px;border-radius:2px;display:block;background-color:#f08d3c;text-align:center}.widefat .column-job_listing_type .full-time{background-color:#90da36}.widefat .column-job_listing_type .part-time{background-color:#f08d3c}.widefat .column-job_listing_type .temporary{background-color:#d93674}.widefat .column-job_listing_type .freelance{background-color:#39c}.widefat .column-job_listing_type .internship{background-color:#6033cc}.widefat th.column-job_position{width:20%}.widefat td.column-job_position{width:20%;height:34px}.widefat td.column-job_position .job_position{position:relative;padding-right:50px!important}.widefat td.column-job_position a.job_title{font-weight:700}.widefat td.column-job_position img{width:32px;height:32px;position:absolute;right:7px;top:0;-webkit-border-radius:50%;border-radius:50%;box-shadow:0 1px 0 1px rgba(0,0,0,.1);-webkit-box-shadow:0 1px 0 1px rgba(0,0,0,.1);-moz-box-shadow:0 1px 0 1px rgba(0,0,0,.1);border:1px solid #fff}.widefat td.column-job_position .company{margin-top:.2em;display:block;padding-top:2px;color:#bbb}.widefat .column-job_location{width:10%}.widefat .column-job_actions{text-align:right;width:128px}.widefat .column-job_actions strong{display:block;margin-bottom:.2em}.widefat .column-job_actions .actions{padding-top:2px}.widefat .column-job_actions a.button{display:inline-block;margin:0 0 2px 4px;cursor:pointer;padding:0 6px!important;font-size:1em!important;line-height:2em!important;overflow:hidden}.widefat .column-job_actions a.button-icon{width:2em!important;padding:0!important}.widefat .column-job_actions a.button-icon:before{font-family:job-manager!important;font-style:normal;font-weight:400;speak:none;display:inline-block;text-decoration:inherit;text-align:center;font-variant:normal;text-transform:none;float:left;width:2em!important;line-height:2em}.widefat .column-job_actions .icon-view:before{content:'\e805'}.widefat .column-job_actions .icon-edit:before{content:'\e804'}.widefat .column-job_actions .icon-delete:before{content:'\e82b'}.widefat .column-job_actions .icon-approve:before{content:'\e802'}.wp_job_manager_meta_data{padding:12px;zoom:1}.wp_job_manager_meta_data:after,.wp_job_manager_meta_data:before{content:"";display:table}.wp_job_manager_meta_data:after{clear:both}.wp_job_manager_meta_data .form-field{width:50%;line-height:2em;float:left;box-sizing:border-box;padding:0 12px 0 0;margin:0 0 12px;clear:both}.wp_job_manager_meta_data .form-field:nth-child(even){float:right;padding:0 0 0 12px;clear:right}.wp_job_manager_meta_data .form-field:nth-last-child(-n+2){margin-bottom:0;padding-bottom:0;border-bottom:0}.wp_job_manager_meta_data .form-field label{vertical-align:middle;display:block;font-weight:700;margin:0}.wp_job_manager_meta_data .form-field .tips{cursor:help;float:right;font-weight:400;color:#999}.wp_job_manager_meta_data .form-field input{width:100%;margin:1px 0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;vertical-align:middle}.wp_job_manager_meta_data .form-field input.checkbox,.wp_job_manager_meta_data .form-field input.radio{width:auto;margin:4px 2px;display:inline-block}.wp_job_manager_meta_data .form-field .description{display:block;color:#999}.wp_job_manager_meta_data .form-field.form-field-checkbox .description{display:inline}.wp_job_manager_meta_data .form-field .file_url input{width:75%}.wp_job_manager_meta_data .form-field .button{margin-left:4px}#tiptip_holder{display:none;position:absolute;top:0;left:0;z-index:99999}#tiptip_holder.tip_top{padding-bottom:5px}#tiptip_holder.tip_bottom{padding-top:5px}#tiptip_holder.tip_right{padding-left:5px}#tiptip_holder.tip_left{padding-right:5px}#tiptip_content{font-size:11px;color:#fff;padding:4px 8px;background:#464646;border-radius:3px;-webkit-border-radius:3px;-moz-border-radius:3px;box-shadow:1px 1px 3px rgba(0,0,0,.1);-webkit-box-shadow:1px 1px 3px rgba(0,0,0,.1);-moz-box-shadow:1px 1px 3px rgba(0,0,0,.1);text-align:center}#tiptip_content code{background:#999;padding:1px}#tiptip_arrow,#tiptip_arrow_inner{position:absolute;border-color:transparent;border-style:solid;border-width:6px;height:0;width:0}#tiptip_holder.tip_top #tiptip_arrow_inner{margin-top:-7px;margin-left:-6px;border-top-color:#464646}#tiptip_holder.tip_bottom #tiptip_arrow_inner{margin-top:-5px;margin-left:-6px;border-bottom-color:#464646}#tiptip_holder.tip_right #tiptip_arrow_inner{margin-top:-6px;margin-left:-5px;border-right-color:#464646}#tiptip_holder.tip_left #tiptip_arrow_inner{margin-top:-6px;margin-left:-7px;border-left-color:#464646}.wp_job_manager_addons_wrap #job-manager-addons-banner{position:relative;background:#d85677;padding:0 2em 0 5em;color:#fff;margin:10px .25% 20px 0;border-color:rgba(0,0,0,.1);overflow:hidden}.wp_job_manager_addons_wrap #job-manager-addons-banner strong{font-size:1.25em;line-height:.8em;text-shadow:0 2px 0 rgba(0,0,0,.1);font-weight:400;float:left;padding:1.6em 0}.wp_job_manager_addons_wrap #job-manager-addons-banner a.button{color:#fff;text-decoration:none;font-weight:700;float:right;background:#d85677;border:1px solid #fff;line-height:1em;padding:1em;margin:1em 0;text-shadow:0 2px 0 rgba(0,0,0,.1);box-shadow:0 2px 0 rgba(0,0,0,.1);height:auto;position:relative}.wp_job_manager_addons_wrap #job-manager-addons-banner:before{display:inline-block;-webkit-font-smoothing:antialiased;vertical-align:top;font-family:jm-logo;content:"\e600";top:.02em;left:0;position:absolute;text-shadow:0 2px 0 rgba(0,0,0,.1);font-size:5em;font-weight:400;text-align:center;width:1em;height:1em;line-height:1em}.wp_job_manager_addons_wrap .products{overflow:hidden}.wp_job_manager_addons_wrap .products li{display:inline-block;margin:0 1% 10px 0!important;padding:0;vertical-align:top;width:24%;min-width:250px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;border:1px solid #ddd;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),inset 0 -1px 0 rgba(0,0,0,.1);overflow:hidden;position:relative;opacity:.8}.wp_job_manager_addons_wrap .products li:nth-child(4n+0){margin-right:0!important}.wp_job_manager_addons_wrap .products li a{color:inherit;text-decoration:none}.wp_job_manager_addons_wrap .products li img{width:100%;height:auto;display:block;padding:0;margin:0;background:#fff;border-bottom:1px solid rgba(0,0,0,.1)}.wp_job_manager_addons_wrap .products li h2{margin:0!important;padding:10px 0!important;line-height:1;background:rgba(255,255,255,.6);border-bottom:1px solid rgba(0,0,0,.1);color:#000;text-align:center;position:absolute;width:100%;top:0;left:0;font-size:16px;text-shadow:none;display:none}.wp_job_manager_addons_wrap .products li:focus,.wp_job_manager_addons_wrap .products li:hover{opacity:1}.wp_job_manager_addons_wrap .products li:focus h2,.wp_job_manager_addons_wrap .products li:hover h2{display:block}.wp_job_manager_addons_wrap .products li .third_party{display:none}.wp_job_manager_addons_wrap .products li p{padding:20px!important;margin:0!important;border-top:1px solid #f1f1f1}.wp_job_manager_addons_wrap .products li .price{display:none}.rtl .widefat .column-job_actions a.button-icon:before{float:right}.rtl .wp_job_manager_meta_data p{padding:0 20% 0 0}.rtl .wp_job_manager_meta_data label{left:auto;right:0}
|
1 |
+
.clearfix{zoom:1}.clearfix:after,.clearfix:before{content:"";display:table}.clearfix:after{clear:both}@font-face{font-family:job-manager;src:url(../font/job-manager.eot?4963673);src:url(../font/job-manager.eot?4963673#iefix) format('embedded-opentype'),url(../font/job-manager.woff?4963673) format('woff'),url(../font/job-manager.ttf?4963673) format('truetype'),url(../font/job-manager.svg?4963673#job-manager) format('svg');font-weight:400;font-style:normal}@font-face{font-family:jm-logo;src:url(../font/jm-logo/jm.eot?ycsbky);src:url(../font/jm-logo/jm.eot?#iefixycsbky) format('embedded-opentype'),url(../font/jm-logo/jm.woff?ycsbky) format('woff'),url(../font/jm-logo/jm.ttf?ycsbky) format('truetype'),url(../font/jm-logo/jm.svg?ycsbky#icomoon) format('svg');font-weight:400;font-style:normal}.jm-icon{font-family:job-manager!important;font-style:normal;font-weight:400;speak:none;display:inline-block;text-decoration:inherit;width:1em;text-align:center;font-variant:normal;text-transform:none;line-height:1em}.job-manager-settings-wrap .updated{display:none}.job-manager-settings-wrap .job-manager-updated{display:block;margin:1em 0 0}.widefat td.column-featured_job,.widefat td.column-filled,.widefat td.column-job_status{width:46px;text-align:left;padding-left:11px}.widefat th.column-featured_job,.widefat th.column-filled,.widefat th.column-job_status{width:1em}.widefat th.column-featured_job span,.widefat th.column-filled span,.widefat th.column-job_status span{display:block;width:1em;height:1em;line-height:1em;padding:1px 0 0;overflow:hidden}.widefat th.column-featured_job span:before,.widefat th.column-filled span:before,.widefat th.column-job_status span:before{content:'\e803';font-family:job-manager!important;font-style:normal;font-weight:400;speak:none;display:inline-block;text-decoration:inherit;width:1em;text-align:center;font-variant:normal;text-transform:none;line-height:1em}.widefat th.column-filled span:before{content:'\e807'}.widefat th.column-job_status span:before{content:'\e828'}.widefat .column-job_posted strong{display:block;margin-bottom:.2em}.widefat td.column-job_status span{position:relative;font-size:1em;line-height:1.5em;width:1em;height:0;padding:2em 0 0;overflow:hidden;display:block}.widefat td.column-job_status span:before{font-family:job-manager!important;font-style:normal;font-weight:400;speak:none;display:inline-block;text-decoration:inherit;width:1em;text-align:center;font-variant:normal;text-transform:none;position:absolute;top:0;left:0;line-height:1.5em;vertical-align:middle;color:#999;content:'\e829'}.widefat td.column-job_status .status-trash:before{content:'\e82b';color:#a00}.widefat td.column-job_status .status-pending:before{content:'\e82c';color:#ffba00}.widefat td.column-job_status .status-publish:before{content:'\e82f';color:#73a724}.widefat td.column-job_status .status-expired:before{content:'\e82e';color:#a00}.widefat .column-job_listing_type{text-align:left;width:6em;word-wrap:normal!important}.widefat .column-job_listing_type .job-type{color:#fff;padding:4px;font-size:11px;-webkit-border-radius:2px;border-radius:2px;display:block;background-color:#f08d3c;text-align:center}.widefat .column-job_listing_type .full-time{background-color:#90da36}.widefat .column-job_listing_type .part-time{background-color:#f08d3c}.widefat .column-job_listing_type .temporary{background-color:#d93674}.widefat .column-job_listing_type .freelance{background-color:#39c}.widefat .column-job_listing_type .internship{background-color:#6033cc}.widefat th.column-job_position{width:20%}.widefat td.column-job_position{width:20%;height:34px}.widefat td.column-job_position .job_position{position:relative;padding-right:50px!important}.widefat td.column-job_position a.job_title{font-weight:700}.widefat td.column-job_position img{width:32px;height:32px;position:absolute;right:7px;top:0;-webkit-border-radius:50%;border-radius:50%;box-shadow:0 1px 0 1px rgba(0,0,0,.1);-webkit-box-shadow:0 1px 0 1px rgba(0,0,0,.1);-moz-box-shadow:0 1px 0 1px rgba(0,0,0,.1);border:1px solid #fff}.widefat td.column-job_position .company{margin-top:.2em;display:block;padding-top:2px;color:#bbb}.widefat .column-job_location{width:10%}.widefat .column-job_actions{text-align:right;width:128px}.widefat .column-job_actions strong{display:block;margin-bottom:.2em}.widefat .column-job_actions .actions{padding-top:2px}.widefat .column-job_actions a.button{display:inline-block;margin:0 0 2px 4px;cursor:pointer;padding:0 6px!important;font-size:1em!important;line-height:2em!important;overflow:hidden}.widefat .column-job_actions a.button-icon{width:2em!important;padding:0!important}.widefat .column-job_actions a.button-icon:before{font-family:job-manager!important;font-style:normal;font-weight:400;speak:none;display:inline-block;text-decoration:inherit;text-align:center;font-variant:normal;text-transform:none;float:left;width:2em!important;line-height:2em}.widefat .column-job_actions .icon-view:before{content:'\e805'}.widefat .column-job_actions .icon-edit:before{content:'\e804'}.widefat .column-job_actions .icon-delete:before{content:'\e82b'}.widefat .column-job_actions .icon-approve:before{content:'\e802'}.wp_job_manager_meta_data{padding:12px;zoom:1}.wp_job_manager_meta_data:after,.wp_job_manager_meta_data:before{content:"";display:table}.wp_job_manager_meta_data:after{clear:both}.wp_job_manager_meta_data .form-field{width:50%;line-height:2em;float:left;box-sizing:border-box;padding:0 12px 0 0;margin:0 0 12px;clear:both}.wp_job_manager_meta_data .form-field:nth-child(even){float:right;padding:0 0 0 12px;clear:right}.wp_job_manager_meta_data .form-field:nth-last-child(-n+2){margin-bottom:0;padding-bottom:0;border-bottom:0}.wp_job_manager_meta_data .form-field label{vertical-align:middle;display:block;font-weight:700;margin:0}.wp_job_manager_meta_data .form-field .tips{cursor:help;float:right;font-weight:400;color:#999}.wp_job_manager_meta_data .form-field input{width:100%;margin:1px 0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;vertical-align:middle}.wp_job_manager_meta_data .form-field input.checkbox,.wp_job_manager_meta_data .form-field input.radio{width:auto;margin:4px 2px;display:inline-block}.wp_job_manager_meta_data .form-field .description{display:block;color:#999}.wp_job_manager_meta_data .form-field.form-field-checkbox .description{display:inline}.wp_job_manager_meta_data .form-field .file_url input{width:75%}.wp_job_manager_meta_data .form-field .button{margin-left:4px}.wp_job_manager_meta_data .form-field .file_no_url{-o-animation:flash .3s linear infinite alternate;-webkit-animation:flash .3s linear infinite alternate;-moz-animation:flash .3s linear infinite alternate;animation:flash .3s linear infinite alternate}@-o-keyframes flash{from{background-color:unset}to{background-color:#dc3232}}@-ms-keyframes flash{from{background-color:unset}to{background-color:#dc3232}}@-moz-keyframes flash{from{background-color:unset}to{background-color:#dc3232}}@-webkit-keyframes flash{from{background-color:unset}to{background-color:#dc3232}}@keyframes flash{from{background-color:unset}to{background-color:#dc3232}}#tiptip_holder{display:none;position:absolute;top:0;left:0;z-index:99999}#tiptip_holder.tip_top{padding-bottom:5px}#tiptip_holder.tip_bottom{padding-top:5px}#tiptip_holder.tip_right{padding-left:5px}#tiptip_holder.tip_left{padding-right:5px}#tiptip_content{font-size:11px;color:#fff;padding:4px 8px;background:#464646;border-radius:3px;-webkit-border-radius:3px;-moz-border-radius:3px;box-shadow:1px 1px 3px rgba(0,0,0,.1);-webkit-box-shadow:1px 1px 3px rgba(0,0,0,.1);-moz-box-shadow:1px 1px 3px rgba(0,0,0,.1);text-align:center}#tiptip_content code{background:#999;padding:1px}#tiptip_arrow,#tiptip_arrow_inner{position:absolute;border-color:transparent;border-style:solid;border-width:6px;height:0;width:0}#tiptip_holder.tip_top #tiptip_arrow_inner{margin-top:-7px;margin-left:-6px;border-top-color:#464646}#tiptip_holder.tip_bottom #tiptip_arrow_inner{margin-top:-5px;margin-left:-6px;border-bottom-color:#464646}#tiptip_holder.tip_right #tiptip_arrow_inner{margin-top:-6px;margin-left:-5px;border-right-color:#464646}#tiptip_holder.tip_left #tiptip_arrow_inner{margin-top:-6px;margin-left:-7px;border-left-color:#464646}.wp_job_manager_addons_wrap #job-manager-addons-banner{position:relative;background:#d85677;padding:0 2em 0 5em;color:#fff;margin:10px .25% 20px 0;border-color:rgba(0,0,0,.1);overflow:hidden}.wp_job_manager_addons_wrap #job-manager-addons-banner strong{font-size:1.25em;line-height:.8em;text-shadow:0 2px 0 rgba(0,0,0,.1);font-weight:400;float:left;padding:1.6em 0}.wp_job_manager_addons_wrap #job-manager-addons-banner a.button{color:#fff;text-decoration:none;font-weight:700;float:right;background:#d85677;border:1px solid #fff;line-height:1em;padding:1em;margin:1em 0;text-shadow:0 2px 0 rgba(0,0,0,.1);box-shadow:0 2px 0 rgba(0,0,0,.1);height:auto;position:relative}.wp_job_manager_addons_wrap #job-manager-addons-banner:before{display:inline-block;-webkit-font-smoothing:antialiased;vertical-align:top;font-family:jm-logo;content:"\e600";top:.02em;left:0;position:absolute;text-shadow:0 2px 0 rgba(0,0,0,.1);font-size:5em;font-weight:400;text-align:center;width:1em;height:1em;line-height:1em}.wp_job_manager_addons_wrap .products{overflow:hidden}.wp_job_manager_addons_wrap .products li{display:inline-block;margin:0 1% 10px 0!important;padding:0;vertical-align:top;width:24%;min-width:250px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;border:1px solid #ddd;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),inset 0 -1px 0 rgba(0,0,0,.1);overflow:hidden;position:relative;opacity:.8}.wp_job_manager_addons_wrap .products li:nth-child(4n+0){margin-right:0!important}.wp_job_manager_addons_wrap .products li a{color:inherit;text-decoration:none}.wp_job_manager_addons_wrap .products li img{width:100%;height:auto;display:block;padding:0;margin:0;background:#fff;border-bottom:1px solid rgba(0,0,0,.1)}.wp_job_manager_addons_wrap .products li h2{margin:0!important;padding:10px 0!important;line-height:1;background:rgba(255,255,255,.6);border-bottom:1px solid rgba(0,0,0,.1);color:#000;text-align:center;position:absolute;width:100%;top:0;left:0;font-size:16px;text-shadow:none;display:none}.wp_job_manager_addons_wrap .products li:focus,.wp_job_manager_addons_wrap .products li:hover{opacity:1}.wp_job_manager_addons_wrap .products li:focus h2,.wp_job_manager_addons_wrap .products li:hover h2{display:block}.wp_job_manager_addons_wrap .products li .third_party{display:none}.wp_job_manager_addons_wrap .products li p{padding:20px!important;margin:0!important;border-top:1px solid #f1f1f1}.wp_job_manager_addons_wrap .products li .price{display:none}.rtl .widefat .column-job_actions a.button-icon:before{float:right}.rtl .wp_job_manager_meta_data p{padding:0 20% 0 0}.rtl .wp_job_manager_meta_data label{left:auto;right:0}
|
assets/css/admin.less
CHANGED
@@ -199,11 +199,11 @@
|
|
199 |
zoom: 1;
|
200 |
&:before,
|
201 |
&:after {
|
202 |
-
|
203 |
-
|
204 |
}
|
205 |
&:after {
|
206 |
-
|
207 |
}
|
208 |
.form-field {
|
209 |
width: 50%;
|
@@ -263,6 +263,14 @@
|
|
263 |
.button {
|
264 |
margin-left: 4px;
|
265 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
266 |
}
|
267 |
}
|
268 |
|
199 |
zoom: 1;
|
200 |
&:before,
|
201 |
&:after {
|
202 |
+
content: "";
|
203 |
+
display: table;
|
204 |
}
|
205 |
&:after {
|
206 |
+
clear: both;
|
207 |
}
|
208 |
.form-field {
|
209 |
width: 50%;
|
263 |
.button {
|
264 |
margin-left: 4px;
|
265 |
}
|
266 |
+
.file_no_url {
|
267 |
+
.keyframes(flash; {
|
268 |
+
from { background-color: unset; }
|
269 |
+
to { background-color: #dc3232; }
|
270 |
+
});
|
271 |
+
|
272 |
+
.animation(flash 0.3s linear infinite alternate);
|
273 |
+
}
|
274 |
}
|
275 |
}
|
276 |
|
assets/css/mixins.less
CHANGED
@@ -87,4 +87,19 @@
|
|
87 |
box-sizing: border-box; /* Opera/IE 8+ */
|
88 |
}
|
89 |
.darkorlighttextshadow ( @a, @opacity: 0.8 ) when (lightness(@a) >= 65%) { .text_shadow( 0, -1px, 0, rgba(0,0,0,@opacity) ); }
|
90 |
-
.darkorlighttextshadow ( @a, @opacity: 0.8 ) when (lightness(@a) < 65%) { .text_shadow( 0, 1px, 0, rgba(255,255,255,@opacity) ); }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
87 |
box-sizing: border-box; /* Opera/IE 8+ */
|
88 |
}
|
89 |
.darkorlighttextshadow ( @a, @opacity: 0.8 ) when (lightness(@a) >= 65%) { .text_shadow( 0, -1px, 0, rgba(0,0,0,@opacity) ); }
|
90 |
+
.darkorlighttextshadow ( @a, @opacity: 0.8 ) when (lightness(@a) < 65%) { .text_shadow( 0, 1px, 0, rgba(255,255,255,@opacity) ); }
|
91 |
+
|
92 |
+
.keyframes(@name; @arguments) {
|
93 |
+
@-o-keyframes @name { @arguments(); }
|
94 |
+
@-ms-keyframes @name { @arguments(); }
|
95 |
+
@-moz-keyframes @name { @arguments(); }
|
96 |
+
@-webkit-keyframes @name { @arguments(); }
|
97 |
+
@keyframes @name { @arguments(); }
|
98 |
+
}
|
99 |
+
|
100 |
+
.animation(@animation) {
|
101 |
+
-o-animation: @animation;
|
102 |
+
-webkit-animation: @animation;
|
103 |
+
-moz-animation: @animation;
|
104 |
+
animation: @animation;
|
105 |
+
}
|
assets/js/admin.js
CHANGED
@@ -1,6 +1,7 @@
|
|
|
|
1 |
jQuery(document).ready(function($) {
|
2 |
// Tooltips
|
3 |
-
$(
|
4 |
'attribute' : 'data-tip',
|
5 |
'fadeIn' : 50,
|
6 |
'fadeOut' : 50,
|
@@ -8,7 +9,7 @@ jQuery(document).ready(function($) {
|
|
8 |
});
|
9 |
|
10 |
// Author
|
11 |
-
$(
|
12 |
$(this).closest( 'p' ).find('.current-author').hide();
|
13 |
$(this).closest( 'p' ).find('.change-author').show();
|
14 |
return false;
|
@@ -24,7 +25,7 @@ jQuery(document).ready(function($) {
|
|
24 |
$( 'input.job-manager-datepicker, input#_job_expires' ).each( function(){
|
25 |
if ( $(this).val() ) {
|
26 |
var date = new Date( $(this).val() );
|
27 |
-
$(this).datepicker(
|
28 |
}
|
29 |
});
|
30 |
|
@@ -33,48 +34,67 @@ jQuery(document).ready(function($) {
|
|
33 |
var file_target_input;
|
34 |
var file_target_wrapper;
|
35 |
|
36 |
-
$(
|
37 |
event.preventDefault();
|
38 |
|
39 |
-
var wrapper = $( this ).closest( '.form-field' );
|
40 |
var field_name = $( this ).data( 'field_name' );
|
41 |
var field_placeholder = $( this ).data( 'field_placeholder' );
|
42 |
var button_text = $( this ).data( 'uploader_button_text' );
|
43 |
var button = $( this ).data( 'uploader_button' );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
44 |
|
45 |
-
$( this ).before('<span class="file_url"><input type="text" name="' + field_name + '[]" placeholder="' + field_placeholder + '" /><button class="button button-small wp_job_manager_upload_file_button" data-uploader_button_text="' + button_text + '">' + button + '</button></span>');
|
46 |
});
|
47 |
|
48 |
-
$(
|
49 |
-
|
50 |
|
51 |
-
|
52 |
-
|
53 |
|
54 |
-
|
55 |
-
|
56 |
file_frame.open();
|
57 |
return;
|
58 |
-
|
59 |
|
60 |
-
|
61 |
-
|
62 |
title: $( this ).data( 'uploader_title' ),
|
63 |
button: {
|
64 |
-
text: $( this ).data( 'uploader_button_text' )
|
65 |
},
|
66 |
multiple: false // Set to true to allow multiple files to be selected
|
67 |
-
|
68 |
|
69 |
-
|
70 |
-
|
71 |
// We set multiple to false so only get one image from the uploader
|
72 |
-
attachment = file_frame.state().get('selection').first().toJSON();
|
73 |
|
74 |
$( file_target_input ).val( attachment.url );
|
75 |
-
|
76 |
|
77 |
-
|
78 |
-
|
79 |
});
|
80 |
});
|
1 |
+
/* global job_manager_admin */
|
2 |
jQuery(document).ready(function($) {
|
3 |
// Tooltips
|
4 |
+
$( '.tips, .help_tip' ).tipTip({
|
5 |
'attribute' : 'data-tip',
|
6 |
'fadeIn' : 50,
|
7 |
'fadeOut' : 50,
|
9 |
});
|
10 |
|
11 |
// Author
|
12 |
+
$( 'p.form-field-author' ).on( 'click', 'a.change-author', function() {
|
13 |
$(this).closest( 'p' ).find('.current-author').hide();
|
14 |
$(this).closest( 'p' ).find('.change-author').show();
|
15 |
return false;
|
25 |
$( 'input.job-manager-datepicker, input#_job_expires' ).each( function(){
|
26 |
if ( $(this).val() ) {
|
27 |
var date = new Date( $(this).val() );
|
28 |
+
$(this).datepicker( 'setDate', date );
|
29 |
}
|
30 |
});
|
31 |
|
34 |
var file_target_input;
|
35 |
var file_target_wrapper;
|
36 |
|
37 |
+
$(document).on('click', '.wp_job_manager_add_another_file_button', function( event ){
|
38 |
event.preventDefault();
|
39 |
|
|
|
40 |
var field_name = $( this ).data( 'field_name' );
|
41 |
var field_placeholder = $( this ).data( 'field_placeholder' );
|
42 |
var button_text = $( this ).data( 'uploader_button_text' );
|
43 |
var button = $( this ).data( 'uploader_button' );
|
44 |
+
var view_button = $( this ).data( 'view_button' );
|
45 |
+
|
46 |
+
$( this ).before( '<span class="file_url"><input type="text" name="' + field_name + '[]" placeholder="' + field_placeholder + '" /><button class="button button-small wp_job_manager_upload_file_button" data-uploader_button_text="' + button_text + '">' + button + '</button><button class="button button-small wp_job_manager_view_file_button">' + view_button + '</button></span>' );
|
47 |
+
} );
|
48 |
+
|
49 |
+
$(document).on('click', '.wp_job_manager_view_file_button', function ( event ) {
|
50 |
+
event.preventDefault();
|
51 |
+
|
52 |
+
file_target_wrapper = $( this ).closest( '.file_url' );
|
53 |
+
file_target_input = file_target_wrapper.find( 'input' );
|
54 |
+
|
55 |
+
var attachment_url = file_target_input.val();
|
56 |
+
|
57 |
+
if ( attachment_url.indexOf( '://' ) > - 1 ) {
|
58 |
+
window.open( attachment_url, '_blank' );
|
59 |
+
} else {
|
60 |
+
file_target_input.addClass( 'file_no_url' );
|
61 |
+
setTimeout( function () {
|
62 |
+
file_target_input.removeClass( 'file_no_url' );
|
63 |
+
}, 1000 );
|
64 |
+
}
|
65 |
|
|
|
66 |
});
|
67 |
|
68 |
+
$(document).on('click', '.wp_job_manager_upload_file_button', function( event ){
|
69 |
+
event.preventDefault();
|
70 |
|
71 |
+
file_target_wrapper = $( this ).closest('.file_url');
|
72 |
+
file_target_input = file_target_wrapper.find('input');
|
73 |
|
74 |
+
// If the media frame already exists, reopen it.
|
75 |
+
if ( file_frame ) {
|
76 |
file_frame.open();
|
77 |
return;
|
78 |
+
}
|
79 |
|
80 |
+
// Create the media frame.
|
81 |
+
file_frame = wp.media.frames.file_frame = wp.media({
|
82 |
title: $( this ).data( 'uploader_title' ),
|
83 |
button: {
|
84 |
+
text: $( this ).data( 'uploader_button_text' )
|
85 |
},
|
86 |
multiple: false // Set to true to allow multiple files to be selected
|
87 |
+
});
|
88 |
|
89 |
+
// When an image is selected, run a callback.
|
90 |
+
file_frame.on( 'select', function() {
|
91 |
// We set multiple to false so only get one image from the uploader
|
92 |
+
var attachment = file_frame.state().get('selection').first().toJSON();
|
93 |
|
94 |
$( file_target_input ).val( attachment.url );
|
95 |
+
});
|
96 |
|
97 |
+
// Finally, open the modal
|
98 |
+
file_frame.open();
|
99 |
});
|
100 |
});
|
assets/js/admin.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
jQuery(document).ready(function(a){a(".tips, .help_tip").tipTip({attribute:"data-tip",fadeIn:50,fadeOut:50,delay:200}),a("p.form-field-author").on("click","a.change-author",function(){return a(this).closest("p").find(".current-author").hide(),a(this).closest("p").find(".change-author").show(),!1}),a("input.job-manager-datepicker, input#_job_expires").datepicker({altFormat:"yy-mm-dd",dateFormat:job_manager_admin.date_format,minDate:0}),a("input.job-manager-datepicker, input#_job_expires").each(function(){if(a(this).val()){var b=new Date(a(this).val());a(this).datepicker("setDate",b)}});var b,c,d;a(
|
1 |
+
jQuery(document).ready(function(a){a(".tips, .help_tip").tipTip({attribute:"data-tip",fadeIn:50,fadeOut:50,delay:200}),a("p.form-field-author").on("click","a.change-author",function(){return a(this).closest("p").find(".current-author").hide(),a(this).closest("p").find(".change-author").show(),!1}),a("input.job-manager-datepicker, input#_job_expires").datepicker({altFormat:"yy-mm-dd",dateFormat:job_manager_admin.date_format,minDate:0}),a("input.job-manager-datepicker, input#_job_expires").each(function(){if(a(this).val()){var b=new Date(a(this).val());a(this).datepicker("setDate",b)}});var b,c,d;a(document).on("click",".wp_job_manager_add_another_file_button",function(b){b.preventDefault();var c=a(this).data("field_name"),d=a(this).data("field_placeholder"),e=a(this).data("uploader_button_text"),f=a(this).data("uploader_button"),g=a(this).data("view_button");a(this).before('<span class="file_url"><input type="text" name="'+c+'[]" placeholder="'+d+'" /><button class="button button-small wp_job_manager_upload_file_button" data-uploader_button_text="'+e+'">'+f+'</button><button class="button button-small wp_job_manager_view_file_button">'+g+"</button></span>")}),a(document).on("click",".wp_job_manager_view_file_button",function(b){b.preventDefault(),d=a(this).closest(".file_url"),c=d.find("input");var e=c.val();e.indexOf("://")>-1?window.open(e,"_blank"):(c.addClass("file_no_url"),setTimeout(function(){c.removeClass("file_no_url")},1e3))}),a(document).on("click",".wp_job_manager_upload_file_button",function(e){return e.preventDefault(),d=a(this).closest(".file_url"),c=d.find("input"),b?void b.open():(b=wp.media.frames.file_frame=wp.media({title:a(this).data("uploader_title"),button:{text:a(this).data("uploader_button_text")},multiple:!1}),b.on("select",function(){var d=b.state().get("selection").first().toJSON();a(c).val(d.url)}),void b.open())})});
|
assets/js/ajax-file-upload.js
CHANGED
@@ -1,9 +1,10 @@
|
|
|
|
1 |
jQuery(function($) {
|
2 |
$('.wp-job-manager-file-upload').each(function(){
|
3 |
$(this).fileupload({
|
4 |
dataType: 'json',
|
5 |
dropZone: $(this),
|
6 |
-
url: job_manager_ajax_file_upload.ajax_url.toString().replace(
|
7 |
maxNumberOfFiles: 1,
|
8 |
formData: {
|
9 |
script: true
|
@@ -18,15 +19,15 @@ jQuery(function($) {
|
|
18 |
var allowed_types = $(this).data('file_types');
|
19 |
|
20 |
if ( allowed_types ) {
|
21 |
-
|
22 |
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
|
28 |
-
|
29 |
-
|
30 |
} else {
|
31 |
$form.find(':input[type="submit"]').attr( 'disabled', 'disabled' );
|
32 |
data.context = $('<progress value="" max="100"></progress>').appendTo( $uploaded_files );
|
@@ -34,8 +35,6 @@ jQuery(function($) {
|
|
34 |
}
|
35 |
},
|
36 |
progress: function (e, data) {
|
37 |
-
var $file_field = $( this );
|
38 |
-
var $uploaded_files = $file_field.parent().find('.job-manager-uploaded-files');
|
39 |
var progress = parseInt(data.loaded / data.total * 100, 10);
|
40 |
data.context.val( progress );
|
41 |
},
|
@@ -44,7 +43,7 @@ jQuery(function($) {
|
|
44 |
var $form = $file_field.closest( 'form' );
|
45 |
|
46 |
if ( data.errorThrown ) {
|
47 |
-
alert( data.errorThrown );
|
48 |
}
|
49 |
|
50 |
data.context.remove();
|
@@ -62,13 +61,14 @@ jQuery(function($) {
|
|
62 |
|
63 |
$.each(data.result.files, function(index, file) {
|
64 |
if ( file.error ) {
|
65 |
-
alert( file.error );
|
66 |
} else {
|
|
|
67 |
if ( $.inArray( file.extension, image_types ) >= 0 ) {
|
68 |
-
|
69 |
$( html ).find('.job-manager-uploaded-file-preview img').attr( 'src', file.url );
|
70 |
} else {
|
71 |
-
|
72 |
$( html ).find('.job-manager-uploaded-file-name code').text( file.name );
|
73 |
}
|
74 |
|
1 |
+
/* global job_manager_ajax_file_upload */
|
2 |
jQuery(function($) {
|
3 |
$('.wp-job-manager-file-upload').each(function(){
|
4 |
$(this).fileupload({
|
5 |
dataType: 'json',
|
6 |
dropZone: $(this),
|
7 |
+
url: job_manager_ajax_file_upload.ajax_url.toString().replace( '%%endpoint%%', 'upload_file' ),
|
8 |
maxNumberOfFiles: 1,
|
9 |
formData: {
|
10 |
script: true
|
19 |
var allowed_types = $(this).data('file_types');
|
20 |
|
21 |
if ( allowed_types ) {
|
22 |
+
var acceptFileTypes = new RegExp( '(\.|\/)(' + allowed_types + ')$', 'i' );
|
23 |
|
24 |
+
if ( data.originalFiles[0].name.length && ! acceptFileTypes.test( data.originalFiles[0].name ) ) {
|
25 |
+
uploadErrors.push( job_manager_ajax_file_upload.i18n_invalid_file_type + ' ' + allowed_types );
|
26 |
+
}
|
27 |
+
}
|
28 |
|
29 |
+
if ( uploadErrors.length > 0 ) {
|
30 |
+
window.alert( uploadErrors.join( '\n' ) );
|
31 |
} else {
|
32 |
$form.find(':input[type="submit"]').attr( 'disabled', 'disabled' );
|
33 |
data.context = $('<progress value="" max="100"></progress>').appendTo( $uploaded_files );
|
35 |
}
|
36 |
},
|
37 |
progress: function (e, data) {
|
|
|
|
|
38 |
var progress = parseInt(data.loaded / data.total * 100, 10);
|
39 |
data.context.val( progress );
|
40 |
},
|
43 |
var $form = $file_field.closest( 'form' );
|
44 |
|
45 |
if ( data.errorThrown ) {
|
46 |
+
window.alert( data.errorThrown );
|
47 |
}
|
48 |
|
49 |
data.context.remove();
|
61 |
|
62 |
$.each(data.result.files, function(index, file) {
|
63 |
if ( file.error ) {
|
64 |
+
window.alert( file.error );
|
65 |
} else {
|
66 |
+
var html;
|
67 |
if ( $.inArray( file.extension, image_types ) >= 0 ) {
|
68 |
+
html = $.parseHTML( job_manager_ajax_file_upload.js_field_html_img );
|
69 |
$( html ).find('.job-manager-uploaded-file-preview img').attr( 'src', file.url );
|
70 |
} else {
|
71 |
+
html = $.parseHTML( job_manager_ajax_file_upload.js_field_html );
|
72 |
$( html ).find('.job-manager-uploaded-file-name code').text( file.name );
|
73 |
}
|
74 |
|
assets/js/ajax-file-upload.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
jQuery(function(a){a(".wp-job-manager-file-upload").each(function(){a(this).fileupload({dataType:"json",dropZone:a(this),url:job_manager_ajax_file_upload.ajax_url.toString().replace("%%endpoint%%","upload_file"),maxNumberOfFiles:1,formData:{script:!0},add:function(b,c){var d=a(this),e=d.closest("form"),f=d.parent().find(".job-manager-uploaded-files"),g=[],h=a(this).data("file_types");if(h){var i=new RegExp("(.|/)("+h+")$","i");c.originalFiles[0].name.length&&!i.test(c.originalFiles[0].name)&&g.push(job_manager_ajax_file_upload.i18n_invalid_file_type+" "+h)}g.length>0?alert(g.join("\n")):(e.find(':input[type="submit"]').attr("disabled","disabled"),c.context=a('<progress value="" max="100"></progress>').appendTo(f),c.submit())},progress:function(b
|
1 |
+
jQuery(function(a){a(".wp-job-manager-file-upload").each(function(){a(this).fileupload({dataType:"json",dropZone:a(this),url:job_manager_ajax_file_upload.ajax_url.toString().replace("%%endpoint%%","upload_file"),maxNumberOfFiles:1,formData:{script:!0},add:function(b,c){var d=a(this),e=d.closest("form"),f=d.parent().find(".job-manager-uploaded-files"),g=[],h=a(this).data("file_types");if(h){var i=new RegExp("(.|/)("+h+")$","i");c.originalFiles[0].name.length&&!i.test(c.originalFiles[0].name)&&g.push(job_manager_ajax_file_upload.i18n_invalid_file_type+" "+h)}g.length>0?window.alert(g.join("\n")):(e.find(':input[type="submit"]').attr("disabled","disabled"),c.context=a('<progress value="" max="100"></progress>').appendTo(f),c.submit())},progress:function(a,b){var c=parseInt(b.loaded/b.total*100,10);b.context.val(c)},fail:function(b,c){var d=a(this),e=d.closest("form");c.errorThrown&&window.alert(c.errorThrown),c.context.remove(),e.find(':input[type="submit"]').removeAttr("disabled")},done:function(b,c){var d=a(this),e=d.closest("form"),f=d.parent().find(".job-manager-uploaded-files"),g=d.attr("multiple")?1:0,h=["jpg","gif","png","jpeg","jpe"];c.context.remove(),a.each(c.result.files,function(b,c){if(c.error)window.alert(c.error);else{var e;a.inArray(c.extension,h)>=0?(e=a.parseHTML(job_manager_ajax_file_upload.js_field_html_img),a(e).find(".job-manager-uploaded-file-preview img").attr("src",c.url)):(e=a.parseHTML(job_manager_ajax_file_upload.js_field_html),a(e).find(".job-manager-uploaded-file-name code").text(c.name)),a(e).find(".input-text").val(c.url),a(e).find(".input-text").attr("name","current_"+d.attr("name")),g?f.append(e):f.html(e)}}),e.find(':input[type="submit"]').removeAttr("disabled")}})})});
|
assets/js/ajax-filters.js
CHANGED
@@ -1,3 +1,4 @@
|
|
|
|
1 |
jQuery( document ).ready( function ( $ ) {
|
2 |
|
3 |
var xhr = [];
|
@@ -14,6 +15,7 @@ jQuery( document ).ready( function ( $ ) {
|
|
14 |
var featured = target.data( 'featured' );
|
15 |
var filled = target.data( 'filled' );
|
16 |
var index = $( 'div.job_listings' ).index(this);
|
|
|
17 |
|
18 |
if ( index < 0 ) {
|
19 |
return;
|
@@ -28,7 +30,7 @@ jQuery( document ).ready( function ( $ ) {
|
|
28 |
$( 'li.job_listing, li.no_job_listings_found', results ).css( 'visibility', 'hidden' );
|
29 |
|
30 |
// Not appending. If page > 1, we should show a load previous button so the user can get to earlier-page listings if needed
|
31 |
-
if ( page > 1 && true
|
32 |
$( results ).before( '<a class="load_more_jobs load_previous" href="#"><strong>' + job_manager_ajax_filters.i18n_load_prev_listings + '</strong></a>' );
|
33 |
} else {
|
34 |
target.find( '.load_previous' ).remove();
|
@@ -37,7 +39,7 @@ jQuery( document ).ready( function ( $ ) {
|
|
37 |
target.find( '.load_more_jobs' ).data( 'page', page );
|
38 |
}
|
39 |
|
40 |
-
if ( true
|
41 |
|
42 |
var filter_job_type = [];
|
43 |
|
@@ -45,11 +47,11 @@ jQuery( document ).ready( function ( $ ) {
|
|
45 |
filter_job_type.push( $( this ).val() );
|
46 |
} );
|
47 |
|
48 |
-
|
49 |
-
|
50 |
} ).get();
|
51 |
-
|
52 |
-
|
53 |
var $keywords = form.find( ':input[name="search_keywords"]' );
|
54 |
var $location = form.find( ':input[name="search_location"]' );
|
55 |
|
@@ -80,9 +82,9 @@ jQuery( document ).ready( function ( $ ) {
|
|
80 |
|
81 |
} else {
|
82 |
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
|
87 |
if ( categories ) {
|
88 |
categories = categories.split( ',' );
|
@@ -106,7 +108,7 @@ jQuery( document ).ready( function ( $ ) {
|
|
106 |
|
107 |
xhr[index] = $.ajax( {
|
108 |
type: 'POST',
|
109 |
-
url: job_manager_ajax_filters.ajax_url.toString().replace(
|
110 |
data: data,
|
111 |
success: function ( result ) {
|
112 |
if ( result ) {
|
@@ -133,7 +135,7 @@ jQuery( document ).ready( function ( $ ) {
|
|
133 |
}
|
134 |
}
|
135 |
|
136 |
-
if ( true
|
137 |
target.find('.job-manager-pagination').remove();
|
138 |
|
139 |
if ( result.pagination ) {
|
@@ -155,20 +157,20 @@ jQuery( document ).ready( function ( $ ) {
|
|
155 |
|
156 |
} catch ( err ) {
|
157 |
if ( window.console ) {
|
158 |
-
console.log( err );
|
159 |
}
|
160 |
}
|
161 |
}
|
162 |
},
|
163 |
error: function ( jqXHR, textStatus, error ) {
|
164 |
if ( window.console && 'abort' !== textStatus ) {
|
165 |
-
console.log( textStatus + ': ' + error );
|
166 |
}
|
167 |
},
|
168 |
statusCode: {
|
169 |
404: function() {
|
170 |
if ( window.console ) {
|
171 |
-
console.log(
|
172 |
}
|
173 |
}
|
174 |
}
|
@@ -181,7 +183,7 @@ jQuery( document ).ready( function ( $ ) {
|
|
181 |
job_manager_store_state( target, 1 );
|
182 |
} )
|
183 |
|
184 |
-
.on(
|
185 |
if ( e.which === 13 ) {
|
186 |
$( this ).trigger( 'change' );
|
187 |
}
|
@@ -204,7 +206,7 @@ jQuery( document ).ready( function ( $ ) {
|
|
204 |
|
205 |
$( document.body ).on( 'click', '.load_more_jobs', function() {
|
206 |
var target = $( this ).closest( 'div.job_listings' );
|
207 |
-
var page = parseInt( $( this ).data( 'page' ) || 1 );
|
208 |
var loading_previous = false;
|
209 |
|
210 |
$(this).addClass( 'loading' );
|
@@ -235,24 +237,23 @@ jQuery( document ).ready( function ( $ ) {
|
|
235 |
|
236 |
target.triggerHandler( 'update_results', [ page, false ] );
|
237 |
|
238 |
-
$(
|
239 |
-
|
240 |
-
|
241 |
|
242 |
return false;
|
243 |
} );
|
244 |
|
245 |
if ( $.isFunction( $.fn.chosen ) ) {
|
246 |
-
if ( job_manager_ajax_filters.is_rtl
|
247 |
$( 'select[name^="search_categories"]' ).addClass( 'chosen-rtl' );
|
248 |
}
|
249 |
$( 'select[name^="search_categories"]' ).chosen({ search_contains: true });
|
250 |
}
|
251 |
|
|
|
252 |
if ( window.history && window.history.pushState ) {
|
253 |
$supports_html5_history = true;
|
254 |
-
} else {
|
255 |
-
$supports_html5_history = false;
|
256 |
}
|
257 |
|
258 |
var location = document.location.href.split('#')[0];
|
@@ -267,23 +268,23 @@ jQuery( document ).ready( function ( $ ) {
|
|
267 |
}
|
268 |
|
269 |
// Inital job and form population
|
270 |
-
$(window).on(
|
271 |
$( '.job_filters' ).each( function() {
|
272 |
var target = $( this ).closest( 'div.job_listings' );
|
273 |
var form = target.find( '.job_filters' );
|
274 |
var inital_page = 1;
|
275 |
var index = $( 'div.job_listings' ).index( target );
|
276 |
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
inital_page = state.page;
|
281 |
form.deserialize( state.data );
|
282 |
form.find( ':input[name^="search_categories"]' ).not(':input[type="hidden"]').trigger( 'chosen:updated' );
|
283 |
}
|
284 |
-
|
285 |
|
286 |
target.triggerHandler( 'update_results', [ inital_page, false ] );
|
287 |
-
|
288 |
});
|
289 |
} );
|
1 |
+
/* global job_manager_ajax_filters */
|
2 |
jQuery( document ).ready( function ( $ ) {
|
3 |
|
4 |
var xhr = [];
|
15 |
var featured = target.data( 'featured' );
|
16 |
var filled = target.data( 'filled' );
|
17 |
var index = $( 'div.job_listings' ).index(this);
|
18 |
+
var categories, keywords, location;
|
19 |
|
20 |
if ( index < 0 ) {
|
21 |
return;
|
30 |
$( 'li.job_listing, li.no_job_listings_found', results ).css( 'visibility', 'hidden' );
|
31 |
|
32 |
// Not appending. If page > 1, we should show a load previous button so the user can get to earlier-page listings if needed
|
33 |
+
if ( page > 1 && true !== target.data( 'show_pagination' ) ) {
|
34 |
$( results ).before( '<a class="load_more_jobs load_previous" href="#"><strong>' + job_manager_ajax_filters.i18n_load_prev_listings + '</strong></a>' );
|
35 |
} else {
|
36 |
target.find( '.load_previous' ).remove();
|
39 |
target.find( '.load_more_jobs' ).data( 'page', page );
|
40 |
}
|
41 |
|
42 |
+
if ( true === target.data( 'show_filters' ) ) {
|
43 |
|
44 |
var filter_job_type = [];
|
45 |
|
47 |
filter_job_type.push( $( this ).val() );
|
48 |
} );
|
49 |
|
50 |
+
categories = form.find( ':input[name^="search_categories"]' ).map( function () {
|
51 |
+
return $( this ).val();
|
52 |
} ).get();
|
53 |
+
keywords = '';
|
54 |
+
location = '';
|
55 |
var $keywords = form.find( ':input[name="search_keywords"]' );
|
56 |
var $location = form.find( ':input[name="search_location"]' );
|
57 |
|
82 |
|
83 |
} else {
|
84 |
|
85 |
+
categories = target.data( 'categories' );
|
86 |
+
keywords = target.data( 'keywords' );
|
87 |
+
location = target.data( 'location' );
|
88 |
|
89 |
if ( categories ) {
|
90 |
categories = categories.split( ',' );
|
108 |
|
109 |
xhr[index] = $.ajax( {
|
110 |
type: 'POST',
|
111 |
+
url: job_manager_ajax_filters.ajax_url.toString().replace( '%%endpoint%%', 'get_listings' ),
|
112 |
data: data,
|
113 |
success: function ( result ) {
|
114 |
if ( result ) {
|
135 |
}
|
136 |
}
|
137 |
|
138 |
+
if ( true === target.data( 'show_pagination' ) ) {
|
139 |
target.find('.job-manager-pagination').remove();
|
140 |
|
141 |
if ( result.pagination ) {
|
157 |
|
158 |
} catch ( err ) {
|
159 |
if ( window.console ) {
|
160 |
+
window.console.log( err );
|
161 |
}
|
162 |
}
|
163 |
}
|
164 |
},
|
165 |
error: function ( jqXHR, textStatus, error ) {
|
166 |
if ( window.console && 'abort' !== textStatus ) {
|
167 |
+
window.console.log( textStatus + ': ' + error );
|
168 |
}
|
169 |
},
|
170 |
statusCode: {
|
171 |
404: function() {
|
172 |
if ( window.console ) {
|
173 |
+
window.console.log( 'Error 404: Ajax Endpoint cannot be reached. Go to Settings > Permalinks and save to resolve.' );
|
174 |
}
|
175 |
}
|
176 |
}
|
183 |
job_manager_store_state( target, 1 );
|
184 |
} )
|
185 |
|
186 |
+
.on( 'keyup', function(e) {
|
187 |
if ( e.which === 13 ) {
|
188 |
$( this ).trigger( 'change' );
|
189 |
}
|
206 |
|
207 |
$( document.body ).on( 'click', '.load_more_jobs', function() {
|
208 |
var target = $( this ).closest( 'div.job_listings' );
|
209 |
+
var page = parseInt( ( $( this ).data( 'page' ) || 1 ), 10 );
|
210 |
var loading_previous = false;
|
211 |
|
212 |
$(this).addClass( 'loading' );
|
237 |
|
238 |
target.triggerHandler( 'update_results', [ page, false ] );
|
239 |
|
240 |
+
$( 'body, html' ).animate({
|
241 |
+
scrollTop: target.offset().top
|
242 |
+
}, 600 );
|
243 |
|
244 |
return false;
|
245 |
} );
|
246 |
|
247 |
if ( $.isFunction( $.fn.chosen ) ) {
|
248 |
+
if ( job_manager_ajax_filters.is_rtl === 1 ) {
|
249 |
$( 'select[name^="search_categories"]' ).addClass( 'chosen-rtl' );
|
250 |
}
|
251 |
$( 'select[name^="search_categories"]' ).chosen({ search_contains: true });
|
252 |
}
|
253 |
|
254 |
+
var $supports_html5_history = false;
|
255 |
if ( window.history && window.history.pushState ) {
|
256 |
$supports_html5_history = true;
|
|
|
|
|
257 |
}
|
258 |
|
259 |
var location = document.location.href.split('#')[0];
|
268 |
}
|
269 |
|
270 |
// Inital job and form population
|
271 |
+
$(window).on( 'load', function() {
|
272 |
$( '.job_filters' ).each( function() {
|
273 |
var target = $( this ).closest( 'div.job_listings' );
|
274 |
var form = target.find( '.job_filters' );
|
275 |
var inital_page = 1;
|
276 |
var index = $( 'div.job_listings' ).index( target );
|
277 |
|
278 |
+
if ( window.history.state && window.location.hash ) {
|
279 |
+
var state = window.history.state;
|
280 |
+
if ( state.id && 'job_manager_state' === state.id && index === state.index ) {
|
281 |
inital_page = state.page;
|
282 |
form.deserialize( state.data );
|
283 |
form.find( ':input[name^="search_categories"]' ).not(':input[type="hidden"]').trigger( 'chosen:updated' );
|
284 |
}
|
285 |
+
}
|
286 |
|
287 |
target.triggerHandler( 'update_results', [ inital_page, false ] );
|
288 |
+
});
|
289 |
});
|
290 |
} );
|
assets/js/ajax-filters.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
jQuery(document).ready(function(a){function b(b,c){if(
|
1 |
+
jQuery(document).ready(function(a){function b(b,c){if(d){var f=b.find(".job_filters"),g=a(f).serialize(),h=a("div.job_listings").index(b);window.history.replaceState({id:"job_manager_state",page:c,data:g,index:h},"",e+"#s=1")}}var c=[];a(".job_listings").on("update_results",function(b,d,e,f){var g,h,i,j="",k=a(this),l=k.find(".job_filters"),m=k.find(".showing_jobs"),n=k.find(".job_listings"),o=k.data("per_page"),p=k.data("orderby"),q=k.data("order"),r=k.data("featured"),s=k.data("filled"),t=a("div.job_listings").index(this);if(!(0>t)){if(c[t]&&c[t].abort(),e||(a(n).addClass("loading"),a("li.job_listing, li.no_job_listings_found",n).css("visibility","hidden"),d>1&&!0!==k.data("show_pagination")?a(n).before('<a class="load_more_jobs load_previous" href="#"><strong>'+job_manager_ajax_filters.i18n_load_prev_listings+"</strong></a>"):k.find(".load_previous").remove(),k.find(".load_more_jobs").data("page",d)),!0===k.data("show_filters")){var u=[];a(':input[name="filter_job_type[]"]:checked, :input[name="filter_job_type[]"][type="hidden"], :input[name="filter_job_type"]',l).each(function(){u.push(a(this).val())}),g=l.find(':input[name^="search_categories"]').map(function(){return a(this).val()}).get(),h="",i="";var v=l.find(':input[name="search_keywords"]'),w=l.find(':input[name="search_location"]');v.val()!==v.attr("placeholder")&&(h=v.val()),w.val()!==w.attr("placeholder")&&(i=w.val()),j={lang:job_manager_ajax_filters.lang,search_keywords:h,search_location:i,search_categories:g,filter_job_type:u,per_page:o,orderby:p,order:q,page:d,featured:r,filled:s,show_pagination:k.data("show_pagination"),form_data:l.serialize()}}else g=k.data("categories"),h=k.data("keywords"),i=k.data("location"),g&&(g=g.split(",")),j={lang:job_manager_ajax_filters.lang,search_categories:g,search_keywords:h,search_location:i,per_page:o,orderby:p,order:q,page:d,featured:r,filled:s,show_pagination:k.data("show_pagination")};c[t]=a.ajax({type:"POST",url:job_manager_ajax_filters.ajax_url.toString().replace("%%endpoint%%","get_listings"),data:j,success:function(b){if(b)try{b.showing?a(m).show().html("<span>"+b.showing+"</span>"+b.showing_links):a(m).hide(),b.showing_all?a(m).addClass("wp-job-manager-showing-all"):a(m).removeClass("wp-job-manager-showing-all"),b.html&&(e&&f?a(n).prepend(b.html):e?a(n).append(b.html):a(n).html(b.html)),!0===k.data("show_pagination")?(k.find(".job-manager-pagination").remove(),b.pagination&&k.append(b.pagination)):(!b.found_jobs||b.max_num_pages<=d?a(".load_more_jobs:not(.load_previous)",k).hide():f||a(".load_more_jobs",k).show(),a(".load_more_jobs",k).removeClass("loading"),a("li.job_listing",n).css("visibility","visible")),a(n).removeClass("loading"),k.triggerHandler("updated_results",b)}catch(c){window.console&&window.console.log(c)}},error:function(a,b,c){window.console&&"abort"!==b&&window.console.log(b+": "+c)},statusCode:{404:function(){window.console&&window.console.log("Error 404: Ajax Endpoint cannot be reached. Go to Settings > Permalinks and save to resolve.")}}})}}),a("#search_keywords, #search_location, .job_types :input, #search_categories, .job-manager-filter").change(function(){var c=a(this).closest("div.job_listings");c.triggerHandler("update_results",[1,!1]),b(c,1)}).on("keyup",function(b){13===b.which&&a(this).trigger("change")}),a(".job_filters").on("click",".reset",function(){var c=a(this).closest("div.job_listings"),d=a(this).closest("form");return d.find(':input[name="search_keywords"], :input[name="search_location"], .job-manager-filter').not(':input[type="hidden"]').val("").trigger("chosen:updated"),d.find(':input[name^="search_categories"]').not(':input[type="hidden"]').val(0).trigger("chosen:updated"),a(':input[name="filter_job_type[]"]',d).not(':input[type="hidden"]').attr("checked","checked"),c.triggerHandler("reset"),c.triggerHandler("update_results",[1,!1]),b(c,1),!1}),a(document.body).on("click",".load_more_jobs",function(){var c=a(this).closest("div.job_listings"),d=parseInt(a(this).data("page")||1,10),e=!1;return a(this).addClass("loading"),a(this).is(".load_previous")?(d-=1,e=!0,1===d?a(this).remove():a(this).data("page",d)):(d+=1,a(this).data("page",d),b(c,d)),c.triggerHandler("update_results",[d,!0,e]),!1}),a("div.job_listings").on("click",".job-manager-pagination a",function(){var c=a(this).closest("div.job_listings"),d=a(this).data("page");return b(c,d),c.triggerHandler("update_results",[d,!1]),a("body, html").animate({scrollTop:c.offset().top},600),!1}),a.isFunction(a.fn.chosen)&&(1===job_manager_ajax_filters.is_rtl&&a('select[name^="search_categories"]').addClass("chosen-rtl"),a('select[name^="search_categories"]').chosen({search_contains:!0}));var d=!1;window.history&&window.history.pushState&&(d=!0);var e=document.location.href.split("#")[0];a(window).on("load",function(){a(".job_filters").each(function(){var b=a(this).closest("div.job_listings"),c=b.find(".job_filters"),d=1,e=a("div.job_listings").index(b);if(window.history.state&&window.location.hash){var f=window.history.state;f.id&&"job_manager_state"===f.id&&e===f.index&&(d=f.page,c.deserialize(f.data),c.find(':input[name^="search_categories"]').not(':input[type="hidden"]').trigger("chosen:updated"))}b.triggerHandler("update_results",[d,!1])})})});
|
assets/js/job-application.js
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
jQuery(document).ready(function($) {
|
2 |
// Slide toggle
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
});
|
7 |
});
|
1 |
jQuery(document).ready(function($) {
|
2 |
// Slide toggle
|
3 |
+
$( '.application_details' ).hide();
|
4 |
+
$( '.application_button' ).click(function() {
|
5 |
+
$( '.application_details' ).slideToggle();
|
6 |
});
|
7 |
});
|
assets/js/job-application.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
jQuery(document).ready(function(a){
|
1 |
+
jQuery(document).ready(function(a){a(".application_details").hide(),a(".application_button").click(function(){a(".application_details").slideToggle()})});
|
assets/js/job-dashboard.js
CHANGED
@@ -1,7 +1,8 @@
|
|
|
|
1 |
jQuery(document).ready(function($) {
|
2 |
|
3 |
$('.job-dashboard-action-delete').click(function() {
|
4 |
-
return confirm( job_manager_job_dashboard.i18n_confirm_delete );
|
5 |
});
|
6 |
|
7 |
});
|
1 |
+
/* global job_manager_job_dashboard */
|
2 |
jQuery(document).ready(function($) {
|
3 |
|
4 |
$('.job-dashboard-action-delete').click(function() {
|
5 |
+
return window.confirm( job_manager_job_dashboard.i18n_confirm_delete );
|
6 |
});
|
7 |
|
8 |
});
|
assets/js/job-dashboard.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
jQuery(document).ready(function(a){a(".job-dashboard-action-delete").click(function(){return confirm(job_manager_job_dashboard.i18n_confirm_delete)})});
|
1 |
+
jQuery(document).ready(function(a){a(".job-dashboard-action-delete").click(function(){return window.confirm(job_manager_job_dashboard.i18n_confirm_delete)})});
|
assets/js/job-submission.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
jQuery(document).ready(function($) {
|
2 |
-
|
3 |
-
|
4 |
return false;
|
5 |
});
|
6 |
});
|
1 |
jQuery(document).ready(function($) {
|
2 |
+
$('body').on( 'click', '.job-manager-remove-uploaded-file', function() {
|
3 |
+
$(this).closest( '.job-manager-uploaded-file' ).remove();
|
4 |
return false;
|
5 |
});
|
6 |
});
|
assets/js/job-submission.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
jQuery(document).ready(function(a){
|
1 |
+
jQuery(document).ready(function(a){a("body").on("click",".job-manager-remove-uploaded-file",function(){return a(this).closest(".job-manager-uploaded-file").remove(),!1})});
|
assets/js/multiselect.js
CHANGED
@@ -1,3 +1,4 @@
|
|
|
|
1 |
jQuery(function(){
|
2 |
jQuery( '.job-manager-multiselect' ).chosen( job_manager_chosen_multiselect_args );
|
3 |
});
|
1 |
+
/* global job_manager_chosen_multiselect_args */
|
2 |
jQuery(function(){
|
3 |
jQuery( '.job-manager-multiselect' ).chosen( job_manager_chosen_multiselect_args );
|
4 |
});
|
assets/js/term-multiselect.js
CHANGED
@@ -1,3 +1,4 @@
|
|
|
|
1 |
jQuery(function(){
|
2 |
jQuery( '.job-manager-category-dropdown' ).chosen( job_manager_chosen_multiselect_args );
|
3 |
});
|
1 |
+
/* global job_manager_chosen_multiselect_args */
|
2 |
jQuery(function(){
|
3 |
jQuery( '.job-manager-category-dropdown' ).chosen( job_manager_chosen_multiselect_args );
|
4 |
});
|
changelog.txt
ADDED
@@ -0,0 +1,531 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
= 1.25.1 =
|
2 |
+
* Feature - Adds a view button to the Admin UI for easy access to submitted files or URLs. Props tripflex (https://github.com/Automattic/WP-Job-Manager/pull/650)
|
3 |
+
* Fix - Add hardening to file uploads to prevent accepting unexpected file times. Previously, other WP-allowed types were sometimes accepted.
|
4 |
+
* Fix - Job post form categories are now properly cached and displayed per language when using WPML or Polylang. (https://github.com/Automattic/WP-Job-Manager/issues/692)
|
5 |
+
* Fix - Refactored WPML workaround, which was causing no job listings on non-default languages. (https://github.com/Automattic/WP-Job-Manager/issues/617)
|
6 |
+
* Fix - Allow employers to edit job listings when a listing is pending payment. (https://github.com/Automattic/WP-Job-Manager/pull/664)
|
7 |
+
* Fix - No longer display Job Taxonomies in the WordPress tag cloud. (https://github.com/Automattic/WP-Job-Manager/pull/658)
|
8 |
+
* Fix - Migrate away from jQuery.live, which is no longer supported. ( https://github.com/Automattic/WP-Job-Manager/pull/664 )
|
9 |
+
* Tweak - Updated incorrect settings description. (https://github.com/Automattic/WP-Job-Manager/pull/632)
|
10 |
+
* Dev - Adds hook to add items in a job's RSS feed item. (https://github.com/Automattic/WP-Job-Manager/pull/636)
|
11 |
+
* Dev - Adds filter to disable Job Listings cache (https://github.com/Automattic/WP-Job-Manager/pull/684)
|
12 |
+
* Dev - Inline docs and coding standards improvements.
|
13 |
+
|
14 |
+
= 1.25.0 =
|
15 |
+
* Feature - Ability to duplicate listings from job dashboard.
|
16 |
+
* Fix - Support WP_EMBED in job descriptions.
|
17 |
+
* Fix - Ensure logo is displayed on edit, before submission.
|
18 |
+
* Fix - Attachment URLs on multisite.
|
19 |
+
* Fix - Refactored WPML workaround, which was causing no job listings on non-default languages. (https://github.com/Automattic/WP-Job-Manager/issues/617)
|
20 |
+
* Fix - No need to decode URLs anymore https://core.trac.wordpress.org/ticket/23605.
|
21 |
+
* Dev - submit_job_form_end/submit_job_form_start actions.
|
22 |
+
* Dev - job-manager-datepicker class for backend date fields.
|
23 |
+
|
24 |
+
= 1.24.0 =
|
25 |
+
* Feature - Use featured images to store company logos.
|
26 |
+
* Feature - Search term names for keywords.
|
27 |
+
* Feature - Search custom fields in backend job listing search.
|
28 |
+
* Tweak - Allow job expiry field to be localised.
|
29 |
+
* Fix - The above change avoids creation of duplicate images in media library.
|
30 |
+
* Dev - Added methods to WP_Job_Manager_Form; get_steps, get_step_key, set_step.
|
31 |
+
* Dev - Made WP_Job_Manager_Form call the next 'handler' if no view is defined for the next step.
|
32 |
+
* Dev - Added template to control job preview form.
|
33 |
+
|
34 |
+
= 1.23.13 =
|
35 |
+
* Fix - Conflict between the_job_location() and the regions plugin.
|
36 |
+
* Tweak - Allow some HTML in the_job_location - uses wp_kses_post.
|
37 |
+
|
38 |
+
= 1.23.12 =
|
39 |
+
* Fix - Transient clear query.
|
40 |
+
* Tweak - New user notification pluggable function.
|
41 |
+
* Tweak - Use subquery in keyword search to avoid long queries.
|
42 |
+
* Tweak - Only search for keywords of 2 or more characters.
|
43 |
+
* Tweak - job_manager_get_listings_keyword_length_threshold filter.
|
44 |
+
* Tweak - PolyLang compatibility functions.
|
45 |
+
* Tweak - Unattach company logo when a new attachment is uploaded.
|
46 |
+
|
47 |
+
= 1.23.11 =
|
48 |
+
* Fix - Author check in job_manager_user_can_edit_job().
|
49 |
+
* Tweak - Before deleting a job, delete its attachments.
|
50 |
+
* Tweak - Show previews in backend if needed.
|
51 |
+
|
52 |
+
= 1.23.10 =
|
53 |
+
* Fix - Handle WP 4.3 signup notification.
|
54 |
+
* Fix - Map mime types to those that WordPress knows.
|
55 |
+
* Fix - Alert text color.
|
56 |
+
* Fix - Searches containing special chars.
|
57 |
+
* Tweak - Improved uploader error handling and updated library.
|
58 |
+
* Tweak - Improve job_manager_user_can_post_job and job_manager_user_can_edit_job capability handling in job-submit.php
|
59 |
+
* Tweak - Clear transients in batches of 500.
|
60 |
+
* Tweak - Removed transifex and translations - translation will take place on https://translate.wordpress.org/projects/wp-plugins/wp-job-manager
|
61 |
+
|
62 |
+
= 1.23.9 =
|
63 |
+
* Fixed editing content with wp_editor. Can no longer be passed to function already escaped.
|
64 |
+
|
65 |
+
= 1.23.8 =
|
66 |
+
* Fix - Security: XSS issue in account signin.
|
67 |
+
* Tweak - Update new account email text.
|
68 |
+
|
69 |
+
= 1.23.7 =
|
70 |
+
* Fix - 4.3 issue showing "Description is a required field" due to editor field.
|
71 |
+
* Tweak - Default job_manager_delete_expired_jobs to false. Set to true to have expired jobs deleted automatically. More sensible default.
|
72 |
+
* Tweak - job_manager_term_select_field_wp_dropdown_categories_args filter.
|
73 |
+
* Tweak - Ajax WPML handling.
|
74 |
+
|
75 |
+
= 1.23.6 =
|
76 |
+
* Fix - job_manager_ajax_filters -> job_manager_ajax_file_upload in file upload script.
|
77 |
+
|
78 |
+
= 1.23.5 =
|
79 |
+
* Feature - Allow [job_summary] to output multiple listings via 'limit' parameter.
|
80 |
+
* Feature - Added flowplayer support.
|
81 |
+
* Fix - Special chars in feeds.
|
82 |
+
* Fix - Permalinks with index.php inside.
|
83 |
+
* Fix - Notice when saving job form.
|
84 |
+
* Fix - PHP4 widget constructors (https://gist.github.com/chriscct7/d7d077afb01011b1839d).
|
85 |
+
* Tweak - Allow translation of job_manager_dropdown_categories.
|
86 |
+
* Tweak - Added handling for .job-manager-filter class.
|
87 |
+
* Tweak - Added trailing slashes to ajax endpoints.
|
88 |
+
* Tweak - Made videos responsive.
|
89 |
+
* Tweak - job_manager_attach_uploaded_files filter.
|
90 |
+
|
91 |
+
= 1.23.4 =
|
92 |
+
* Tweak - In 1.21.0 we switched to GET ajax requests to leverage caching, however, due to the length of some queries this was causing 414 request URI too long errors in many environments. Reverted to POST to avoid this.
|
93 |
+
* Tweak - flush_rewrite_rules after updates to ensure ajax endpoint exists.
|
94 |
+
* Tweak - Use relative path for ajax endpoint to work around https/http.
|
95 |
+
|
96 |
+
= 1.23.3 =
|
97 |
+
* Fix - WPML integration with lang.
|
98 |
+
* Tweak - Improved plugin activation code.
|
99 |
+
* Tweak - Improved theme switch code.
|
100 |
+
* Tweak - Search the entire meta field, not just from the start.
|
101 |
+
* Tweak - Added some debugging code to ajax-filters to display in console.
|
102 |
+
|
103 |
+
= 1.23.2 =
|
104 |
+
* Fix - Send entire form data (listify workaround).
|
105 |
+
* Fix - Set is_home false on ajax endpoint (listify workaround).
|
106 |
+
|
107 |
+
= 1.23.1 =
|
108 |
+
* Fix - Orderby featured should be "menu order, date", not "manu order, title".
|
109 |
+
* Tweak - Remove duplicate data from form_data in filters JS.
|
110 |
+
* Tweak - If index is -1 in filters JS, abort.
|
111 |
+
|
112 |
+
= 1.23.0 =
|
113 |
+
* Feature - Custom AJAX endpoints to reduce overhead of loading admin.
|
114 |
+
* Feature - Support radio fields.
|
115 |
+
* Fix - Video max width.
|
116 |
+
* Tweak - Admin remove overflow hidden from data box.
|
117 |
+
* Tweak - Update notice styling.
|
118 |
+
* Tweak - Improve orderby. https://make.wordpress.org/core/2014/08/29/a-more-powerful-order-by-in-wordpress-4-0/
|
119 |
+
* Tweak - nofollow apply links.
|
120 |
+
* Tweak - Rename 'title' to 'job title' for clarity.
|
121 |
+
* Tweak - submit_job_form_prefix_post_name_with_company filter.
|
122 |
+
* Tweak - submit_job_form_prefix_post_name_with_location filter.
|
123 |
+
* Tweak - submit_job_form_prefix_post_name_with_job_type filter.
|
124 |
+
* Tweak - Improved job_feed searching.
|
125 |
+
* Tweak - Improved transient cleaning.
|
126 |
+
|
127 |
+
= 1.22.3 =
|
128 |
+
* Fix frontend listing edits.
|
129 |
+
|
130 |
+
= 1.22.2 =
|
131 |
+
* Tweak - Set form actions to current page.
|
132 |
+
* Fix - Video embeds.
|
133 |
+
* Fix - Load textdomain before post types are registered.
|
134 |
+
|
135 |
+
= 1.22.1 =
|
136 |
+
* Fix - It's 2015, but some people are still running PHP 5.2. Compatibility fix.
|
137 |
+
|
138 |
+
= 1.22.0 =
|
139 |
+
* Tweak - Refactored form classes to be instance based rather than static. Reduction in code base.
|
140 |
+
* Tweak - Admin styling of the job data panels.
|
141 |
+
* Tweak - Admin styling of the status column.
|
142 |
+
* Tweak - Better handling of the expiry field.
|
143 |
+
* Tweak - Search _geolocation_state_long.
|
144 |
+
* Tweak - Allow admin fields to have custom 'name'.
|
145 |
+
* Tweak - Use wp_video_shortcode instead of oembed directly.
|
146 |
+
* Tweak - Tweak menu order code for featured jobs - use -1 for featured and leave other jobs alone.
|
147 |
+
* Tweak - Clear expired date when publishing an expired listing.
|
148 |
+
* Tweak - clear_expired_transients function.
|
149 |
+
* Fix - Prevent term-checklist being disabled for guests.
|
150 |
+
* Fix - Add WPML var to transient name.
|
151 |
+
* Fix - Remove use of create_function.
|
152 |
+
|
153 |
+
= 1.21.4 =
|
154 |
+
* Fix - get_job_listings_keyword_search keyword search.
|
155 |
+
* Fix - Clear term cache when terms are set for any object.
|
156 |
+
* Fix - Legacy uploads.
|
157 |
+
* Tweak - RTL improvements.
|
158 |
+
* Tweak - Use RLIKE to search keywords in content.
|
159 |
+
* Tweak - Show relative pagination.
|
160 |
+
* Updated translations.
|
161 |
+
* Arabic translation by Mamdouh Samy.
|
162 |
+
|
163 |
+
= 1.21.3 =
|
164 |
+
* Feature - Support posts_per_page in feed.
|
165 |
+
* Fix - Correctly set menu_order when creating a new job, or updating featured status.
|
166 |
+
* Fix - Updater when there are no featured jobs.
|
167 |
+
* Fix - Add geolocation_street_number to clear_location_data.
|
168 |
+
|
169 |
+
= 1.21.2 =
|
170 |
+
* Fix - Remove requried attribute from file input.
|
171 |
+
|
172 |
+
= 1.21.1 =
|
173 |
+
* Fix - Remove file type check when field is not required and empty.
|
174 |
+
* Fix - Hide "Applications have closed" for previews.
|
175 |
+
|
176 |
+
= 1.21.0 =
|
177 |
+
* Feature - Ajax loading history - back button will take you back to current position in the search. If you are on > page 1, a 'load previous' button will be shown so you can paginate either way.
|
178 |
+
* Feature - Ajax file upload during job submission.
|
179 |
+
* Feature - Cookie set when submitting a job to allow resuming if you leave the page.
|
180 |
+
* Feature - job_apply shortcode to show application area in other places on your site.
|
181 |
+
* Feature - Allow admin fields to be priority sorted.
|
182 |
+
* Feature - Featured job widget.
|
183 |
+
* Feature - Scroll to top on pagination click.
|
184 |
+
* Feature - Option to "Hide content within expired listings". If disabled, expired listings will be listed normally with applications disabled.
|
185 |
+
* Fix - Prevent attachments being uploaded several times.
|
186 |
+
* Fix - Expiry date on first save.
|
187 |
+
* Fix - Relist should go back to form.
|
188 |
+
* Fix - jquery.com CDN for CSS.
|
189 |
+
* Tweak - Geocode street and street number separately.
|
190 |
+
* Tweak - File upload field markup.
|
191 |
+
* Tweak - Added filters around taxonomy definition.
|
192 |
+
* Tweak - Chanced search logic/query to use the new meta queries in 4.1.
|
193 |
+
* Tweak - Implement transient caching for searches.
|
194 |
+
* Tweak - Removed wp_dropdown_user due to performance concerns.
|
195 |
+
* Tweak - Use menu_order to make featured listings sticky. Improves performance.
|
196 |
+
* Tweak - Retrieve AJAX jobs with GET rather than POST request to take advantage of more caching. Plugins looking for POST data will need to update to look for GET/REQUEST instead.
|
197 |
+
* Tweak - Prevent themes that (sigh) mess with content hooks from breaking inputs.
|
198 |
+
* Tweak - Remove unused job-category field.
|
199 |
+
* Tweak - Hide company div if company name missing.
|
200 |
+
|
201 |
+
= 1.20.1 =
|
202 |
+
* Fix - Core template overrides.
|
203 |
+
* Updated localisations.
|
204 |
+
|
205 |
+
= 1.20.0 =
|
206 |
+
* Feature - Sortable location column in admin.
|
207 |
+
* Feature - Automatically Generate Username from Email Address option (disable to show a username field).
|
208 |
+
* Feature - 'filled' option for job shortcode to show all filled/non filled jobs.
|
209 |
+
* Fix - Pagination with default permalinks.
|
210 |
+
* Fix - Correctly generate geolocation data when adding a post manually.
|
211 |
+
* Fix - Chosen width when resizing the page.
|
212 |
+
* Fix - Show no jobs when all types de-selected.
|
213 |
+
* Tweak - content-widget-no-jobs-found.php template file.
|
214 |
+
* Tweak - Don't limit keyword search query functions to published jobs.
|
215 |
+
* Tweak - job_manager_output_jobs_no_results action.
|
216 |
+
* Tweak - No results template hooked into job_manager_output_jobs_no_results.
|
217 |
+
* Tweak - Changed content-no-jobs-found.php content to work for ajax and static lists of jobs. Tweaked text.
|
218 |
+
* Tweak - job_manager_default_company_logo filter for changing default company image.
|
219 |
+
* Tweak - Enhance multiselect field with chosen.
|
220 |
+
* Dev - Abiltiy to pass shortcode args to submit_job_form shortcode.
|
221 |
+
* Dev - Made get_job_manager_template_part() use locate_job_manager_template().
|
222 |
+
* Dev - Changed how username/email/role are passed to wp_job_manager_create_account (backwards compat).
|
223 |
+
|
224 |
+
= 1.19.0 =
|
225 |
+
* Feature - Added html5 required attribute to required fields.
|
226 |
+
* Feature - Added compatibility with RP4WP.
|
227 |
+
* Fix - Chosen RTL.
|
228 |
+
* Fix - Addded additonal check to check edit capabilities.
|
229 |
+
* Fix - Add correct step input to submission form.
|
230 |
+
* Tweak - Add CSS class to 'showing' bar when shoing all results (no filters).
|
231 |
+
* Tweak - Geocode, use sublocality_level_1 as city.
|
232 |
+
* Tweak - Don't update slug when editing via the frontend.
|
233 |
+
* Tweak - Set default meta data for new jobs.
|
234 |
+
* Tweak - Add geolocation data after import with WP ALL Import.
|
235 |
+
* Tweak - Filter to disable chosen: job_manager_chosen_enabled
|
236 |
+
* Tweak - Login link on job dashboard. job-dashboard-login.php template file.
|
237 |
+
* Tweak - Made backend management honour capabilities of users. Props to minderdl.
|
238 |
+
|
239 |
+
= 1.18.0 =
|
240 |
+
* Fix - Keep post name when pending job is posted by non-admin.
|
241 |
+
* Fix - Prevent special chars breaking the feeds.
|
242 |
+
* Tweak - Added new capabilities for all aspects of Job Listing Management. e.g. edit_job_listings, add_job_listing etc etc. Admin role will be updated on activation/upgrade. If you use custom roles, you'll need to edit them to grant access to the parts you wish.
|
243 |
+
* Tweak - Improved uninstaller.
|
244 |
+
* Tweak - Clear location data should include geolocation_postcode.
|
245 |
+
* Tweak - Always show 'showing' bar, but conditonally show 'reset' link.
|
246 |
+
* Tweak - Trigger geolocation whenever location field is saved, even by 3rd parties.
|
247 |
+
|
248 |
+
= 1.17.0 =
|
249 |
+
* Feature - job_manager_user_can_edit_pending_submissions function and setting.
|
250 |
+
* Feature - Job summary shortcode - support random display of job (featured or non featured).
|
251 |
+
* Feature - In admin, when clicking an author name show all jobs for that author.
|
252 |
+
* Tweak - Added sanitization function to form class to handle strings and arrays.
|
253 |
+
|
254 |
+
= 1.16.1 =
|
255 |
+
* Fix - Use triggerHandler() instead of trigger() in ajax-filters to prevent events bubbling up.
|
256 |
+
* Fix - Append current 'lang' to AJAX calls for WPML.
|
257 |
+
* Fix - When specifying categories on the jobs shortcode, don't clear those categories on reset.
|
258 |
+
* Tweak - Added job_manager_admin_screen_ids filter.
|
259 |
+
|
260 |
+
= 1.16.0 =
|
261 |
+
* Added setup wizard for new installs that creates pages/shortcodes automatically.
|
262 |
+
* Added job_manager_get_permalink function.
|
263 |
+
* Fix - Only show website link when actually set.
|
264 |
+
* Fix - Only validate application when field is set.
|
265 |
+
* Tweak - Added description to all fields.
|
266 |
+
* Tweak - Added better setting fields for defining which pages contain the shortcodes.
|
267 |
+
* Tweak - Nofollow website links.
|
268 |
+
* Tweak - Removed font-sizes from default CSS and fixed display in default WP themes.
|
269 |
+
|
270 |
+
= 1.15.0 =
|
271 |
+
* Added location/keyword option to recent jobs widget.
|
272 |
+
* Added job-listings-start and job-listings-end.php templates for customisation the wrapping elements.
|
273 |
+
* Added filter type option for job categories. Can be set to require matching to any or all selected categories.
|
274 |
+
* Added checkbox field type for forms.
|
275 |
+
* Made backend application email field default to logged in user.
|
276 |
+
* Fix - job_manager_get_resized_image to not error when it cannot read the image file.
|
277 |
+
* Fix - Make admin_url relative.
|
278 |
+
* Fix - Chosen CSS cutting off the placeholder in Firefox.
|
279 |
+
* Fix - Added _company_video in backend.
|
280 |
+
|
281 |
+
= 1.14.0 =
|
282 |
+
* Extra filters for the filters template.
|
283 |
+
* Changed text strings for easier customisations based on post type labels, and made some strings more generic.
|
284 |
+
* New field types - term-checklist, term-multiselect, term-select. These save terms only.
|
285 |
+
* Added chosen javascript to enhance multiselect boxes when needed.
|
286 |
+
* Multiple category support.
|
287 |
+
* Attach Images on Upload to the job posts.
|
288 |
+
* Added an option to show a multiselect for categories on the job filters.
|
289 |
+
* Enabled chosen() for the job category filter.
|
290 |
+
* Added content-single-job_listing-company.php and content-single-job_listing-meta.php templates. These are hooked in.
|
291 |
+
* Added optional company video field to submission form.
|
292 |
+
* Video appended to company information box.
|
293 |
+
* the_company_video() and get_the_company_video() functions.
|
294 |
+
* show_more="false" for jobs shortcode to prevent loading more jobs.
|
295 |
+
* job_manager_delete_expired_jobs filter (__return_false to disable expired job deletion).
|
296 |
+
* job_manager_delete_expired_jobs_days filter (set number of days before deletion - default is 30).
|
297 |
+
* Support HTML5 multiple attribute for file upload field. Pass multiple=>'true' to form field definition to enable.
|
298 |
+
* Later loading for template functions.
|
299 |
+
|
300 |
+
= 1.13.0 =
|
301 |
+
* Shortcode arg to show numbered pagination instead of 'load more jobs'. show_pagination argument.
|
302 |
+
* Define support for Jetpack publicize.
|
303 |
+
* Show company name alt text for company logo.
|
304 |
+
* Sort jobs by title, date, expirey date.
|
305 |
+
* Added noscript element for jobs shortcode.
|
306 |
+
* filter_var to validate URLs on the job submission form.
|
307 |
+
|
308 |
+
= 1.12.1 =
|
309 |
+
* Job submission form categories must not hide empty categories.
|
310 |
+
|
311 |
+
= 1.12.0 =
|
312 |
+
* On the job submission form, display hierarchical categories.
|
313 |
+
* Use job_manager_ prefixed hooks for registration (register_post/registration_errors/register_form) to prevent issues with Captcha plugins.
|
314 |
+
* Pass $post to job_manager_application_email_subject
|
315 |
+
* Additonal hooks in job-filters template, and moved out job types output to separate template file.
|
316 |
+
* Option to set the job dashboard page slug so plugins know where to look.
|
317 |
+
* Allow you@yourdomain.com to be translated.
|
318 |
+
* Make taxonomies hidden unless current_theme_supports( 'job-manager-templates' )
|
319 |
+
* Adjusted job application area styling and added some additonal filters.
|
320 |
+
* Improve backend order status selection.
|
321 |
+
* Added some responsive styles for job lists.
|
322 |
+
* Allow users to relist a job from the frontend. (Ensure WC Paid Listings and Simple Paid Listings are updated to support this).
|
323 |
+
|
324 |
+
= 1.11.1 =
|
325 |
+
* Fix ajax filters 'true' for show_filters
|
326 |
+
* Fix geocoding for certain address strings
|
327 |
+
* Fix keywords typo
|
328 |
+
* Remove deprecated $wpdb->escape calls. Replaced with esc_sql
|
329 |
+
|
330 |
+
= 1.11.0 =
|
331 |
+
* Switch geocode to json and improve error checking.
|
332 |
+
* If query limit is reached, stop making requests for a while.
|
333 |
+
* Added extra data inside job_feed.
|
334 |
+
* Few extra icons in font.
|
335 |
+
* Additonal hooks in single template.
|
336 |
+
* Pick up search_category from querystring to set default/selected category.
|
337 |
+
* Ability to define selected_job_types for the jobs shortcode which will set the default job type filters.
|
338 |
+
* Took out show_featured_only arg for the [jobs] shortcode and added 'featured' which can be set to true or false to show or hide featured jobs, or left null to show both.
|
339 |
+
* Removed nonce from frontend job submission form to prevent issues with caching.
|
340 |
+
|
341 |
+
= 1.10.0 =
|
342 |
+
* Trigger change on 'enter' when filtering jobs.
|
343 |
+
* Updated add-ons page to pull from wpjobmanager.com.
|
344 |
+
* Updated links.
|
345 |
+
* Fixed support for custom upload URLs.
|
346 |
+
* Choose/limit application method to email, url or either.
|
347 |
+
* Default application value (if logged in) set to user's email address.
|
348 |
+
* show_featured_only option for [jobs] shortcode.
|
349 |
+
* Add required-field class around required inputs.
|
350 |
+
* Enable paste as text in wp-editor field.
|
351 |
+
|
352 |
+
= 1.9.3 =
|
353 |
+
* Fix email URLs.
|
354 |
+
* Target blank for application URLs.
|
355 |
+
* Add posted by (author) setting in backend.
|
356 |
+
* When saving jobs, ensure _featured and _filled are set.
|
357 |
+
* Load admin scripts conditionally.
|
358 |
+
|
359 |
+
= 1.9.2 =
|
360 |
+
* Fix missing parameter in application_details_url causing URLs to be missing when applying.
|
361 |
+
|
362 |
+
= 1.9.1 =
|
363 |
+
* Removed resource heavy 'default_meta' function from the installation process.
|
364 |
+
|
365 |
+
= 1.9.0 =
|
366 |
+
* Template - Split off URL and email application methods and added new hooks. This allows other plugins to manipulate the content.
|
367 |
+
* Pass $values to edit job save function so permalinks are preserved.
|
368 |
+
* When showing filters, ensure we check by slug if category is non-numeric.
|
369 |
+
* Give listings ul a min height so that loading image is visible.
|
370 |
+
* content-no-jobs-found.php template.
|
371 |
+
* Fix apostrophe direction in signin template.
|
372 |
+
* Bulk expire jobs.
|
373 |
+
* submit_job_form_required_label hook.
|
374 |
+
* ability to set default state for selects on submit form.
|
375 |
+
* allow passed in classes in get_job_listing_class function.
|
376 |
+
* Hook in the content only if in_the_loop(). Fixes issues with jobify and yoast SEO.
|
377 |
+
* Removed .clear mixin to prevent theme conflicts.
|
378 |
+
|
379 |
+
= 1.8.2 =
|
380 |
+
* For initial load, target all .job_filters areas. Jobify compat.
|
381 |
+
|
382 |
+
= 1.8.1 =
|
383 |
+
* Fix - Corrected check to see if any category terms with jobs exist
|
384 |
+
|
385 |
+
= 1.8.0 =
|
386 |
+
* Feature - Take search/location vars from the querystring if set
|
387 |
+
* Feature - Option to choose role for registration, and added an 'employer' role.
|
388 |
+
* Feature - Support for comma separated keywords when searching
|
389 |
+
* Fix - Use add_post_meta when editing a job to maintain featured status
|
390 |
+
* Fix - category ordering
|
391 |
+
* Fix - searching for keyword + location at the same time
|
392 |
+
* Fix - Only show categories select box when they exist
|
393 |
+
* Dev - job_manager_application_email_subject filter
|
394 |
+
|
395 |
+
= 1.7.3 =
|
396 |
+
* Some changes to file uploads to support custom mime types
|
397 |
+
* Updated icon file (http://fontello.com/)
|
398 |
+
* Fix category rss links
|
399 |
+
* When doing a location search, search geolocation data
|
400 |
+
* Fix notices when removing all company fields
|
401 |
+
* Made jslint happy with ajax-filters.js
|
402 |
+
* Use get_option( 'default_role' ) when creating a user
|
403 |
+
* Grunt for release
|
404 |
+
|
405 |
+
= 1.7.2 =
|
406 |
+
* Preserve line breaks when saving textarea fields in admin
|
407 |
+
* Hide 'showing all x' when no filters are chosen.
|
408 |
+
* Register 'preview' status so that the counts are correct.
|
409 |
+
* Delete previews via cron job.
|
410 |
+
|
411 |
+
= 1.7.1 =
|
412 |
+
* Updated textdomain to wp-job-manager
|
413 |
+
* Re-done .pot file
|
414 |
+
* Additonal filters for ajax responses
|
415 |
+
* Moved localisations to Transifex https://www.transifex.com/projects/p/wp-job-manager/
|
416 |
+
|
417 |
+
= 1.7.0 =
|
418 |
+
* Added geolocation to save location data to meta after posting or saving a job. This will be used by other plugins.
|
419 |
+
* Filter job_manager_geolocation_enabled and return false to turn off geolocation features.
|
420 |
+
* Jobs shortcode can now be passed 'location' and 'keywords' to set the default for filters, or show only jobs with those keywords if filters are disabled
|
421 |
+
* Html fix in widget
|
422 |
+
* Add border around wp editor
|
423 |
+
* Fix company logo in firefox
|
424 |
+
* submit_job_form_wp_editor_args filter
|
425 |
+
* "Empty" categories are visible when filtering jobs in admin.
|
426 |
+
|
427 |
+
= 1.6.0 =
|
428 |
+
* MP6/WP 3.8 optimised styling. Min version 3.8 for new styling.
|
429 |
+
* Removed images previously used in admin.
|
430 |
+
* Tweak the_company_logo() to check if logo is valid URL.
|
431 |
+
* Replaced Genericons with custom set
|
432 |
+
* Only show link to view job on dashboard when published
|
433 |
+
|
434 |
+
= 1.5.2 =
|
435 |
+
* Fix wp-editor field
|
436 |
+
* Fix editing job images
|
437 |
+
|
438 |
+
= 1.5.1 =
|
439 |
+
* Changed get_the_time to get_post_time
|
440 |
+
* Added textarea and wp-editor to form api
|
441 |
+
* When using the job submit form, generate a more unqiue slug for the job - company-location-type-job-title
|
442 |
+
* Ability to remove image from job submission form
|
443 |
+
* Update icon font
|
444 |
+
* Fix job_types filters
|
445 |
+
* Field_select in admin
|
446 |
+
* Fix access control on job editing
|
447 |
+
* Job forms multiselect support
|
448 |
+
|
449 |
+
= 1.5.0 =
|
450 |
+
* Ability to edit job expiration date manually via admin
|
451 |
+
* Settings API: Password field
|
452 |
+
* Frontend Forms: Password field
|
453 |
+
* Correctly turn off expiration when 'days' is not set
|
454 |
+
* Greek should be el_GR
|
455 |
+
* Settings: Use key for tabs - fixes issues with locales
|
456 |
+
* Show pending count in admin menu
|
457 |
+
* Added job_types argument to jobs shortcode to show jobs of a certain type only
|
458 |
+
* Hierarchical dropdown for categories on filter form
|
459 |
+
* job_manager_job_submitted hook in submission form
|
460 |
+
|
461 |
+
= 1.4.0 =
|
462 |
+
* Added pagination to the job dashboard to avoid memory issues
|
463 |
+
* Schema.org markup for job listings
|
464 |
+
* Greek translation by Ioannis Arsenis
|
465 |
+
|
466 |
+
= 1.3.1 =
|
467 |
+
* Remove line breaks from markup to prevent theme issues
|
468 |
+
|
469 |
+
= 1.3.0 =
|
470 |
+
* When using the [jobs] shortcode without filters, if jobs > per-page show the 'load more' link
|
471 |
+
* Clearfix for meta div
|
472 |
+
* Hooked up $size option for company logos
|
473 |
+
* submit_job_form_save_job_data filter
|
474 |
+
* Italian translation
|
475 |
+
* Brazillian Portuguese translation
|
476 |
+
* Respect other plugin columns in admin
|
477 |
+
* Re-arranged admin columns to show less non-useful data
|
478 |
+
|
479 |
+
= 1.2.0 =
|
480 |
+
* Support for featured job listings
|
481 |
+
* Support for meta job duration
|
482 |
+
* set_expirey when publishing jobs from admin manually
|
483 |
+
* Update handler
|
484 |
+
|
485 |
+
= 1.1.3 =
|
486 |
+
* Corrected form field label
|
487 |
+
* Added french translation by Remi Corson
|
488 |
+
|
489 |
+
= 1.1.2 =
|
490 |
+
* job_manager_get_dashboard_jobs_args filter
|
491 |
+
* Better handling of submit job steps.
|
492 |
+
* Option to store the slug of the submit job page - used by addons.
|
493 |
+
* Use :input in JS to support multiple input types if customised.
|
494 |
+
|
495 |
+
= 1.1.1 =
|
496 |
+
* Improved accuracy of job search
|
497 |
+
* Fixed category filter dropdown in admin
|
498 |
+
|
499 |
+
= 1.1.0 =
|
500 |
+
* Tweaked css clearfixes
|
501 |
+
* Use built in antispambot for encoding email.
|
502 |
+
* job_manager_job_filters_showing_jobs_links filter
|
503 |
+
* IE8 Apply filters JS fix
|
504 |
+
* Fix spanish locale
|
505 |
+
* Fixed strict standards errors
|
506 |
+
* Improve 2013 Styles
|
507 |
+
* Addons page. Disabled usings add_filter( 'job_manager_show_addons_page', '__return_false' );
|
508 |
+
|
509 |
+
= 1.0.5 =
|
510 |
+
* Added function to get listings by certain criteria.
|
511 |
+
* Added ES translation.
|
512 |
+
* Fix job feed when no args are present.
|
513 |
+
|
514 |
+
= 1.0.4 =
|
515 |
+
* More hooks in the submit process.
|
516 |
+
* Hide apply button if url/email is unset.
|
517 |
+
|
518 |
+
= 1.0.3 =
|
519 |
+
* Some extra hooks in job-filters.php
|
520 |
+
* Added a workaround for scripts which bork placeholders inside the job filters.
|
521 |
+
|
522 |
+
= 1.0.2 =
|
523 |
+
* Action in update_job_data() to allow saving of extra fields.
|
524 |
+
* Added German translation by Chris Penning
|
525 |
+
|
526 |
+
= 1.0.1 =
|
527 |
+
* Slight tweak to listing field filters in admin.
|
528 |
+
* 'attributes' argument for admin settings.
|
529 |
+
|
530 |
+
= 1.0.0 =
|
531 |
+
* First stable release.
|
includes/abstracts/abstract-wp-job-manager-form.php
CHANGED
@@ -7,12 +7,53 @@
|
|
7 |
*/
|
8 |
abstract class WP_Job_Manager_Form {
|
9 |
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
16 |
|
17 |
/**
|
18 |
* Cloning is forbidden.
|
@@ -326,14 +367,17 @@ abstract class WP_Job_Manager_Form {
|
|
326 |
if ( ! empty( $field['allowed_mime_types'] ) ) {
|
327 |
$allowed_mime_types = $field['allowed_mime_types'];
|
328 |
} else {
|
329 |
-
$allowed_mime_types =
|
330 |
}
|
331 |
|
332 |
$file_urls = array();
|
333 |
$files_to_upload = job_manager_prepare_uploaded_files( $_FILES[ $field_key ] );
|
334 |
|
335 |
foreach ( $files_to_upload as $file_to_upload ) {
|
336 |
-
$uploaded_file = job_manager_upload_file( $file_to_upload, array(
|
|
|
|
|
|
|
337 |
|
338 |
if ( is_wp_error( $uploaded_file ) ) {
|
339 |
throw new Exception( $uploaded_file->get_error_message() );
|
7 |
*/
|
8 |
abstract class WP_Job_Manager_Form {
|
9 |
|
10 |
+
/**
|
11 |
+
* Form fields
|
12 |
+
*
|
13 |
+
* @access protected
|
14 |
+
* @var array
|
15 |
+
*/
|
16 |
+
protected $fields = array();
|
17 |
+
|
18 |
+
/**
|
19 |
+
* Form action
|
20 |
+
*
|
21 |
+
* @access protected
|
22 |
+
* @var string
|
23 |
+
*/
|
24 |
+
protected $action = '';
|
25 |
+
|
26 |
+
/**
|
27 |
+
* Form errors
|
28 |
+
*
|
29 |
+
* @access protected
|
30 |
+
* @var array
|
31 |
+
*/
|
32 |
+
protected $errors = array();
|
33 |
+
|
34 |
+
/**
|
35 |
+
* Form steps
|
36 |
+
*
|
37 |
+
* @access protected
|
38 |
+
* @var array
|
39 |
+
*/
|
40 |
+
protected $steps = array();
|
41 |
+
|
42 |
+
/**
|
43 |
+
* Form step
|
44 |
+
*
|
45 |
+
* @access protected
|
46 |
+
* @var int
|
47 |
+
*/
|
48 |
+
protected $step = 0;
|
49 |
+
|
50 |
+
/**
|
51 |
+
* Form fields
|
52 |
+
*
|
53 |
+
* @access protected
|
54 |
+
* @var string
|
55 |
+
*/
|
56 |
+
public $form_name = '';
|
57 |
|
58 |
/**
|
59 |
* Cloning is forbidden.
|
367 |
if ( ! empty( $field['allowed_mime_types'] ) ) {
|
368 |
$allowed_mime_types = $field['allowed_mime_types'];
|
369 |
} else {
|
370 |
+
$allowed_mime_types = job_manager_get_allowed_mime_types();
|
371 |
}
|
372 |
|
373 |
$file_urls = array();
|
374 |
$files_to_upload = job_manager_prepare_uploaded_files( $_FILES[ $field_key ] );
|
375 |
|
376 |
foreach ( $files_to_upload as $file_to_upload ) {
|
377 |
+
$uploaded_file = job_manager_upload_file( $file_to_upload, array(
|
378 |
+
'file_key' => $field_key,
|
379 |
+
'allowed_mime_types' => $allowed_mime_types,
|
380 |
+
) );
|
381 |
|
382 |
if ( is_wp_error( $uploaded_file ) ) {
|
383 |
throw new Exception( $uploaded_file->get_error_message() );
|
includes/admin/class-wp-job-manager-settings.php
CHANGED
@@ -89,7 +89,7 @@ class WP_Job_Manager_Settings {
|
|
89 |
'name' => 'job_manager_category_filter_type',
|
90 |
'std' => 'any',
|
91 |
'label' => __( 'Category Filter Type', 'wp-job-manager' ),
|
92 |
-
'desc' => __( '
|
93 |
'type' => 'select',
|
94 |
'options' => array(
|
95 |
'any' => __( 'Jobs will be shown if within ANY selected category', 'wp-job-manager' ),
|
89 |
'name' => 'job_manager_category_filter_type',
|
90 |
'std' => 'any',
|
91 |
'label' => __( 'Category Filter Type', 'wp-job-manager' ),
|
92 |
+
'desc' => __( 'Determines the logic used to display jobs when selecting multiple categories.', 'wp-job-manager' ),
|
93 |
'type' => 'select',
|
94 |
'options' => array(
|
95 |
'any' => __( 'Jobs will be shown if within ANY selected category', 'wp-job-manager' ),
|
includes/admin/class-wp-job-manager-writepanels.php
CHANGED
@@ -151,13 +151,13 @@ class WP_Job_Manager_Writepanels {
|
|
151 |
<?php
|
152 |
if ( ! empty( $field['multiple'] ) ) {
|
153 |
foreach ( (array) $field['value'] as $value ) {
|
154 |
-
?><span class="file_url"><input type="text" name="<?php echo esc_attr( $name ); ?>[]" placeholder="<?php echo esc_attr( $field['placeholder'] ); ?>" value="<?php echo esc_attr( $value ); ?>" /><button class="button button-small wp_job_manager_upload_file_button" data-uploader_button_text="<?php _e( 'Use file', 'wp-job-manager' ); ?>"><?php _e( 'Upload', 'wp-job-manager' ); ?></button></span><?php
|
155 |
}
|
156 |
} else {
|
157 |
-
?><span class="file_url"><input type="text" name="<?php echo esc_attr( $name ); ?>" id="<?php echo esc_attr( $key ); ?>" placeholder="<?php echo esc_attr( $field['placeholder'] ); ?>" value="<?php echo esc_attr( $field['value'] ); ?>" /><button class="button button-small wp_job_manager_upload_file_button" data-uploader_button_text="<?php _e( 'Use file', 'wp-job-manager' ); ?>"><?php _e( 'Upload', 'wp-job-manager' ); ?></button></span><?php
|
158 |
}
|
159 |
if ( ! empty( $field['multiple'] ) ) {
|
160 |
-
?><button class="button button-small wp_job_manager_add_another_file_button" data-field_name="<?php echo esc_attr( $key ); ?>" data-field_placeholder="<?php echo esc_attr( $field['placeholder'] ); ?>" data-uploader_button_text="<?php _e( 'Use file', 'wp-job-manager' ); ?>" data-uploader_button="<?php _e( 'Upload', 'wp-job-manager' ); ?>"><?php _e( 'Add file', 'wp-job-manager' ); ?></button><?php
|
161 |
}
|
162 |
?>
|
163 |
</p>
|
151 |
<?php
|
152 |
if ( ! empty( $field['multiple'] ) ) {
|
153 |
foreach ( (array) $field['value'] as $value ) {
|
154 |
+
?><span class="file_url"><input type="text" name="<?php echo esc_attr( $name ); ?>[]" placeholder="<?php echo esc_attr( $field['placeholder'] ); ?>" value="<?php echo esc_attr( $value ); ?>" /><button class="button button-small wp_job_manager_upload_file_button" data-uploader_button_text="<?php _e( 'Use file', 'wp-job-manager' ); ?>"><?php _e( 'Upload', 'wp-job-manager' ); ?></button><button class="button button-small wp_job_manager_view_file_button"><?php _e( 'View', 'wp-job-manager' ); ?></button></span><?php
|
155 |
}
|
156 |
} else {
|
157 |
+
?><span class="file_url"><input type="text" name="<?php echo esc_attr( $name ); ?>" id="<?php echo esc_attr( $key ); ?>" placeholder="<?php echo esc_attr( $field['placeholder'] ); ?>" value="<?php echo esc_attr( $field['value'] ); ?>" /><button class="button button-small wp_job_manager_upload_file_button" data-uploader_button_text="<?php _e( 'Use file', 'wp-job-manager' ); ?>"><?php _e( 'Upload', 'wp-job-manager' ); ?></button><button class="button button-small wp_job_manager_view_file_button"><?php _e( 'View', 'wp-job-manager' ); ?></button></span><?php
|
158 |
}
|
159 |
if ( ! empty( $field['multiple'] ) ) {
|
160 |
+
?><button class="button button-small wp_job_manager_add_another_file_button" data-field_name="<?php echo esc_attr( $key ); ?>" data-field_placeholder="<?php echo esc_attr( $field['placeholder'] ); ?>" data-uploader_button_text="<?php _e( 'Use file', 'wp-job-manager' ); ?>" data-uploader_button="<?php _e( 'Upload', 'wp-job-manager' ); ?>" data-view_button="<?php _e( 'View', 'wp-job-manager' ); ?>"><?php _e( 'Add file', 'wp-job-manager' ); ?></button><?php
|
161 |
}
|
162 |
?>
|
163 |
</p>
|
includes/class-wp-job-manager-category-walker.php
CHANGED
@@ -8,8 +8,21 @@ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
|
|
8 |
*/
|
9 |
class WP_Job_Manager_Category_Walker extends Walker {
|
10 |
|
11 |
-
|
12 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13 |
|
14 |
/**
|
15 |
* @see Walker::start_el()
|
@@ -20,7 +33,7 @@ class WP_Job_Manager_Category_Walker extends Walker {
|
|
20 |
* @param int $depth Depth of category in reference to parents.
|
21 |
* @param array $args
|
22 |
*/
|
23 |
-
function start_el( &$output, $object, $depth = 0, $args = array(), $current_object_id = 0 ) {
|
24 |
|
25 |
if ( ! empty( $args['hierarchical'] ) )
|
26 |
$pad = str_repeat(' ', $depth * 3);
|
@@ -46,4 +59,4 @@ class WP_Job_Manager_Category_Walker extends Walker {
|
|
46 |
|
47 |
$output .= "</option>\n";
|
48 |
}
|
49 |
-
}
|
8 |
*/
|
9 |
class WP_Job_Manager_Category_Walker extends Walker {
|
10 |
|
11 |
+
/**
|
12 |
+
* Tree type
|
13 |
+
*
|
14 |
+
* @access public
|
15 |
+
* @var string
|
16 |
+
*/
|
17 |
+
public $tree_type = 'category';
|
18 |
+
|
19 |
+
/**
|
20 |
+
* Database fields
|
21 |
+
*
|
22 |
+
* @access public
|
23 |
+
* @var array
|
24 |
+
*/
|
25 |
+
public $db_fields = array ('parent' => 'parent', 'id' => 'term_id', 'slug' => 'slug' );
|
26 |
|
27 |
/**
|
28 |
* @see Walker::start_el()
|
33 |
* @param int $depth Depth of category in reference to parents.
|
34 |
* @param array $args
|
35 |
*/
|
36 |
+
public function start_el( &$output, $object, $depth = 0, $args = array(), $current_object_id = 0 ) {
|
37 |
|
38 |
if ( ! empty( $args['hierarchical'] ) )
|
39 |
$pad = str_repeat(' ', $depth * 3);
|
59 |
|
60 |
$output .= "</option>\n";
|
61 |
}
|
62 |
+
}
|
includes/class-wp-job-manager-post-types.php
CHANGED
@@ -101,6 +101,7 @@ class WP_Job_Manager_Post_Types {
|
|
101 |
'new_item_name' => sprintf( __( 'New %s Name', 'wp-job-manager' ), $singular )
|
102 |
),
|
103 |
'show_ui' => true,
|
|
|
104 |
'public' => $public,
|
105 |
'capabilities' => array(
|
106 |
'manage_terms' => $admin_capability,
|
@@ -147,6 +148,7 @@ class WP_Job_Manager_Post_Types {
|
|
147 |
'new_item_name' => sprintf( __( 'New %s Name', 'wp-job-manager' ), $singular )
|
148 |
),
|
149 |
'show_ui' => true,
|
|
|
150 |
'public' => $public,
|
151 |
'capabilities' => array(
|
152 |
'manage_terms' => $admin_capability,
|
@@ -391,6 +393,13 @@ class WP_Job_Manager_Post_Types {
|
|
391 |
if ( $company ) {
|
392 |
echo "<job_listing:company><![CDATA[" . esc_html( $company ) . "]]></job_listing:company>\n";
|
393 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
394 |
}
|
395 |
|
396 |
/**
|
101 |
'new_item_name' => sprintf( __( 'New %s Name', 'wp-job-manager' ), $singular )
|
102 |
),
|
103 |
'show_ui' => true,
|
104 |
+
'show_tagcloud' => false,
|
105 |
'public' => $public,
|
106 |
'capabilities' => array(
|
107 |
'manage_terms' => $admin_capability,
|
148 |
'new_item_name' => sprintf( __( 'New %s Name', 'wp-job-manager' ), $singular )
|
149 |
),
|
150 |
'show_ui' => true,
|
151 |
+
'show_tagcloud' => false,
|
152 |
'public' => $public,
|
153 |
'capabilities' => array(
|
154 |
'manage_terms' => $admin_capability,
|
393 |
if ( $company ) {
|
394 |
echo "<job_listing:company><![CDATA[" . esc_html( $company ) . "]]></job_listing:company>\n";
|
395 |
}
|
396 |
+
|
397 |
+
/**
|
398 |
+
* Fires at the end of each job RSS feed item.
|
399 |
+
*
|
400 |
+
* @param int $post_id The post ID of the job.
|
401 |
+
*/
|
402 |
+
do_action( 'job_feed_item', $post_id );
|
403 |
}
|
404 |
|
405 |
/**
|
includes/class-wp-job-manager-shortcodes.php
CHANGED
@@ -7,6 +7,12 @@ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
|
|
7 |
*/
|
8 |
class WP_Job_Manager_Shortcodes {
|
9 |
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
private $job_dashboard_message = '';
|
11 |
|
12 |
/**
|
7 |
*/
|
8 |
class WP_Job_Manager_Shortcodes {
|
9 |
|
10 |
+
/**
|
11 |
+
* Dashboard message
|
12 |
+
*
|
13 |
+
* @access private
|
14 |
+
* @var string
|
15 |
+
*/
|
16 |
private $job_dashboard_message = '';
|
17 |
|
18 |
/**
|
includes/class-wp-job-manager-widgets.php
CHANGED
@@ -7,10 +7,44 @@ if ( ! defined( 'ABSPATH' ) ) exit;
|
|
7 |
*/
|
8 |
class WP_Job_Manager_Widget extends WP_Widget {
|
9 |
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
public $widget_cssclass;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
public $widget_description;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12 |
public $widget_id;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13 |
public $widget_name;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
public $settings;
|
15 |
|
16 |
/**
|
@@ -39,7 +73,7 @@ class WP_Job_Manager_Widget extends WP_Widget {
|
|
39 |
/**
|
40 |
* get_cached_widget function.
|
41 |
*/
|
42 |
-
function get_cached_widget( $args ) {
|
43 |
$cache = wp_cache_get( $this->widget_id, 'widget' );
|
44 |
|
45 |
if ( ! is_array( $cache ) )
|
@@ -79,7 +113,7 @@ class WP_Job_Manager_Widget extends WP_Widget {
|
|
79 |
* @param array $old_instance
|
80 |
* @return array
|
81 |
*/
|
82 |
-
function update( $new_instance, $old_instance ) {
|
83 |
$instance = $old_instance;
|
84 |
|
85 |
if ( ! $this->settings )
|
@@ -131,6 +165,19 @@ class WP_Job_Manager_Widget extends WP_Widget {
|
|
131 |
}
|
132 |
}
|
133 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
134 |
}
|
135 |
|
136 |
/**
|
7 |
*/
|
8 |
class WP_Job_Manager_Widget extends WP_Widget {
|
9 |
|
10 |
+
/**
|
11 |
+
* Widget CSS class
|
12 |
+
*
|
13 |
+
* @access public
|
14 |
+
* @var string
|
15 |
+
*/
|
16 |
public $widget_cssclass;
|
17 |
+
|
18 |
+
/**
|
19 |
+
* Widget description
|
20 |
+
*
|
21 |
+
* @access public
|
22 |
+
* @var string
|
23 |
+
*/
|
24 |
public $widget_description;
|
25 |
+
|
26 |
+
/**
|
27 |
+
* Widget id
|
28 |
+
*
|
29 |
+
* @access public
|
30 |
+
* @var string
|
31 |
+
*/
|
32 |
public $widget_id;
|
33 |
+
|
34 |
+
/**
|
35 |
+
* Widget name
|
36 |
+
*
|
37 |
+
* @access public
|
38 |
+
* @var string
|
39 |
+
*/
|
40 |
public $widget_name;
|
41 |
+
|
42 |
+
/**
|
43 |
+
* Widget settings
|
44 |
+
*
|
45 |
+
* @access public
|
46 |
+
* @var array
|
47 |
+
*/
|
48 |
public $settings;
|
49 |
|
50 |
/**
|
73 |
/**
|
74 |
* get_cached_widget function.
|
75 |
*/
|
76 |
+
public function get_cached_widget( $args ) {
|
77 |
$cache = wp_cache_get( $this->widget_id, 'widget' );
|
78 |
|
79 |
if ( ! is_array( $cache ) )
|
113 |
* @param array $old_instance
|
114 |
* @return array
|
115 |
*/
|
116 |
+
public function update( $new_instance, $old_instance ) {
|
117 |
$instance = $old_instance;
|
118 |
|
119 |
if ( ! $this->settings )
|
165 |
}
|
166 |
}
|
167 |
}
|
168 |
+
|
169 |
+
/**
|
170 |
+
* widget function.
|
171 |
+
*
|
172 |
+
* @see WP_Widget
|
173 |
+
* @access public
|
174 |
+
*
|
175 |
+
* @param array $args
|
176 |
+
* @param array $instance
|
177 |
+
*
|
178 |
+
* @return void
|
179 |
+
*/
|
180 |
+
public function widget( $args, $instance ) {}
|
181 |
}
|
182 |
|
183 |
/**
|
includes/forms/class-wp-job-manager-form-edit-job.php
CHANGED
@@ -7,9 +7,20 @@ include_once( 'class-wp-job-manager-form-submit-job.php' );
|
|
7 |
*/
|
8 |
class WP_Job_Manager_Form_Edit_Job extends WP_Job_Manager_Form_Submit_Job {
|
9 |
|
10 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
|
12 |
-
/**
|
|
|
|
|
|
|
|
|
|
|
13 |
protected static $_instance = null;
|
14 |
|
15 |
/**
|
7 |
*/
|
8 |
class WP_Job_Manager_Form_Edit_Job extends WP_Job_Manager_Form_Submit_Job {
|
9 |
|
10 |
+
/**
|
11 |
+
* Form name
|
12 |
+
*
|
13 |
+
* @access public
|
14 |
+
* @var string
|
15 |
+
*/
|
16 |
+
public $form_name = 'edit-job';
|
17 |
|
18 |
+
/**
|
19 |
+
* Instance
|
20 |
+
*
|
21 |
+
* @access protected
|
22 |
+
* @var WP_Job_Manager_Form_Edit_Job The single instance of the class
|
23 |
+
*/
|
24 |
protected static $_instance = null;
|
25 |
|
26 |
/**
|
includes/forms/class-wp-job-manager-form-submit-job.php
CHANGED
@@ -5,11 +5,36 @@
|
|
5 |
*/
|
6 |
class WP_Job_Manager_Form_Submit_Job extends WP_Job_Manager_Form {
|
7 |
|
8 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9 |
protected $job_id;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
protected $preview_job;
|
11 |
|
12 |
-
/**
|
|
|
|
|
|
|
|
|
|
|
13 |
protected static $_instance = null;
|
14 |
|
15 |
/**
|
@@ -64,7 +89,7 @@ class WP_Job_Manager_Form_Submit_Job extends WP_Job_Manager_Form {
|
|
64 |
$job_id = absint( $_COOKIE['wp-job-manager-submitting-job-id'] );
|
65 |
$job_status = get_post_status( $job_id );
|
66 |
|
67 |
-
if ( 'preview' === $job_status && get_post_meta( $job_id, '_submitting_key', true ) === $_COOKIE['wp-job-manager-submitting-job-key'] ) {
|
68 |
$this->job_id = $job_id;
|
69 |
}
|
70 |
}
|
5 |
*/
|
6 |
class WP_Job_Manager_Form_Submit_Job extends WP_Job_Manager_Form {
|
7 |
|
8 |
+
/**
|
9 |
+
* Form name
|
10 |
+
*
|
11 |
+
* @access public
|
12 |
+
* @var string
|
13 |
+
*/
|
14 |
+
public $form_name = 'submit-job';
|
15 |
+
|
16 |
+
/**
|
17 |
+
* Job id
|
18 |
+
*
|
19 |
+
* @access protected
|
20 |
+
* @var int
|
21 |
+
*/
|
22 |
protected $job_id;
|
23 |
+
|
24 |
+
/**
|
25 |
+
* Preview job
|
26 |
+
*
|
27 |
+
* @access protected
|
28 |
+
* @var string
|
29 |
+
*/
|
30 |
protected $preview_job;
|
31 |
|
32 |
+
/**
|
33 |
+
* Instance
|
34 |
+
*
|
35 |
+
* @access protected
|
36 |
+
* @var WP_Job_Manager_Form_Submit_Job The single instance of the class
|
37 |
+
*/
|
38 |
protected static $_instance = null;
|
39 |
|
40 |
/**
|
89 |
$job_id = absint( $_COOKIE['wp-job-manager-submitting-job-id'] );
|
90 |
$job_status = get_post_status( $job_id );
|
91 |
|
92 |
+
if ( ( 'preview' === $job_status || 'pending_payment' === $job_status ) && get_post_meta( $job_id, '_submitting_key', true ) === $_COOKIE['wp-job-manager-submitting-job-key'] ) {
|
93 |
$this->job_id = $job_id;
|
94 |
}
|
95 |
}
|
readme.txt
CHANGED
@@ -1,9 +1,9 @@
|
|
1 |
=== WP Job Manager ===
|
2 |
-
Contributors: mikejolley, automattic, adamkheckler, chaselivingston, csonnek, jacobshere, jeherve, jenhooks, kraftbj, lschuyler, macmanx, nancythanki,
|
3 |
Tags: job manager, job listing, job board, job management, job lists, job list, job, jobs, company, hiring, employment, employer, employees, candidate, freelance, internship, job listings, positions, board, application, hiring, listing, manager, recruiting, recruitment, talent
|
4 |
Requires at least: 4.1
|
5 |
-
Tested up to: 4.
|
6 |
-
Stable tag: 1.25.
|
7 |
License: GPLv3
|
8 |
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
9 |
|
@@ -141,6 +141,19 @@ You can view (and contribute) translations via the [translate.wordpress.org](htt
|
|
141 |
|
142 |
== Changelog ==
|
143 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
144 |
= 1.25.0 =
|
145 |
* Feature - Ability to duplicate listings from job dashboard.
|
146 |
* Fix - Support WP_EMBED in job descriptions.
|
@@ -254,413 +267,9 @@ You can view (and contribute) translations via the [translate.wordpress.org](htt
|
|
254 |
* Tweak - Improved job_feed searching.
|
255 |
* Tweak - Improved transient cleaning.
|
256 |
|
257 |
-
|
258 |
-
* Fix frontend listing edits.
|
259 |
-
|
260 |
-
= 1.22.2 =
|
261 |
-
* Tweak - Set form actions to current page.
|
262 |
-
* Fix - Video embeds.
|
263 |
-
* Fix - Load textdomain before post types are registered.
|
264 |
-
|
265 |
-
= 1.22.1 =
|
266 |
-
* Fix - It's 2015, but some people are still running PHP 5.2. Compatibility fix.
|
267 |
-
|
268 |
-
= 1.22.0 =
|
269 |
-
* Tweak - Refactored form classes to be instance based rather than static. Reduction in code base.
|
270 |
-
* Tweak - Admin styling of the job data panels.
|
271 |
-
* Tweak - Admin styling of the status column.
|
272 |
-
* Tweak - Better handling of the expiry field.
|
273 |
-
* Tweak - Search _geolocation_state_long.
|
274 |
-
* Tweak - Allow admin fields to have custom 'name'.
|
275 |
-
* Tweak - Use wp_video_shortcode instead of oembed directly.
|
276 |
-
* Tweak - Tweak menu order code for featured jobs - use -1 for featured and leave other jobs alone.
|
277 |
-
* Tweak - Clear expired date when publishing an expired listing.
|
278 |
-
* Tweak - clear_expired_transients function.
|
279 |
-
* Fix - Prevent term-checklist being disabled for guests.
|
280 |
-
* Fix - Add WPML var to transient name.
|
281 |
-
* Fix - Remove use of create_function.
|
282 |
-
|
283 |
-
= 1.21.4 =
|
284 |
-
* Fix - get_job_listings_keyword_search keyword search.
|
285 |
-
* Fix - Clear term cache when terms are set for any object.
|
286 |
-
* Fix - Legacy uploads.
|
287 |
-
* Tweak - RTL improvements.
|
288 |
-
* Tweak - Use RLIKE to search keywords in content.
|
289 |
-
* Tweak - Show relative pagination.
|
290 |
-
* Updated translations.
|
291 |
-
* Arabic translation by Mamdouh Samy.
|
292 |
-
|
293 |
-
= 1.21.3 =
|
294 |
-
* Feature - Support posts_per_page in feed.
|
295 |
-
* Fix - Correctly set menu_order when creating a new job, or updating featured status.
|
296 |
-
* Fix - Updater when there are no featured jobs.
|
297 |
-
* Fix - Add geolocation_street_number to clear_location_data.
|
298 |
-
|
299 |
-
= 1.21.2 =
|
300 |
-
* Fix - Remove requried attribute from file input.
|
301 |
-
|
302 |
-
= 1.21.1 =
|
303 |
-
* Fix - Remove file type check when field is not required and empty.
|
304 |
-
* Fix - Hide "Applications have closed" for previews.
|
305 |
-
|
306 |
-
= 1.21.0 =
|
307 |
-
* Feature - Ajax loading history - back button will take you back to current position in the search. If you are on > page 1, a 'load previous' button will be shown so you can paginate either way.
|
308 |
-
* Feature - Ajax file upload during job submission.
|
309 |
-
* Feature - Cookie set when submitting a job to allow resuming if you leave the page.
|
310 |
-
* Feature - job_apply shortcode to show application area in other places on your site.
|
311 |
-
* Feature - Allow admin fields to be priority sorted.
|
312 |
-
* Feature - Featured job widget.
|
313 |
-
* Feature - Scroll to top on pagination click.
|
314 |
-
* Feature - Option to "Hide content within expired listings". If disabled, expired listings will be listed normally with applications disabled.
|
315 |
-
* Fix - Prevent attachments being uploaded several times.
|
316 |
-
* Fix - Expiry date on first save.
|
317 |
-
* Fix - Relist should go back to form.
|
318 |
-
* Fix - jquery.com CDN for CSS.
|
319 |
-
* Tweak - Geocode street and street number separately.
|
320 |
-
* Tweak - File upload field markup.
|
321 |
-
* Tweak - Added filters around taxonomy definition.
|
322 |
-
* Tweak - Chanced search logic/query to use the new meta queries in 4.1.
|
323 |
-
* Tweak - Implement transient caching for searches.
|
324 |
-
* Tweak - Removed wp_dropdown_user due to performance concerns.
|
325 |
-
* Tweak - Use menu_order to make featured listings sticky. Improves performance.
|
326 |
-
* Tweak - Retrieve AJAX jobs with GET rather than POST request to take advantage of more caching. Plugins looking for POST data will need to update to look for GET/REQUEST instead.
|
327 |
-
* Tweak - Prevent themes that (sigh) mess with content hooks from breaking inputs.
|
328 |
-
* Tweak - Remove unused job-category field.
|
329 |
-
* Tweak - Hide company div if company name missing.
|
330 |
-
|
331 |
-
= 1.20.1 =
|
332 |
-
* Fix - Core template overrides.
|
333 |
-
* Updated localisations.
|
334 |
-
|
335 |
-
= 1.20.0 =
|
336 |
-
* Feature - Sortable location column in admin.
|
337 |
-
* Feature - Automatically Generate Username from Email Address option (disable to show a username field).
|
338 |
-
* Feature - 'filled' option for job shortcode to show all filled/non filled jobs.
|
339 |
-
* Fix - Pagination with default permalinks.
|
340 |
-
* Fix - Correctly generate geolocation data when adding a post manually.
|
341 |
-
* Fix - Chosen width when resizing the page.
|
342 |
-
* Fix - Show no jobs when all types de-selected.
|
343 |
-
* Tweak - content-widget-no-jobs-found.php template file.
|
344 |
-
* Tweak - Don't limit keyword search query functions to published jobs.
|
345 |
-
* Tweak - job_manager_output_jobs_no_results action.
|
346 |
-
* Tweak - No results template hooked into job_manager_output_jobs_no_results.
|
347 |
-
* Tweak - Changed content-no-jobs-found.php content to work for ajax and static lists of jobs. Tweaked text.
|
348 |
-
* Tweak - job_manager_default_company_logo filter for changing default company image.
|
349 |
-
* Tweak - Enhance multiselect field with chosen.
|
350 |
-
* Dev - Abiltiy to pass shortcode args to submit_job_form shortcode.
|
351 |
-
* Dev - Made get_job_manager_template_part() use locate_job_manager_template().
|
352 |
-
* Dev - Changed how username/email/role are passed to wp_job_manager_create_account (backwards compat).
|
353 |
-
|
354 |
-
= 1.19.0 =
|
355 |
-
* Feature - Added html5 required attribute to required fields.
|
356 |
-
* Feature - Added compatibility with RP4WP.
|
357 |
-
* Fix - Chosen RTL.
|
358 |
-
* Fix - Addded additonal check to check edit capabilities.
|
359 |
-
* Fix - Add correct step input to submission form.
|
360 |
-
* Tweak - Add CSS class to 'showing' bar when shoing all results (no filters).
|
361 |
-
* Tweak - Geocode, use sublocality_level_1 as city.
|
362 |
-
* Tweak - Don't update slug when editing via the frontend.
|
363 |
-
* Tweak - Set default meta data for new jobs.
|
364 |
-
* Tweak - Add geolocation data after import with WP ALL Import.
|
365 |
-
* Tweak - Filter to disable chosen: job_manager_chosen_enabled
|
366 |
-
* Tweak - Login link on job dashboard. job-dashboard-login.php template file.
|
367 |
-
* Tweak - Made backend management honour capabilities of users. Props to minderdl.
|
368 |
-
|
369 |
-
= 1.18.0 =
|
370 |
-
* Fix - Keep post name when pending job is posted by non-admin.
|
371 |
-
* Fix - Prevent special chars breaking the feeds.
|
372 |
-
* Tweak - Added new capabilities for all aspects of Job Listing Management. e.g. edit_job_listings, add_job_listing etc etc. Admin role will be updated on activation/upgrade. If you use custom roles, you'll need to edit them to grant access to the parts you wish.
|
373 |
-
* Tweak - Improved uninstaller.
|
374 |
-
* Tweak - Clear location data should include geolocation_postcode.
|
375 |
-
* Tweak - Always show 'showing' bar, but conditonally show 'reset' link.
|
376 |
-
* Tweak - Trigger geolocation whenever location field is saved, even by 3rd parties.
|
377 |
-
|
378 |
-
= 1.17.0 =
|
379 |
-
* Feature - job_manager_user_can_edit_pending_submissions function and setting.
|
380 |
-
* Feature - Job summary shortcode - support random display of job (featured or non featured).
|
381 |
-
* Feature - In admin, when clicking an author name show all jobs for that author.
|
382 |
-
* Tweak - Added sanitization function to form class to handle strings and arrays.
|
383 |
-
|
384 |
-
= 1.16.1 =
|
385 |
-
* Fix - Use triggerHandler() instead of trigger() in ajax-filters to prevent events bubbling up.
|
386 |
-
* Fix - Append current 'lang' to AJAX calls for WPML.
|
387 |
-
* Fix - When specifying categories on the jobs shortcode, don't clear those categories on reset.
|
388 |
-
* Tweak - Added job_manager_admin_screen_ids filter.
|
389 |
-
|
390 |
-
= 1.16.0 =
|
391 |
-
* Added setup wizard for new installs that creates pages/shortcodes automatically.
|
392 |
-
* Added job_manager_get_permalink function.
|
393 |
-
* Fix - Only show website link when actually set.
|
394 |
-
* Fix - Only validate application when field is set.
|
395 |
-
* Tweak - Added description to all fields.
|
396 |
-
* Tweak - Added better setting fields for defining which pages contain the shortcodes.
|
397 |
-
* Tweak - Nofollow website links.
|
398 |
-
* Tweak - Removed font-sizes from default CSS and fixed display in default WP themes.
|
399 |
-
|
400 |
-
= 1.15.0 =
|
401 |
-
* Added location/keyword option to recent jobs widget.
|
402 |
-
* Added job-listings-start and job-listings-end.php templates for customisation the wrapping elements.
|
403 |
-
* Added filter type option for job categories. Can be set to require matching to any or all selected categories.
|
404 |
-
* Added checkbox field type for forms.
|
405 |
-
* Made backend application email field default to logged in user.
|
406 |
-
* Fix - job_manager_get_resized_image to not error when it cannot read the image file.
|
407 |
-
* Fix - Make admin_url relative.
|
408 |
-
* Fix - Chosen CSS cutting off the placeholder in Firefox.
|
409 |
-
* Fix - Added _company_video in backend.
|
410 |
-
|
411 |
-
= 1.14.0 =
|
412 |
-
* Extra filters for the filters template.
|
413 |
-
* Changed text strings for easier customisations based on post type labels, and made some strings more generic.
|
414 |
-
* New field types - term-checklist, term-multiselect, term-select. These save terms only.
|
415 |
-
* Added chosen javascript to enhance multiselect boxes when needed.
|
416 |
-
* Multiple category support.
|
417 |
-
* Attach Images on Upload to the job posts.
|
418 |
-
* Added an option to show a multiselect for categories on the job filters.
|
419 |
-
* Enabled chosen() for the job category filter.
|
420 |
-
* Added content-single-job_listing-company.php and content-single-job_listing-meta.php templates. These are hooked in.
|
421 |
-
* Added optional company video field to submission form.
|
422 |
-
* Video appended to company information box.
|
423 |
-
* the_company_video() and get_the_company_video() functions.
|
424 |
-
* show_more="false" for jobs shortcode to prevent loading more jobs.
|
425 |
-
* job_manager_delete_expired_jobs filter (__return_false to disable expired job deletion).
|
426 |
-
* job_manager_delete_expired_jobs_days filter (set number of days before deletion - default is 30).
|
427 |
-
* Support HTML5 multiple attribute for file upload field. Pass multiple=>'true' to form field definition to enable.
|
428 |
-
* Later loading for template functions.
|
429 |
-
|
430 |
-
= 1.13.0 =
|
431 |
-
* Shortcode arg to show numbered pagination instead of 'load more jobs'. show_pagination argument.
|
432 |
-
* Define support for Jetpack publicize.
|
433 |
-
* Show company name alt text for company logo.
|
434 |
-
* Sort jobs by title, date, expirey date.
|
435 |
-
* Added noscript element for jobs shortcode.
|
436 |
-
* filter_var to validate URLs on the job submission form.
|
437 |
-
|
438 |
-
= 1.12.1 =
|
439 |
-
* Job submission form categories must not hide empty categories.
|
440 |
-
|
441 |
-
= 1.12.0 =
|
442 |
-
* On the job submission form, display hierarchical categories.
|
443 |
-
* Use job_manager_ prefixed hooks for registration (register_post/registration_errors/register_form) to prevent issues with Captcha plugins.
|
444 |
-
* Pass $post to job_manager_application_email_subject
|
445 |
-
* Additonal hooks in job-filters template, and moved out job types output to separate template file.
|
446 |
-
* Option to set the job dashboard page slug so plugins know where to look.
|
447 |
-
* Allow you@yourdomain.com to be translated.
|
448 |
-
* Make taxonomies hidden unless current_theme_supports( 'job-manager-templates' )
|
449 |
-
* Adjusted job application area styling and added some additonal filters.
|
450 |
-
* Improve backend order status selection.
|
451 |
-
* Added some responsive styles for job lists.
|
452 |
-
* Allow users to relist a job from the frontend. (Ensure WC Paid Listings and Simple Paid Listings are updated to support this).
|
453 |
-
|
454 |
-
= 1.11.1 =
|
455 |
-
* Fix ajax filters 'true' for show_filters
|
456 |
-
* Fix geocoding for certain address strings
|
457 |
-
* Fix keywords typo
|
458 |
-
* Remove deprecated $wpdb->escape calls. Replaced with esc_sql
|
459 |
-
|
460 |
-
= 1.11.0 =
|
461 |
-
* Switch geocode to json and improve error checking.
|
462 |
-
* If query limit is reached, stop making requests for a while.
|
463 |
-
* Added extra data inside job_feed.
|
464 |
-
* Few extra icons in font.
|
465 |
-
* Additonal hooks in single template.
|
466 |
-
* Pick up search_category from querystring to set default/selected category.
|
467 |
-
* Ability to define selected_job_types for the jobs shortcode which will set the default job type filters.
|
468 |
-
* Took out show_featured_only arg for the [jobs] shortcode and added 'featured' which can be set to true or false to show or hide featured jobs, or left null to show both.
|
469 |
-
* Removed nonce from frontend job submission form to prevent issues with caching.
|
470 |
-
|
471 |
-
= 1.10.0 =
|
472 |
-
* Trigger change on 'enter' when filtering jobs.
|
473 |
-
* Updated add-ons page to pull from wpjobmanager.com.
|
474 |
-
* Updated links.
|
475 |
-
* Fixed support for custom upload URLs.
|
476 |
-
* Choose/limit application method to email, url or either.
|
477 |
-
* Default application value (if logged in) set to user's email address.
|
478 |
-
* show_featured_only option for [jobs] shortcode.
|
479 |
-
* Add required-field class around required inputs.
|
480 |
-
* Enable paste as text in wp-editor field.
|
481 |
-
|
482 |
-
= 1.9.3 =
|
483 |
-
* Fix email URLs.
|
484 |
-
* Target blank for application URLs.
|
485 |
-
* Add posted by (author) setting in backend.
|
486 |
-
* When saving jobs, ensure _featured and _filled are set.
|
487 |
-
* Load admin scripts conditionally.
|
488 |
-
|
489 |
-
= 1.9.2 =
|
490 |
-
* Fix missing parameter in application_details_url causing URLs to be missing when applying.
|
491 |
-
|
492 |
-
= 1.9.1 =
|
493 |
-
* Removed resource heavy 'default_meta' function from the installation process.
|
494 |
-
|
495 |
-
= 1.9.0 =
|
496 |
-
* Template - Split off URL and email application methods and added new hooks. This allows other plugins to manipulate the content.
|
497 |
-
* Pass $values to edit job save function so permalinks are preserved.
|
498 |
-
* When showing filters, ensure we check by slug if category is non-numeric.
|
499 |
-
* Give listings ul a min height so that loading image is visible.
|
500 |
-
* content-no-jobs-found.php template.
|
501 |
-
* Fix apostrophe direction in signin template.
|
502 |
-
* Bulk expire jobs.
|
503 |
-
* submit_job_form_required_label hook.
|
504 |
-
* ability to set default state for selects on submit form.
|
505 |
-
* allow passed in classes in get_job_listing_class function.
|
506 |
-
* Hook in the content only if in_the_loop(). Fixes issues with jobify and yoast SEO.
|
507 |
-
* Removed .clear mixin to prevent theme conflicts.
|
508 |
-
|
509 |
-
= 1.8.2 =
|
510 |
-
* For initial load, target all .job_filters areas. Jobify compat.
|
511 |
-
|
512 |
-
= 1.8.1 =
|
513 |
-
* Fix - Corrected check to see if any category terms with jobs exist
|
514 |
-
|
515 |
-
= 1.8.0 =
|
516 |
-
* Feature - Take search/location vars from the querystring if set
|
517 |
-
* Feature - Option to choose role for registration, and added an 'employer' role.
|
518 |
-
* Feature - Support for comma separated keywords when searching
|
519 |
-
* Fix - Use add_post_meta when editing a job to maintain featured status
|
520 |
-
* Fix - category ordering
|
521 |
-
* Fix - searching for keyword + location at the same time
|
522 |
-
* Fix - Only show categories select box when they exist
|
523 |
-
* Dev - job_manager_application_email_subject filter
|
524 |
-
|
525 |
-
= 1.7.3 =
|
526 |
-
* Some changes to file uploads to support custom mime types
|
527 |
-
* Updated icon file (http://fontello.com/)
|
528 |
-
* Fix category rss links
|
529 |
-
* When doing a location search, search geolocation data
|
530 |
-
* Fix notices when removing all company fields
|
531 |
-
* Made jslint happy with ajax-filters.js
|
532 |
-
* Use get_option( 'default_role' ) when creating a user
|
533 |
-
* Grunt for release
|
534 |
-
|
535 |
-
= 1.7.2 =
|
536 |
-
* Preserve line breaks when saving textarea fields in admin
|
537 |
-
* Hide 'showing all x' when no filters are chosen.
|
538 |
-
* Register 'preview' status so that the counts are correct.
|
539 |
-
* Delete previews via cron job.
|
540 |
-
|
541 |
-
= 1.7.1 =
|
542 |
-
* Updated textdomain to wp-job-manager
|
543 |
-
* Re-done .pot file
|
544 |
-
* Additonal filters for ajax responses
|
545 |
-
* Moved localisations to Transifex https://www.transifex.com/projects/p/wp-job-manager/
|
546 |
-
|
547 |
-
= 1.7.0 =
|
548 |
-
* Added geolocation to save location data to meta after posting or saving a job. This will be used by other plugins.
|
549 |
-
* Filter job_manager_geolocation_enabled and return false to turn off geolocation features.
|
550 |
-
* Jobs shortcode can now be passed 'location' and 'keywords' to set the default for filters, or show only jobs with those keywords if filters are disabled
|
551 |
-
* Html fix in widget
|
552 |
-
* Add border around wp editor
|
553 |
-
* Fix company logo in firefox
|
554 |
-
* submit_job_form_wp_editor_args filter
|
555 |
-
* "Empty" categories are visible when filtering jobs in admin.
|
556 |
-
|
557 |
-
= 1.6.0 =
|
558 |
-
* MP6/WP 3.8 optimised styling. Min version 3.8 for new styling.
|
559 |
-
* Removed images previously used in admin.
|
560 |
-
* Tweak the_company_logo() to check if logo is valid URL.
|
561 |
-
* Replaced Genericons with custom set
|
562 |
-
* Only show link to view job on dashboard when published
|
563 |
-
|
564 |
-
= 1.5.2 =
|
565 |
-
* Fix wp-editor field
|
566 |
-
* Fix editing job images
|
567 |
-
|
568 |
-
= 1.5.1 =
|
569 |
-
* Changed get_the_time to get_post_time
|
570 |
-
* Added textarea and wp-editor to form api
|
571 |
-
* When using the job submit form, generate a more unqiue slug for the job - company-location-type-job-title
|
572 |
-
* Ability to remove image from job submission form
|
573 |
-
* Update icon font
|
574 |
-
* Fix job_types filters
|
575 |
-
* Field_select in admin
|
576 |
-
* Fix access control on job editing
|
577 |
-
* Job forms multiselect support
|
578 |
-
|
579 |
-
= 1.5.0 =
|
580 |
-
* Ability to edit job expiration date manually via admin
|
581 |
-
* Settings API: Password field
|
582 |
-
* Frontend Forms: Password field
|
583 |
-
* Correctly turn off expiration when 'days' is not set
|
584 |
-
* Greek should be el_GR
|
585 |
-
* Settings: Use key for tabs - fixes issues with locales
|
586 |
-
* Show pending count in admin menu
|
587 |
-
* Added job_types argument to jobs shortcode to show jobs of a certain type only
|
588 |
-
* Hierarchical dropdown for categories on filter form
|
589 |
-
* job_manager_job_submitted hook in submission form
|
590 |
-
|
591 |
-
= 1.4.0 =
|
592 |
-
* Added pagination to the job dashboard to avoid memory issues
|
593 |
-
* Schema.org markup for job listings
|
594 |
-
* Greek translation by Ioannis Arsenis
|
595 |
-
|
596 |
-
= 1.3.1 =
|
597 |
-
* Remove line breaks from markup to prevent theme issues
|
598 |
-
|
599 |
-
= 1.3.0 =
|
600 |
-
* When using the [jobs] shortcode without filters, if jobs > per-page show the 'load more' link
|
601 |
-
* Clearfix for meta div
|
602 |
-
* Hooked up $size option for company logos
|
603 |
-
* submit_job_form_save_job_data filter
|
604 |
-
* Italian translation
|
605 |
-
* Brazillian Portuguese translation
|
606 |
-
* Respect other plugin columns in admin
|
607 |
-
* Re-arranged admin columns to show less non-useful data
|
608 |
-
|
609 |
-
= 1.2.0 =
|
610 |
-
* Support for featured job listings
|
611 |
-
* Support for meta job duration
|
612 |
-
* set_expirey when publishing jobs from admin manually
|
613 |
-
* Update handler
|
614 |
-
|
615 |
-
= 1.1.3 =
|
616 |
-
* Corrected form field label
|
617 |
-
* Added french translation by Remi Corson
|
618 |
-
|
619 |
-
= 1.1.2 =
|
620 |
-
* job_manager_get_dashboard_jobs_args filter
|
621 |
-
* Better handling of submit job steps.
|
622 |
-
* Option to store the slug of the submit job page - used by addons.
|
623 |
-
* Use :input in JS to support multiple input types if customised.
|
624 |
-
|
625 |
-
= 1.1.1 =
|
626 |
-
* Improved accuracy of job search
|
627 |
-
* Fixed category filter dropdown in admin
|
628 |
-
|
629 |
-
= 1.1.0 =
|
630 |
-
* Tweaked css clearfixes
|
631 |
-
* Use built in antispambot for encoding email.
|
632 |
-
* job_manager_job_filters_showing_jobs_links filter
|
633 |
-
* IE8 Apply filters JS fix
|
634 |
-
* Fix spanish locale
|
635 |
-
* Fixed strict standards errors
|
636 |
-
* Improve 2013 Styles
|
637 |
-
* Addons page. Disabled usings add_filter( 'job_manager_show_addons_page', '__return_false' );
|
638 |
-
|
639 |
-
= 1.0.5 =
|
640 |
-
* Added function to get listings by certain criteria.
|
641 |
-
* Added ES translation.
|
642 |
-
* Fix job feed when no args are present.
|
643 |
-
|
644 |
-
= 1.0.4 =
|
645 |
-
* More hooks in the submit process.
|
646 |
-
* Hide apply button if url/email is unset.
|
647 |
-
|
648 |
-
= 1.0.3 =
|
649 |
-
* Some extra hooks in job-filters.php
|
650 |
-
* Added a workaround for scripts which bork placeholders inside the job filters.
|
651 |
-
|
652 |
-
= 1.0.2 =
|
653 |
-
* Action in update_job_data() to allow saving of extra fields.
|
654 |
-
* Added German translation by Chris Penning
|
655 |
-
|
656 |
-
= 1.0.1 =
|
657 |
-
* Slight tweak to listing field filters in admin.
|
658 |
-
* 'attributes' argument for admin settings.
|
659 |
-
|
660 |
-
= 1.0.0 =
|
661 |
-
* First stable release.
|
662 |
|
663 |
== Upgrade Notice ==
|
664 |
|
665 |
-
= 1.
|
666 |
-
|
1 |
=== WP Job Manager ===
|
2 |
+
Contributors: mikejolley, automattic, adamkheckler, annezazu, artemitos, bikedorkjon, cena, chaselivingston, csonnek, davor.altman, drawmyface, erania-pinnera, jacobshere, jeherve, jenhooks, jgs, kraftbj, lamdayap, lschuyler, macmanx, nancythanki, orangesareorange, rachelsquirrel, ryancowles, richardmtl, scarstocea
|
3 |
Tags: job manager, job listing, job board, job management, job lists, job list, job, jobs, company, hiring, employment, employer, employees, candidate, freelance, internship, job listings, positions, board, application, hiring, listing, manager, recruiting, recruitment, talent
|
4 |
Requires at least: 4.1
|
5 |
+
Tested up to: 4.6
|
6 |
+
Stable tag: 1.25.1
|
7 |
License: GPLv3
|
8 |
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
9 |
|
141 |
|
142 |
== Changelog ==
|
143 |
|
144 |
+
= 1.25.1 =
|
145 |
+
* Feature - Adds a view button to the Admin UI for easy access to submitted files or URLs. Props tripflex (https://github.com/Automattic/WP-Job-Manager/pull/650)
|
146 |
+
* Fix - Add hardening to file uploads to prevent accepting unexpected file times. Previously, other WP-allowed types were sometimes accepted.
|
147 |
+
* Fix - Job post form categories are now properly cached and displayed per language when using WPML or Polylang. (https://github.com/Automattic/WP-Job-Manager/issues/692)
|
148 |
+
* Fix - Refactored WPML workaround, which was causing no job listings on non-default languages. (https://github.com/Automattic/WP-Job-Manager/issues/617)
|
149 |
+
* Fix - Allow employers to edit job listings when a listing is pending payment. (https://github.com/Automattic/WP-Job-Manager/pull/664)
|
150 |
+
* Fix - No longer display Job Taxonomies in the WordPress tag cloud. (https://github.com/Automattic/WP-Job-Manager/pull/658)
|
151 |
+
* Fix - Migrate away from jQuery.live, which is no longer supported. ( https://github.com/Automattic/WP-Job-Manager/pull/664 )
|
152 |
+
* Tweak - Updated incorrect settings description. (https://github.com/Automattic/WP-Job-Manager/pull/632)
|
153 |
+
* Dev - Adds hook to add items in a job's RSS feed item. (https://github.com/Automattic/WP-Job-Manager/pull/636)
|
154 |
+
* Dev - Adds filter to disable Job Listings cache (https://github.com/Automattic/WP-Job-Manager/pull/684)
|
155 |
+
* Dev - Inline docs and coding standards improvements.
|
156 |
+
|
157 |
= 1.25.0 =
|
158 |
* Feature - Ability to duplicate listings from job dashboard.
|
159 |
* Fix - Support WP_EMBED in job descriptions.
|
267 |
* Tweak - Improved job_feed searching.
|
268 |
* Tweak - Improved transient cleaning.
|
269 |
|
270 |
+
See additional changelog items in changelog.txt
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
271 |
|
272 |
== Upgrade Notice ==
|
273 |
|
274 |
+
= 1.25.1 =
|
275 |
+
This release includes many bugs and fixes including some security improvements. Upgrade today!
|
wp-job-manager-functions.php
CHANGED
@@ -135,9 +135,17 @@ function get_job_listings( $args = array() ) {
|
|
135 |
|
136 |
do_action( 'before_get_job_listings', $query_args, $args );
|
137 |
|
138 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
139 |
$result = new WP_Query( $query_args );
|
140 |
-
set_transient( $query_args_hash, $result, DAY_IN_SECONDS * 30 );
|
141 |
}
|
142 |
|
143 |
do_action( 'after_get_job_listings', $query_args, $args );
|
@@ -546,6 +554,13 @@ function job_manager_dropdown_categories( $args = '' ) {
|
|
546 |
$r['pad_counts'] = true;
|
547 |
}
|
548 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
549 |
extract( $r );
|
550 |
|
551 |
// Store in a transient to help sites with many cats
|
@@ -696,18 +711,23 @@ function job_manager_upload_file( $file, $args = array() ) {
|
|
696 |
$args = wp_parse_args( $args, array(
|
697 |
'file_key' => '',
|
698 |
'file_label' => '',
|
699 |
-
'allowed_mime_types' =>
|
700 |
) );
|
701 |
|
702 |
$job_manager_upload = true;
|
703 |
$job_manager_uploading_file = $args['file_key'];
|
704 |
$uploaded_file = new stdClass();
|
|
|
|
|
|
|
|
|
|
|
705 |
|
706 |
-
if ( ! in_array( $file['type'], $
|
707 |
if ( $args['file_label'] ) {
|
708 |
-
return new WP_Error( 'upload', sprintf( __( '"%s" (filetype %s) needs to be one of the following file types: %s', 'wp-job-manager' ), $args['file_label'], $file['type'], implode( ', ', array_keys( $
|
709 |
} else {
|
710 |
-
return new WP_Error( 'upload', sprintf( __( 'Uploaded files need to be one of the following file types: %s', 'wp-job-manager' ), implode( ', ', array_keys( $
|
711 |
}
|
712 |
} else {
|
713 |
$upload = wp_handle_upload( $file, apply_filters( 'submit_job_wp_handle_upload_overrides', array( 'test_form' => false ) ) );
|
@@ -729,6 +749,45 @@ function job_manager_upload_file( $file, $args = array() ) {
|
|
729 |
return $uploaded_file;
|
730 |
}
|
731 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
732 |
/**
|
733 |
* Calculate and return the job expiry date
|
734 |
* @param int $job_id
|
135 |
|
136 |
do_action( 'before_get_job_listings', $query_args, $args );
|
137 |
|
138 |
+
// Cache results
|
139 |
+
if ( apply_filters( 'get_job_listings_cache_results', true ) ) {
|
140 |
+
|
141 |
+
if ( false === ( $result = get_transient( $query_args_hash ) ) ) {
|
142 |
+
$result = new WP_Query( $query_args );
|
143 |
+
set_transient( $query_args_hash, $result, DAY_IN_SECONDS * 30 );
|
144 |
+
}
|
145 |
+
|
146 |
+
}
|
147 |
+
else {
|
148 |
$result = new WP_Query( $query_args );
|
|
|
149 |
}
|
150 |
|
151 |
do_action( 'after_get_job_listings', $query_args, $args );
|
554 |
$r['pad_counts'] = true;
|
555 |
}
|
556 |
|
557 |
+
// WPML & Polylang caching per language
|
558 |
+
if ( defined( 'ICL_SITEPRESS_VERSION' ) ) {
|
559 |
+
$r['lang'] = apply_filters( 'wpml_current_language', NULL );
|
560 |
+
} elseif ( function_exists( 'pll_current_language' ) ) {
|
561 |
+
$r['lang'] = pll_current_language();
|
562 |
+
}
|
563 |
+
|
564 |
extract( $r );
|
565 |
|
566 |
// Store in a transient to help sites with many cats
|
711 |
$args = wp_parse_args( $args, array(
|
712 |
'file_key' => '',
|
713 |
'file_label' => '',
|
714 |
+
'allowed_mime_types' => '',
|
715 |
) );
|
716 |
|
717 |
$job_manager_upload = true;
|
718 |
$job_manager_uploading_file = $args['file_key'];
|
719 |
$uploaded_file = new stdClass();
|
720 |
+
if ( '' === $args['allowed_mime_types'] ) {
|
721 |
+
$allowed_mime_types = job_manager_get_allowed_mime_types( $job_manager_uploading_file );
|
722 |
+
} else {
|
723 |
+
$allowed_mime_types = $args['allowed_mime_types'];
|
724 |
+
}
|
725 |
|
726 |
+
if ( ! in_array( $file['type'], $allowed_mime_types ) ) {
|
727 |
if ( $args['file_label'] ) {
|
728 |
+
return new WP_Error( 'upload', sprintf( __( '"%s" (filetype %s) needs to be one of the following file types: %s', 'wp-job-manager' ), $args['file_label'], $file['type'], implode( ', ', array_keys( $allowed_mime_types ) ) ) );
|
729 |
} else {
|
730 |
+
return new WP_Error( 'upload', sprintf( __( 'Uploaded files need to be one of the following file types: %s', 'wp-job-manager' ), implode( ', ', array_keys( $allowed_mime_types ) ) ) );
|
731 |
}
|
732 |
} else {
|
733 |
$upload = wp_handle_upload( $file, apply_filters( 'submit_job_wp_handle_upload_overrides', array( 'test_form' => false ) ) );
|
749 |
return $uploaded_file;
|
750 |
}
|
751 |
|
752 |
+
/**
|
753 |
+
* Allowed Mime types specifically for WPJM.
|
754 |
+
* @param string $field Field used.
|
755 |
+
* @return array Array of allowed mime types
|
756 |
+
*/
|
757 |
+
function job_manager_get_allowed_mime_types( $field = '' ){
|
758 |
+
if ( 'company_logo' === $field ) {
|
759 |
+
$allowed_mime_types = array(
|
760 |
+
'jpg|jpeg|jpe' => 'image/jpeg',
|
761 |
+
'gif' => 'image/gif',
|
762 |
+
'png' => 'image/png',
|
763 |
+
);
|
764 |
+
} else {
|
765 |
+
$allowed_mime_types = array(
|
766 |
+
'jpg|jpeg|jpe' => 'image/jpeg',
|
767 |
+
'gif' => 'image/gif',
|
768 |
+
'png' => 'image/png',
|
769 |
+
'pdf' => 'application/pdf',
|
770 |
+
'doc' => 'application/msword',
|
771 |
+
'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
|
772 |
+
);
|
773 |
+
}
|
774 |
+
|
775 |
+
/**
|
776 |
+
* Mime types to accept in uploaded files.
|
777 |
+
*
|
778 |
+
* Default is image, pdf, and doc(x) files.
|
779 |
+
*
|
780 |
+
* @since 1.25.1
|
781 |
+
*
|
782 |
+
* @param array {
|
783 |
+
* Array of allowed file extensions and mime types.
|
784 |
+
* Key is pipe-separated file extensions. Value is mime type.
|
785 |
+
* }
|
786 |
+
* @param string $field The field key for the upload.
|
787 |
+
*/
|
788 |
+
return apply_filters( 'job_manager_mime_types', $allowed_mime_types, $field );
|
789 |
+
}
|
790 |
+
|
791 |
/**
|
792 |
* Calculate and return the job expiry date
|
793 |
* @param int $job_id
|
wp-job-manager.php
CHANGED
@@ -3,11 +3,11 @@
|
|
3 |
* Plugin Name: WP Job Manager
|
4 |
* Plugin URI: https://wpjobmanager.com/
|
5 |
* Description: Manage job listings from the WordPress admin panel, and allow users to post jobs directly to your site.
|
6 |
-
* Version: 1.25.
|
7 |
* Author: Automattic
|
8 |
* Author URI: https://wpjobmanager.com/
|
9 |
* Requires at least: 4.1
|
10 |
-
* Tested up to: 4.
|
11 |
* Text Domain: wp-job-manager
|
12 |
* Domain Path: /languages/
|
13 |
* License: GPL2+
|
3 |
* Plugin Name: WP Job Manager
|
4 |
* Plugin URI: https://wpjobmanager.com/
|
5 |
* Description: Manage job listings from the WordPress admin panel, and allow users to post jobs directly to your site.
|
6 |
+
* Version: 1.25.1
|
7 |
* Author: Automattic
|
8 |
* Author URI: https://wpjobmanager.com/
|
9 |
* Requires at least: 4.1
|
10 |
+
* Tested up to: 4.6
|
11 |
* Text Domain: wp-job-manager
|
12 |
* Domain Path: /languages/
|
13 |
* License: GPL2+
|