Version Description
- Templates Updated:
job-submitted.php,job-dashboard.php. - Enhancement: Email notifications are sent separately if multiple recipients are listed.
- Enhancement: Notices at end of job submission process are now displayed as a styled notice. (@DaveParkerRKD)
- Fix: Resuming job listing submission at a particular step is now fixed.
- Fix: Issue with some permalink structures and WPMU would cause issues on
[jobs]page. - Dev: Adds the ability to block some jobs from being edited in the frontend.
- Dev: Adds ability to force some email notifications to be enabled.
- Dev: Allows email notifications to be sent immediately.
- Dev: Adds ability for settings to reference other settings tabs.
- Dev: Standardizes jQuery UI datepicker script IDs in frontend and backend. Plugins and themes should enqueue
wp-job-manager-datepickerif they need jQuery UI datepicker.
Download this release
Release Info
| Developer | jakeom |
| Plugin | |
| Version | 1.34.1 |
| Comparing to | |
| See all releases | |
Code changes from version 1.34.0 to 1.34.1
- assets/css/frontend.css +1 -1
- changelog.txt +12 -0
- includes/abstracts/abstract-wp-job-manager-email.php +9 -0
- includes/admin/class-wp-job-manager-admin.php +1 -12
- includes/admin/class-wp-job-manager-settings.php +23 -1
- includes/class-wp-job-manager-ajax.php +2 -1
- includes/class-wp-job-manager-email-notifications.php +105 -37
- includes/class-wp-job-manager-post-types.php +30 -0
- includes/class-wp-job-manager.php +21 -2
- includes/forms/class-wp-job-manager-form-edit-job.php +1 -5
- includes/forms/class-wp-job-manager-form-submit-job.php +5 -21
- languages/wp-job-manager.pot +70 -78
- readme.txt +15 -2
- templates/job-dashboard.php +3 -3
- templates/job-submitted.php +5 -5
- wp-job-manager.php +3 -3
assets/css/frontend.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}.rp4wp-related-job_listing>ul,ul.job_listings{padding:0;margin:0;border-top:1px solid #eee}.rp4wp-related-job_listing>ul.loading,ul.job_listings.loading{min-height:96px;border-bottom:1px solid #eee;background:url(../images/ajax-loader.gif) no-repeat center 32px}.rp4wp-related-job_listing>ul li.job_listing,.rp4wp-related-job_listing>ul li.no_job_listings_found,ul.job_listings li.job_listing,ul.job_listings li.no_job_listings_found{list-style:none outside;padding:0;margin:0;border-bottom:1px solid #eee}.rp4wp-related-job_listing>ul li.job_listing.job_position_filled a,.rp4wp-related-job_listing>ul li.no_job_listings_found.job_position_filled a,ul.job_listings li.job_listing.job_position_filled a,ul.job_listings li.no_job_listings_found.job_position_filled a{opacity:.25}.rp4wp-related-job_listing>ul li.job_listing.no_job_listings_found,.rp4wp-related-job_listing>ul li.no_job_listings_found.no_job_listings_found,ul.job_listings li.job_listing.no_job_listings_found,ul.job_listings li.no_job_listings_found.no_job_listings_found{padding:1em;border-bottom:1px solid #eee}.rp4wp-related-job_listing>ul li.job_listing a,.rp4wp-related-job_listing>ul li.no_job_listings_found a,ul.job_listings li.job_listing a,ul.job_listings li.no_job_listings_found a{display:block;padding:1em 1em 1em 2em;border:0;overflow:hidden;zoom:1;position:relative;line-height:1.5em;text-decoration:none}.rp4wp-related-job_listing>ul li.job_listing a:focus,.rp4wp-related-job_listing>ul li.job_listing a:hover,.rp4wp-related-job_listing>ul li.no_job_listings_found a:focus,.rp4wp-related-job_listing>ul li.no_job_listings_found a:hover,ul.job_listings li.job_listing a:focus,ul.job_listings li.job_listing a:hover,ul.job_listings li.no_job_listings_found a:focus,ul.job_listings li.no_job_listings_found a:hover{background-color:#fcfcfc}.rp4wp-related-job_listing>ul li.job_listing a img.company_logo,.rp4wp-related-job_listing>ul li.no_job_listings_found a img.company_logo,ul.job_listings li.job_listing a img.company_logo,ul.job_listings li.no_job_listings_found a img.company_logo{width:42px;height:42px;position:absolute;left:1em;float:left;margin-right:1em;vertical-align:middle;box-shadow:none}.rp4wp-related-job_listing>ul li.job_listing a div.location,.rp4wp-related-job_listing>ul li.job_listing a div.position,.rp4wp-related-job_listing>ul li.job_listing a ul.meta,.rp4wp-related-job_listing>ul li.no_job_listings_found a div.location,.rp4wp-related-job_listing>ul li.no_job_listings_found a div.position,.rp4wp-related-job_listing>ul li.no_job_listings_found a ul.meta,ul.job_listings li.job_listing a div.location,ul.job_listings li.job_listing a div.position,ul.job_listings li.job_listing a ul.meta,ul.job_listings li.no_job_listings_found a div.location,ul.job_listings li.no_job_listings_found a div.position,ul.job_listings li.no_job_listings_found a ul.meta{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.rp4wp-related-job_listing>ul li.job_listing a div.position,.rp4wp-related-job_listing>ul li.no_job_listings_found a div.position,ul.job_listings li.job_listing a div.position,ul.job_listings li.no_job_listings_found a div.position{float:left;width:55%;padding:0 0 0 42px;line-height:1.5em}.rp4wp-related-job_listing>ul li.job_listing a div.position h3,.rp4wp-related-job_listing>ul li.no_job_listings_found a div.position h3,ul.job_listings li.job_listing a div.position h3,ul.job_listings li.no_job_listings_found a div.position h3{margin:0;padding:0;line-height:inherit;font-size:inherit}.rp4wp-related-job_listing>ul li.job_listing a div.position .company,.rp4wp-related-job_listing>ul li.no_job_listings_found a div.position .company,ul.job_listings li.job_listing a div.position .company,ul.job_listings li.no_job_listings_found a div.position .company{color:#999}.rp4wp-related-job_listing>ul li.job_listing a div.position .company .tagline,.rp4wp-related-job_listing>ul li.no_job_listings_found a div.position .company .tagline,ul.job_listings li.job_listing a div.position .company .tagline,ul.job_listings li.no_job_listings_found a div.position .company .tagline{margin-left:.5em}.rp4wp-related-job_listing>ul li.job_listing a div.location,.rp4wp-related-job_listing>ul li.no_job_listings_found a div.location,ul.job_listings li.job_listing a div.location,ul.job_listings li.no_job_listings_found a div.location{float:left;text-align:left;width:25%;padding:0 0 0 1em;color:#999;line-height:1.5em}.rp4wp-related-job_listing>ul li.job_listing a .meta,.rp4wp-related-job_listing>ul li.no_job_listings_found a .meta,ul.job_listings li.job_listing a .meta,ul.job_listings li.no_job_listings_found a .meta{float:right;text-align:right;width:20%;padding:0 0 0 1em;margin:0;line-height:1.5em;color:#999;list-style:none outside}.rp4wp-related-job_listing>ul li.job_listing a .meta li,.rp4wp-related-job_listing>ul li.no_job_listings_found a .meta li,ul.job_listings li.job_listing a .meta li,ul.job_listings li.no_job_listings_found a .meta li{list-style:none outside;display:block;margin:0}.rp4wp-related-job_listing>ul li.job_listing a .meta .job-type,.rp4wp-related-job_listing>ul li.no_job_listings_found a .meta .job-type,ul.job_listings li.job_listing a .meta .job-type,ul.job_listings li.no_job_listings_found a .meta .job-type{font-weight:700}.rp4wp-related-job_listing>ul li.job_listing.job_position_featured a,.rp4wp-related-job_listing>ul li.no_job_listings_found.job_position_featured a,ul.job_listings li.job_listing.job_position_featured a,ul.job_listings li.no_job_listings_found.job_position_featured a{background:#fefee5}.rp4wp-related-job_listing>ul li.job_listing.job_position_featured a:focus,.rp4wp-related-job_listing>ul li.job_listing.job_position_featured a:hover,.rp4wp-related-job_listing>ul li.no_job_listings_found.job_position_featured a:focus,.rp4wp-related-job_listing>ul li.no_job_listings_found.job_position_featured a:hover,ul.job_listings li.job_listing.job_position_featured a:focus,ul.job_listings li.job_listing.job_position_featured a:hover,ul.job_listings li.no_job_listings_found.job_position_featured a:focus,ul.job_listings li.no_job_listings_found.job_position_featured a:hover{background-color:#fefed8}.widget ul.job_listings li.job_listing a{padding:1em 0}.widget ul.job_listings li.job_listing .image{float:left}.widget ul.job_listings li.job_listing .image img{left:0;position:relative}.widget ul.job_listings li.job_listing .content{overflow:hidden}.widget ul.job_listings li.job_listing .position{float:none;width:auto;padding:0}.widget ul.job_listings li.job_listing ul.meta{float:none;width:auto;padding:0;margin:0;text-align:left}.widget ul.job_listings li.job_listing ul.meta li{float:none;display:inline;padding:0;margin:0 .5em 0 0;font-weight:400}.widget ul.job_listings li.job_listing ul.meta li:after{padding:0 0 0 .5em;content:"\2023"}.widget ul.job_listings li.job_listing ul.meta li:last-child:after{content:''}.job-manager .job-type,.job-types .job-type,.job_listing .job-type{color:#f08d3c}.job-manager .full-time,.job-types .full-time,.job_listing .full-time{color:#90da36}.job-manager .part-time,.job-types .part-time,.job_listing .part-time{color:#f08d3c}.job-manager .temporary,.job-types .temporary,.job_listing .temporary{color:#d93674}.job-manager .freelance,.job-types .freelance,.job_listing .freelance{color:#39c}.job-manager .internship,.job-types .internship,.job_listing .internship{color:#6033cc}@media only screen and (max-width:767px){ul.job_listings li.job_listing a,ul.job_listings li.no_job_listings_found a{padding:1em}ul.job_listings li.job_listing a img.company_logo,ul.job_listings li.no_job_listings_found a img.company_logo{visibility:hidden}ul.job_listings li.job_listing a div.position,ul.job_listings li.no_job_listings_found a div.position{float:left;width:60%;padding:0}ul.job_listings li.job_listing a div.location,ul.job_listings li.no_job_listings_found a div.location{float:right;width:40%;line-height:2em;font-size:.75em;padding:0 0 0 1em;text-align:right}ul.job_listings li.job_listing a .meta,ul.job_listings li.no_job_listings_found a .meta{float:right;width:40%;line-height:2em;font-size:.75em}ul.job_listings li.job_listing a .meta li,ul.job_listings li.no_job_listings_found a .meta li{font-size:1em}}.twenty-eleven ul.job_listings li.job_listing,.twenty-eleven ul.job_listings li.no_job_listings_found{padding:0!important}.display-icon{display:inline-block;width:16px;height:16px;-webkit-font-smoothing:antialiased;font-family:job-manager!important;text-decoration:none;font-weight:400;font-style:normal;vertical-align:top;font-size:16px;margin:0 2px 0 0}.job-manager-error,.job-manager-info,.job-manager-message{padding:1em 2em 1em 3.5em!important;margin:0 0 2em!important;position:relative;background-color:#fff;color:#666;border-top:3px solid #999;list-style:none outside!important;width:auto;zoom:1;box-shadow:0 1px 1px rgba(0,0,0,.2)}.job-manager-error:after,.job-manager-error:before,.job-manager-info:after,.job-manager-info:before,.job-manager-message:after,.job-manager-message:before{content:"";display:table}.job-manager-error:after,.job-manager-info:after,.job-manager-message:after{clear:both}.job-manager-error:before,.job-manager-info:before,.job-manager-message:before{content:"";font-family:sans-serif;display:inline-block;position:absolute;top:1em;left:1.5em}.job-manager-error li,.job-manager-info li,.job-manager-message li{list-style:none outside!important;padding-left:0!important;margin-left:0!important}.job-manager-error.job-manager-message,.job-manager-info.job-manager-message,.job-manager-message.job-manager-message{border-top-color:#8fae1b}.job-manager-error.job-manager-message:before,.job-manager-info.job-manager-message:before,.job-manager-message.job-manager-message:before{color:#8fae1b;content:"\2713"}.job-manager-error.job-manager-info,.job-manager-info.job-manager-info,.job-manager-message.job-manager-info{border-top-color:#1e85be}.job-manager-error.job-manager-info:before,.job-manager-info.job-manager-info:before,.job-manager-message.job-manager-info:before{color:#1e85be;content:"i";font-family:Times,Georgia,serif;font-style:italic}.job-manager-error.job-manager-error,.job-manager-info.job-manager-error,.job-manager-message.job-manager-error{border-top-color:#b81c23}.job-manager-error.job-manager-error:before,.job-manager-info.job-manager-error:before,.job-manager-message.job-manager-error:before{color:#b81c23;content:"\00d7";font-weight:700}.job-manager-form fieldset{margin:0 0 1em 0;padding:0 0 1em 0;line-height:2em;border:0;border-bottom:1px solid #eee;zoom:1}.job-manager-form fieldset:after,.job-manager-form fieldset:before{content:"";display:table}.job-manager-form fieldset:after{clear:both}.job-manager-form fieldset label{display:block;margin:0;width:29%;float:left;vertical-align:middle}.job-manager-form fieldset label small{opacity:.75;font-size:.83em}.job-manager-form fieldset div.field{width:70%;float:right;vertical-align:middle}.job-manager-form fieldset .wp-editor-container{border:1px solid #ccc;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.job-manager-form fieldset .account-sign-in .button{margin-right:.5em}.job-manager-form fieldset .account-sign-in .button:before{display:inline-block;width:16px;height:16px;-webkit-font-smoothing:antialiased;font-family:job-manager!important;text-decoration:none;font-weight:400;font-style:normal;vertical-align:top;font-size:16px;margin:0 2px 0 0;content:'\e808'}.job-manager-form fieldset abbr.required{color:red;font-weight:700;border:0}.job-manager-form fieldset input.input-text,.job-manager-form fieldset select,.job-manager-form fieldset textarea{margin:0;vertical-align:middle;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.job-manager-form fieldset small.description{opacity:.75;font-size:.83em;margin:1.2em 0 0 0;display:block;line-height:1.2em}.job-manager-form fieldset .job-manager-uploaded-files{display:table}.job-manager-form fieldset .job-manager-uploaded-files .job-manager-uploaded-file{line-height:2em;font-style:italic;margin-bottom:1em;display:block}.job-manager-form fieldset .job-manager-uploaded-files .job-manager-uploaded-file .job-manager-uploaded-file-preview img{height:64px;margin:0;vertical-align:top}.job-manager-form fieldset .job-manager-uploaded-files .job-manager-uploaded-file .job-manager-uploaded-file-preview a{line-height:64px;display:inline-block;padding:0 0 0 1em}.job-manager-form fieldset .job-manager-uploaded-files .job-manager-uploaded-file .job-manager-uploaded-file-name{display:block}.job-manager-form .submit-job{padding:1em 0}.job-manager-form .job-manager-term-checklist{list-style:none outside;max-height:200px;overflow:auto;margin:0}.job-manager-form .job-manager-term-checklist li{list-style:none outside;margin:0;display:block;float:none}.job-manager-form .job-manager-term-checklist li label{width:auto;float:none}.job-manager-form .job-manager-term-checklist li li{margin:0 0 0 2em}.job-manager-form input[type=submit].disabled,.job-manager-form input[type=submit]:disabled{opacity:.5;cursor:not-allowed}.job-manager-form .spinner{background-repeat:no-repeat;background-size:20px 20px;display:inline-block;visibility:hidden;width:20px;height:20px;margin:0;vertical-align:middle}.job-manager-form .spinner.is-active{visibility:visible}div.job_listings{margin-bottom:1em}div.job_listings ul.job_listings{margin:0}.single_job_listing .company{position:relative;border:1px solid #eee;padding:1em;margin:0 0 2em;display:block;clear:both;min-height:3em;box-shadow:0 1px 1px rgba(0,0,0,.1);box-sizing:content-box}.single_job_listing .company img{width:3em;height:3em;position:absolute;left:1em;float:left;vertical-align:middle;box-shadow:none}.single_job_listing .company .name{margin:0 0 0 3em;padding:0 0 0 1em;line-height:1.5em}.single_job_listing .company .name a{float:right;margin-left:1em}.single_job_listing .company .tagline{display:block;margin:0 0 0 3em;padding:0 0 0 1em;line-height:1.5em;font-style:italic;color:#999}.single_job_listing .company .website:before{display:inline-block;width:16px;height:16px;-webkit-font-smoothing:antialiased;font-family:job-manager!important;text-decoration:none;font-weight:400;font-style:normal;vertical-align:top;font-size:16px;margin:0 2px 0 0;content:'\e809'}.single_job_listing .company .company_twitter:before{display:inline-block;width:16px;height:16px;-webkit-font-smoothing:antialiased;font-family:job-manager!important;text-decoration:none;font-weight:400;font-style:normal;vertical-align:top;font-size:16px;margin:0 2px 0 0;content:'\e80a'}.single_job_listing .company .company_video{border-top:1px solid #eee;padding:1em 0 0;margin:1em 0 0 0;position:relative;padding-bottom:56.25%;padding-top:30px;height:0;overflow:hidden}.single_job_listing .company .company_video embed,.single_job_listing .company .company_video iframe,.single_job_listing .company .company_video object{position:absolute;top:0;left:0;width:100%;height:100%;margin:0;display:block}.single_job_listing .meta{list-style:none outside;padding:0;margin:0 0 1.5em;overflow:hidden;zoom:1;clear:both}.single_job_listing .meta li{margin:0 1em 0 0;padding:.5em;float:left;line-height:1em;color:#999}.single_job_listing .meta .job-type{color:#fff;background-color:#f08d3c}.single_job_listing .meta .full-time{background-color:#90da36}.single_job_listing .meta .part-time{background-color:#f08d3c}.single_job_listing .meta .temporary{background-color:#d93674}.single_job_listing .meta .freelance{background-color:#39c}.single_job_listing .meta .internship{background-color:#6033cc}.single_job_listing .meta .listing-expired,.single_job_listing .meta .position-filled{color:#b81c23}.single_job_listing .meta .location:before{display:inline-block;width:16px;height:16px;-webkit-font-smoothing:antialiased;font-family:job-manager!important;text-decoration:none;font-weight:400;font-style:normal;vertical-align:top;font-size:16px;margin:0 2px 0 0;content:'\e81d'}.single_job_listing .meta .date-posted:before{display:inline-block;width:16px;height:16px;-webkit-font-smoothing:antialiased;font-family:job-manager!important;text-decoration:none;font-weight:400;font-style:normal;vertical-align:top;font-size:16px;margin:0 2px 0 0;content:'\e80f'}.single_job_listing .meta .listing-expired:before,.single_job_listing .meta .position-filled:before{display:inline-block;width:16px;height:16px;-webkit-font-smoothing:antialiased;font-family:job-manager!important;text-decoration:none;font-weight:400;font-style:normal;vertical-align:top;font-size:16px;margin:0 2px 0 0;content:'\e80e'}.single_job_listing .job_description{margin:0 0 1.5em}.job-manager-application-wrapper{clear:both;border:1px solid #eee;padding:.75em 1em 0;margin:1em 0;line-height:1.5em;display:block;position:relative;box-shadow:0 1px 1px rgba(0,0,0,.1)}.job-manager-application-wrapper .application,.single_job_listing .application{padding:0;margin:0 0 1em;overflow:hidden}.job-manager-application-wrapper .application .application_button,.job-manager-application-wrapper .application .application_details,.single_job_listing .application .application_button,.single_job_listing .application .application_details{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.job-manager-application-wrapper .application .application_button,.single_job_listing .application .application_button{text-align:center;font-size:1.1em;line-height:1em;display:inline-block;margin:0 .5em 0 0;padding:.90909091em 2em;outline:0}.job-manager-application-wrapper .application .application_details,.single_job_listing .application .application_details{clear:both;border:1px solid #eee;padding:.75em 1em 0;margin:1em 0;line-height:1.5em;display:block;position:relative;box-shadow:0 1px 1px rgba(0,0,0,.1)}.job-manager-application-wrapper .application .application_details p,.single_job_listing .application .application_details p{margin:0 0 .75em}.job-manager-application-wrapper .application .application_details:before,.single_job_listing .application .application_details:before{content:"";position:absolute;margin:-10px 0 0 0;top:0;left:5em;width:0;height:0;border-left:10px solid transparent;border-right:10px solid transparent;border-bottom:10px solid #eee}.job-manager-application-wrapper .application .application_details:after,.single_job_listing .application .application_details:after{content:"";position:absolute;margin:-9px 0 0 1px;left:5em;top:0;width:0;height:0;border-left:9px solid transparent;border-right:9px solid transparent;border-bottom:9px solid #fff}.job_filters{background:#eee;zoom:1}.job_filters:after,.job_filters:before{content:"";display:table}.job_filters:after{clear:both}.job_filters .search_jobs{padding:1em;zoom:1}.job_filters .search_jobs:after,.job_filters .search_jobs:before{content:"";display:table}.job_filters .search_jobs:after{clear:both}.job_filters .search_jobs div{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.job_filters .search_jobs div label{display:none}.job_filters .search_jobs div.filter_first,.job_filters .search_jobs div.search_keywords{float:left;padding-right:.5em;width:50%}.job_filters .search_jobs div.filter_last,.job_filters .search_jobs div.search_location{float:right;padding-left:.5em;width:50%}.job_filters .search_jobs div.filter_wide,.job_filters .search_jobs div.search_categories{padding-top:.5em;clear:both;width:100%}.job_filters .search_jobs div.search_submit{padding-top:.5em}.job_filters .search_jobs div .showing_jobs a{padding:.25em}.job_filters .search_jobs div .showing_jobs a.active{background:#ddd;text-decoration:none}.job_filters .search_jobs input,.job_filters .search_jobs select{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;width:100%}.job_filters .job_types{list-style:none outside;margin:0;padding:0;font-size:.83em;background:#f9f9f9;border-top:1px solid #e5e5e5;zoom:1}.job_filters .job_types:after,.job_filters .job_types:before{content:"";display:table}.job_filters .job_types:after{clear:both}.job_filters .job_types li{margin:0;padding:.5em 1em;float:left;border-right:1px solid #eee}.job_filters .job_types li:last-child{border-right:0}.job_filters .showing_jobs{padding:.5em 1em;display:none;font-size:.83em;background:#f9f9f9;border-top:1px solid #e5e5e5}.job_filters .showing_jobs a{float:right;padding-left:10px;border:0}div.job_listings .job-manager-pagination{text-align:center;display:block;padding:1em 0 1em 0;border-bottom:1px solid #eee;line-height:1}div.job_listings .load_previous{border-top:1px solid #eee}div.job_listings .load_more_jobs+ul.job_listings{border-top:0}div.job_listings .load_more_jobs{text-align:center;display:block;padding:1em 1em 1em 2em;border-bottom:1px solid #eee;font-weight:700}div.job_listings .load_more_jobs.loading{background:url(../images/ajax-loader.gif) no-repeat center}div.job_listings .load_more_jobs.loading strong{visibility:hidden}div.job_listings .load_more_jobs:focus,div.job_listings .load_more_jobs:hover{background-color:#fcfcfc;border-bottom:1px solid #eee}.job_listing_preview{padding:0 1em 1em;border:5px solid #eee}.single-job_listing .entry-header .attachment-post-thumbnail,.single-job_listing .job_listing.has-post-thumbnail .post-thumbnail{display:none}.entry-content .job_listing_preview_title,.job_listing_preview_title{padding:.5em 1em;vertical-align:middle;position:relative;background:#eee}.entry-content .job_listing_preview_title h2,.job_listing_preview_title h2{margin:0;clear:none}.entry-content .job_listing_preview_title .button,.job_listing_preview_title .button{float:right;margin-left:.25em}.job_summary_shortcode{border:1px solid #ccc;-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px;text-align:center;position:relative;box-shadow:0 2px 4px rgba(0,0,0,.1),inset 0 1px 0 rgba(255,255,255,.4);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.job_summary_shortcode.aligncenter{display:block;margin:2em auto 2em}.job_summary_shortcode.alignleft{float:left;margin:0 2em 2em 0}.job_summary_shortcode.alignright{float:right;margin:0 0 2em 2em}.job_summary_shortcode a{text-decoration:none;color:inherit}.job_summary_shortcode img{margin:0;padding:0;display:block;width:100%;-moz-border-radius:0;-webkit-border-radius:0;-moz-border-top-left-radius:3px;-moz-border-top-right-radius:3px;-webkit-border-top-left-radius:3px;-webkit-border-top-right-radius:3px;border-radius:0;border-top-left-radius:3px;border-top-right-radius:3px;box-shadow:inset 0 1px 0 rgba(255,255,255,.4)}.job_summary_shortcode .job_summary_content{padding:0 1em}.job_summary_shortcode .meta{font-style:italic;color:#777}.job_summary_shortcode .job-type{-moz-border-radius:1em;-webkit-border-radius:1em;border-radius:1em;color:#fff;text-shadow:0 1px 0 rgba(255,255,255,.5);box-shadow:0 2px 4px rgba(0,0,0,.1),inset 0 1px 0 rgba(255,255,255,.4);position:absolute;top:0;right:0;padding:.5em;height:1em;width:auto;min-width:1em;font-size:1em;text-align:center;vertical-align:middle;line-height:1em;margin:-.5em -.5em 0 0}.job_summary_shortcode .job-type.full-time{background-color:#90da36}.job_summary_shortcode .job-type.part-time{background-color:#f08d3c}.job_summary_shortcode .job-type.temporary{background-color:#d93674}.job_summary_shortcode .job-type.freelance{background-color:#39c}.job_summary_shortcode .job-type.internship{background-color:#6033cc}#job-manager-job-dashboard .account-sign-in .button{margin-right:.5em}#job-manager-job-dashboard .account-sign-in .button:before{display:inline-block;width:16px;height:16px;-webkit-font-smoothing:antialiased;font-family:job-manager!important;text-decoration:none;font-weight:400;font-style:normal;vertical-align:top;font-size:16px;margin:0 2px 0 0;content:'\e808'}#job-manager-job-dashboard table ul.job-dashboard-actions{margin:0;padding:0;visibility:hidden;font-size:.92em}#job-manager-job-dashboard table ul.job-dashboard-actions li{float:none;display:inline;padding:0;margin:0 .5em 0 0;font-weight:400;list-style:none outside}#job-manager-job-dashboard table ul.job-dashboard-actions li:after{padding:0 0 0 .5em;content:"\2023"}#job-manager-job-dashboard table ul.job-dashboard-actions li:last-child:after{content:''}#job-manager-job-dashboard table ul.job-dashboard-actions li .job-dashboard-action-delete{color:red}#job-manager-job-dashboard table tr:focus ul.job-dashboard-actions,#job-manager-job-dashboard table tr:hover ul.job-dashboard-actions{visibility:visible}#job-manager-job-dashboard table td,#job-manager-job-dashboard table th{padding:.5em 1em .5em 0}#job-manager-job-dashboard table .job_title small{color:#999}#job-manager-job-dashboard table .featured-job-icon: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}#job-manager-job-dashboard table .applications,#job-manager-job-dashboard table .expires,#job-manager-job-dashboard table .filled{text-align:center}#content nav.job-manager-pagination,nav.job-manager-pagination{text-align:center}#content nav.job-manager-pagination ul,nav.job-manager-pagination ul{display:inline-block;white-space:nowrap;padding:0;clear:both;border-left:1px solid #eee;margin:1px}#content nav.job-manager-pagination ul li,nav.job-manager-pagination ul li{border-right:1px solid #eee;border-top:1px solid #eee;border-bottom:1px solid #eee;padding:0;margin:0;float:left;display:inline;overflow:hidden}#content nav.job-manager-pagination ul li a,#content nav.job-manager-pagination ul li span,nav.job-manager-pagination ul li a,nav.job-manager-pagination ul li span{margin:0;text-decoration:none;padding:0;line-height:1em;font-size:1em;font-weight:400;padding:.5em;min-width:1em;display:block;border:0}#content nav.job-manager-pagination ul li a:focus,#content nav.job-manager-pagination ul li a:hover,#content nav.job-manager-pagination ul li span.current,nav.job-manager-pagination ul li a:focus,nav.job-manager-pagination ul li a:hover,nav.job-manager-pagination ul li span.current{background:#eee;color:#888}.chosen-container{width:100%!important}.twenty-ten .chosen-choices,.twenty-ten .job_types{margin:0!important}.rtl .job-manager-form label{float:right}.rtl .job-manager-form div.field{float:left}.rtl .entry-content .job_listing_preview_title .button,.rtl .job_listing_preview_title .button{float:left}.rtl .single_job_listing .meta li{float:right;margin:0 0 0 1em}
|
| 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}.rp4wp-related-job_listing>ul,ul.job_listings{padding:0;margin:0;border-top:1px solid #eee}.rp4wp-related-job_listing>ul.loading,ul.job_listings.loading{min-height:96px;border-bottom:1px solid #eee;background:url(../images/ajax-loader.gif) no-repeat center 32px}.rp4wp-related-job_listing>ul li.job_listing,.rp4wp-related-job_listing>ul li.no_job_listings_found,ul.job_listings li.job_listing,ul.job_listings li.no_job_listings_found{list-style:none outside;padding:0;margin:0;border-bottom:1px solid #eee}.rp4wp-related-job_listing>ul li.job_listing.job_position_filled a,.rp4wp-related-job_listing>ul li.no_job_listings_found.job_position_filled a,ul.job_listings li.job_listing.job_position_filled a,ul.job_listings li.no_job_listings_found.job_position_filled a{opacity:.25}.rp4wp-related-job_listing>ul li.job_listing.no_job_listings_found,.rp4wp-related-job_listing>ul li.no_job_listings_found.no_job_listings_found,ul.job_listings li.job_listing.no_job_listings_found,ul.job_listings li.no_job_listings_found.no_job_listings_found{padding:1em;border-bottom:1px solid #eee}.rp4wp-related-job_listing>ul li.job_listing a,.rp4wp-related-job_listing>ul li.no_job_listings_found a,ul.job_listings li.job_listing a,ul.job_listings li.no_job_listings_found a{display:block;padding:1em 1em 1em 2em;border:0;overflow:hidden;zoom:1;position:relative;line-height:1.5em;text-decoration:none}.rp4wp-related-job_listing>ul li.job_listing a:focus,.rp4wp-related-job_listing>ul li.job_listing a:hover,.rp4wp-related-job_listing>ul li.no_job_listings_found a:focus,.rp4wp-related-job_listing>ul li.no_job_listings_found a:hover,ul.job_listings li.job_listing a:focus,ul.job_listings li.job_listing a:hover,ul.job_listings li.no_job_listings_found a:focus,ul.job_listings li.no_job_listings_found a:hover{background-color:#fcfcfc}.rp4wp-related-job_listing>ul li.job_listing a img.company_logo,.rp4wp-related-job_listing>ul li.no_job_listings_found a img.company_logo,ul.job_listings li.job_listing a img.company_logo,ul.job_listings li.no_job_listings_found a img.company_logo{width:42px;height:42px;position:absolute;left:1em;float:left;margin-right:1em;vertical-align:middle;box-shadow:none}.rp4wp-related-job_listing>ul li.job_listing a div.location,.rp4wp-related-job_listing>ul li.job_listing a div.position,.rp4wp-related-job_listing>ul li.job_listing a ul.meta,.rp4wp-related-job_listing>ul li.no_job_listings_found a div.location,.rp4wp-related-job_listing>ul li.no_job_listings_found a div.position,.rp4wp-related-job_listing>ul li.no_job_listings_found a ul.meta,ul.job_listings li.job_listing a div.location,ul.job_listings li.job_listing a div.position,ul.job_listings li.job_listing a ul.meta,ul.job_listings li.no_job_listings_found a div.location,ul.job_listings li.no_job_listings_found a div.position,ul.job_listings li.no_job_listings_found a ul.meta{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.rp4wp-related-job_listing>ul li.job_listing a div.position,.rp4wp-related-job_listing>ul li.no_job_listings_found a div.position,ul.job_listings li.job_listing a div.position,ul.job_listings li.no_job_listings_found a div.position{float:left;width:55%;padding:0 0 0 42px;line-height:1.5em}.rp4wp-related-job_listing>ul li.job_listing a div.position h3,.rp4wp-related-job_listing>ul li.no_job_listings_found a div.position h3,ul.job_listings li.job_listing a div.position h3,ul.job_listings li.no_job_listings_found a div.position h3{margin:0;padding:0;line-height:inherit;font-size:inherit}.rp4wp-related-job_listing>ul li.job_listing a div.position .company,.rp4wp-related-job_listing>ul li.no_job_listings_found a div.position .company,ul.job_listings li.job_listing a div.position .company,ul.job_listings li.no_job_listings_found a div.position .company{color:#999}.rp4wp-related-job_listing>ul li.job_listing a div.position .company .tagline,.rp4wp-related-job_listing>ul li.no_job_listings_found a div.position .company .tagline,ul.job_listings li.job_listing a div.position .company .tagline,ul.job_listings li.no_job_listings_found a div.position .company .tagline{margin-left:.5em}.rp4wp-related-job_listing>ul li.job_listing a div.location,.rp4wp-related-job_listing>ul li.no_job_listings_found a div.location,ul.job_listings li.job_listing a div.location,ul.job_listings li.no_job_listings_found a div.location{float:left;text-align:left;width:25%;padding:0 0 0 1em;color:#999;line-height:1.5em}.rp4wp-related-job_listing>ul li.job_listing a .meta,.rp4wp-related-job_listing>ul li.no_job_listings_found a .meta,ul.job_listings li.job_listing a .meta,ul.job_listings li.no_job_listings_found a .meta{float:right;text-align:right;width:20%;padding:0 0 0 1em;margin:0;line-height:1.5em;color:#999;list-style:none outside}.rp4wp-related-job_listing>ul li.job_listing a .meta li,.rp4wp-related-job_listing>ul li.no_job_listings_found a .meta li,ul.job_listings li.job_listing a .meta li,ul.job_listings li.no_job_listings_found a .meta li{list-style:none outside;display:block;margin:0}.rp4wp-related-job_listing>ul li.job_listing a .meta .job-type,.rp4wp-related-job_listing>ul li.no_job_listings_found a .meta .job-type,ul.job_listings li.job_listing a .meta .job-type,ul.job_listings li.no_job_listings_found a .meta .job-type{font-weight:700}.rp4wp-related-job_listing>ul li.job_listing.job_position_featured a,.rp4wp-related-job_listing>ul li.no_job_listings_found.job_position_featured a,ul.job_listings li.job_listing.job_position_featured a,ul.job_listings li.no_job_listings_found.job_position_featured a{background:#fefee5}.rp4wp-related-job_listing>ul li.job_listing.job_position_featured a:focus,.rp4wp-related-job_listing>ul li.job_listing.job_position_featured a:hover,.rp4wp-related-job_listing>ul li.no_job_listings_found.job_position_featured a:focus,.rp4wp-related-job_listing>ul li.no_job_listings_found.job_position_featured a:hover,ul.job_listings li.job_listing.job_position_featured a:focus,ul.job_listings li.job_listing.job_position_featured a:hover,ul.job_listings li.no_job_listings_found.job_position_featured a:focus,ul.job_listings li.no_job_listings_found.job_position_featured a:hover{background-color:#fefed8}.widget ul.job_listings li.job_listing a{padding:1em 0}.widget ul.job_listings li.job_listing .image{float:left}.widget ul.job_listings li.job_listing .image img{left:0;position:relative}.widget ul.job_listings li.job_listing .content{overflow:hidden}.widget ul.job_listings li.job_listing .position{float:none;width:auto;padding:0}.widget ul.job_listings li.job_listing ul.meta{float:none;width:auto;padding:0;margin:0;text-align:left}.widget ul.job_listings li.job_listing ul.meta li{float:none;display:inline;padding:0;margin:0 .5em 0 0;font-weight:400}.widget ul.job_listings li.job_listing ul.meta li:after{padding:0 0 0 .5em;content:"\2023"}.widget ul.job_listings li.job_listing ul.meta li:last-child:after{content:''}.job-manager .job-type,.job-types .job-type,.job_listing .job-type{color:#f08d3c}.job-manager .full-time,.job-types .full-time,.job_listing .full-time{color:#90da36}.job-manager .part-time,.job-types .part-time,.job_listing .part-time{color:#f08d3c}.job-manager .temporary,.job-types .temporary,.job_listing .temporary{color:#d93674}.job-manager .freelance,.job-types .freelance,.job_listing .freelance{color:#39c}.job-manager .internship,.job-types .internship,.job_listing .internship{color:#6033cc}@media only screen and (max-width:767px){ul.job_listings li.job_listing a,ul.job_listings li.no_job_listings_found a{padding:1em}ul.job_listings li.job_listing a img.company_logo,ul.job_listings li.no_job_listings_found a img.company_logo{visibility:hidden}ul.job_listings li.job_listing a div.position,ul.job_listings li.no_job_listings_found a div.position{float:left;width:60%;padding:0}ul.job_listings li.job_listing a div.location,ul.job_listings li.no_job_listings_found a div.location{float:right;width:40%;line-height:2em;font-size:.75em;padding:0 0 0 1em;text-align:right}ul.job_listings li.job_listing a .meta,ul.job_listings li.no_job_listings_found a .meta{float:right;width:40%;line-height:2em;font-size:.75em}ul.job_listings li.job_listing a .meta li,ul.job_listings li.no_job_listings_found a .meta li{font-size:1em}}.twenty-eleven ul.job_listings li.job_listing,.twenty-eleven ul.job_listings li.no_job_listings_found{padding:0!important}.display-icon{display:inline-block;width:16px;height:16px;-webkit-font-smoothing:antialiased;font-family:job-manager!important;text-decoration:none;font-weight:400;font-style:normal;vertical-align:top;font-size:16px;margin:0 2px 0 0}.job-manager-error,.job-manager-info,.job-manager-message{padding:1em 2em 1em 3.5em!important;margin:0 0 2em!important;position:relative;background-color:#fff;color:#666;border-top:3px solid #999;list-style:none outside!important;width:auto;zoom:1;box-shadow:0 1px 1px rgba(0,0,0,.2)}.job-manager-error:after,.job-manager-error:before,.job-manager-info:after,.job-manager-info:before,.job-manager-message:after,.job-manager-message:before{content:"";display:table}.job-manager-error:after,.job-manager-info:after,.job-manager-message:after{clear:both}.job-manager-error:before,.job-manager-info:before,.job-manager-message:before{content:"";font-family:sans-serif;display:inline-block;position:absolute;top:1em;left:1.5em}.job-manager-error li,.job-manager-info li,.job-manager-message li{list-style:none outside!important;padding-left:0!important;margin-left:0!important}.job-manager-error.job-manager-message,.job-manager-info.job-manager-message,.job-manager-message.job-manager-message{border-top-color:#8fae1b}.job-manager-error.job-manager-message:before,.job-manager-info.job-manager-message:before,.job-manager-message.job-manager-message:before{color:#8fae1b;content:"\2713"}.job-manager-error.job-manager-info,.job-manager-info.job-manager-info,.job-manager-message.job-manager-info{border-top-color:#1e85be}.job-manager-error.job-manager-info:before,.job-manager-info.job-manager-info:before,.job-manager-message.job-manager-info:before{color:#1e85be;content:"i";font-family:Times,Georgia,serif;font-style:italic}.job-manager-error.job-manager-error,.job-manager-info.job-manager-error,.job-manager-message.job-manager-error{border-top-color:#b81c23}.job-manager-error.job-manager-error:before,.job-manager-info.job-manager-error:before,.job-manager-message.job-manager-error:before{color:#b81c23;content:"\00d7";font-weight:700}.job-manager-form fieldset{margin:0 0 1em 0;padding:0 0 1em 0;line-height:2em;border:0;border-bottom:1px solid #eee;zoom:1}.job-manager-form fieldset:after,.job-manager-form fieldset:before{content:"";display:table}.job-manager-form fieldset:after{clear:both}.job-manager-form fieldset label{display:block;margin:0;width:29%;float:left;vertical-align:middle}.job-manager-form fieldset label small{opacity:.75;font-size:.83em}.job-manager-form fieldset div.field{width:70%;float:right;vertical-align:middle}.job-manager-form fieldset .wp-editor-container{border:1px solid #ccc;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.job-manager-form fieldset .account-sign-in .button{margin-right:.5em}.job-manager-form fieldset .account-sign-in .button:before{display:inline-block;width:16px;height:16px;-webkit-font-smoothing:antialiased;font-family:job-manager!important;text-decoration:none;font-weight:400;font-style:normal;vertical-align:top;font-size:16px;margin:0 2px 0 0;content:'\e808'}.job-manager-form fieldset abbr.required{color:red;font-weight:700;border:0}.job-manager-form fieldset input.input-date,.job-manager-form fieldset input.input-text,.job-manager-form fieldset select,.job-manager-form fieldset textarea{margin:0;vertical-align:middle;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.job-manager-form fieldset small.description{opacity:.75;font-size:.83em;margin:1.2em 0 0 0;display:block;line-height:1.2em}.job-manager-form fieldset .job-manager-uploaded-files{display:table}.job-manager-form fieldset .job-manager-uploaded-files .job-manager-uploaded-file{line-height:2em;font-style:italic;margin-bottom:1em;display:block}.job-manager-form fieldset .job-manager-uploaded-files .job-manager-uploaded-file .job-manager-uploaded-file-preview img{height:64px;margin:0;vertical-align:top}.job-manager-form fieldset .job-manager-uploaded-files .job-manager-uploaded-file .job-manager-uploaded-file-preview a{line-height:64px;display:inline-block;padding:0 0 0 1em}.job-manager-form fieldset .job-manager-uploaded-files .job-manager-uploaded-file .job-manager-uploaded-file-name{display:block}.job-manager-form .submit-job{padding:1em 0}.job-manager-form .job-manager-term-checklist{list-style:none outside;max-height:200px;overflow:auto;margin:0}.job-manager-form .job-manager-term-checklist li{list-style:none outside;margin:0;display:block;float:none}.job-manager-form .job-manager-term-checklist li label{width:auto;float:none}.job-manager-form .job-manager-term-checklist li li{margin:0 0 0 2em}.job-manager-form input[type=submit].disabled,.job-manager-form input[type=submit]:disabled{opacity:.5;cursor:not-allowed}.job-manager-form .spinner{background-repeat:no-repeat;background-size:20px 20px;display:inline-block;visibility:hidden;width:20px;height:20px;margin:0;vertical-align:middle}.job-manager-form .spinner.is-active{visibility:visible}div.job_listings{margin-bottom:1em}div.job_listings ul.job_listings{margin:0}.single_job_listing .company{position:relative;border:1px solid #eee;padding:1em;margin:0 0 2em;display:block;clear:both;min-height:3em;box-shadow:0 1px 1px rgba(0,0,0,.1);box-sizing:content-box}.single_job_listing .company img{width:3em;height:3em;position:absolute;left:1em;float:left;vertical-align:middle;box-shadow:none}.single_job_listing .company .name{margin:0 0 0 3em;padding:0 0 0 1em;line-height:1.5em}.single_job_listing .company .name a{float:right;margin-left:1em}.single_job_listing .company .tagline{display:block;margin:0 0 0 3em;padding:0 0 0 1em;line-height:1.5em;font-style:italic;color:#999}.single_job_listing .company .website:before{display:inline-block;width:16px;height:16px;-webkit-font-smoothing:antialiased;font-family:job-manager!important;text-decoration:none;font-weight:400;font-style:normal;vertical-align:top;font-size:16px;margin:0 2px 0 0;content:'\e809'}.single_job_listing .company .company_twitter:before{display:inline-block;width:16px;height:16px;-webkit-font-smoothing:antialiased;font-family:job-manager!important;text-decoration:none;font-weight:400;font-style:normal;vertical-align:top;font-size:16px;margin:0 2px 0 0;content:'\e80a'}.single_job_listing .company .company_video{border-top:1px solid #eee;padding:1em 0 0;margin:1em 0 0 0;position:relative;padding-bottom:56.25%;padding-top:30px;height:0;overflow:hidden}.single_job_listing .company .company_video embed,.single_job_listing .company .company_video iframe,.single_job_listing .company .company_video object{position:absolute;top:0;left:0;width:100%;height:100%;margin:0;display:block}.single_job_listing .meta{list-style:none outside;padding:0;margin:0 0 1.5em;overflow:hidden;zoom:1;clear:both}.single_job_listing .meta li{margin:0 1em 0 0;padding:.5em;float:left;line-height:1em;color:#999}.single_job_listing .meta .job-type{color:#fff;background-color:#f08d3c}.single_job_listing .meta .full-time{background-color:#90da36}.single_job_listing .meta .part-time{background-color:#f08d3c}.single_job_listing .meta .temporary{background-color:#d93674}.single_job_listing .meta .freelance{background-color:#39c}.single_job_listing .meta .internship{background-color:#6033cc}.single_job_listing .meta .listing-expired,.single_job_listing .meta .position-filled{color:#b81c23}.single_job_listing .meta .location:before{display:inline-block;width:16px;height:16px;-webkit-font-smoothing:antialiased;font-family:job-manager!important;text-decoration:none;font-weight:400;font-style:normal;vertical-align:top;font-size:16px;margin:0 2px 0 0;content:'\e81d'}.single_job_listing .meta .date-posted:before{display:inline-block;width:16px;height:16px;-webkit-font-smoothing:antialiased;font-family:job-manager!important;text-decoration:none;font-weight:400;font-style:normal;vertical-align:top;font-size:16px;margin:0 2px 0 0;content:'\e80f'}.single_job_listing .meta .listing-expired:before,.single_job_listing .meta .position-filled:before{display:inline-block;width:16px;height:16px;-webkit-font-smoothing:antialiased;font-family:job-manager!important;text-decoration:none;font-weight:400;font-style:normal;vertical-align:top;font-size:16px;margin:0 2px 0 0;content:'\e80e'}.single_job_listing .job_description{margin:0 0 1.5em}.job-manager-application-wrapper{clear:both;border:1px solid #eee;padding:.75em 1em 0;margin:1em 0;line-height:1.5em;display:block;position:relative;box-shadow:0 1px 1px rgba(0,0,0,.1)}.job-manager-application-wrapper .application,.single_job_listing .application{padding:0;margin:0 0 1em;overflow:hidden}.job-manager-application-wrapper .application .application_button,.job-manager-application-wrapper .application .application_details,.single_job_listing .application .application_button,.single_job_listing .application .application_details{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.job-manager-application-wrapper .application .application_button,.single_job_listing .application .application_button{text-align:center;font-size:1.1em;line-height:1em;display:inline-block;margin:0 .5em 0 0;padding:.90909091em 2em;outline:0}.job-manager-application-wrapper .application .application_details,.single_job_listing .application .application_details{clear:both;border:1px solid #eee;padding:.75em 1em 0;margin:1em 0;line-height:1.5em;display:block;position:relative;box-shadow:0 1px 1px rgba(0,0,0,.1)}.job-manager-application-wrapper .application .application_details p,.single_job_listing .application .application_details p{margin:0 0 .75em}.job-manager-application-wrapper .application .application_details:before,.single_job_listing .application .application_details:before{content:"";position:absolute;margin:-10px 0 0 0;top:0;left:5em;width:0;height:0;border-left:10px solid transparent;border-right:10px solid transparent;border-bottom:10px solid #eee}.job-manager-application-wrapper .application .application_details:after,.single_job_listing .application .application_details:after{content:"";position:absolute;margin:-9px 0 0 1px;left:5em;top:0;width:0;height:0;border-left:9px solid transparent;border-right:9px solid transparent;border-bottom:9px solid #fff}.job_filters{background:#eee;zoom:1}.job_filters:after,.job_filters:before{content:"";display:table}.job_filters:after{clear:both}.job_filters .search_jobs{padding:1em;zoom:1}.job_filters .search_jobs:after,.job_filters .search_jobs:before{content:"";display:table}.job_filters .search_jobs:after{clear:both}.job_filters .search_jobs div{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.job_filters .search_jobs div label{display:none}.job_filters .search_jobs div.filter_first,.job_filters .search_jobs div.search_keywords{float:left;padding-right:.5em;width:50%}.job_filters .search_jobs div.filter_last,.job_filters .search_jobs div.search_location{float:right;padding-left:.5em;width:50%}.job_filters .search_jobs div.filter_wide,.job_filters .search_jobs div.search_categories{padding-top:.5em;clear:both;width:100%}.job_filters .search_jobs div.search_submit{padding-top:.5em}.job_filters .search_jobs div .showing_jobs a{padding:.25em}.job_filters .search_jobs div .showing_jobs a.active{background:#ddd;text-decoration:none}.job_filters .search_jobs input,.job_filters .search_jobs select{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;width:100%}.job_filters .job_types{list-style:none outside;margin:0;padding:0;font-size:.83em;background:#f9f9f9;border-top:1px solid #e5e5e5;zoom:1}.job_filters .job_types:after,.job_filters .job_types:before{content:"";display:table}.job_filters .job_types:after{clear:both}.job_filters .job_types li{margin:0;padding:.5em 1em;float:left;border-right:1px solid #eee}.job_filters .job_types li:last-child{border-right:0}.job_filters .showing_jobs{padding:.5em 1em;display:none;font-size:.83em;background:#f9f9f9;border-top:1px solid #e5e5e5}.job_filters .showing_jobs a{float:right;padding-left:10px;border:0}div.job_listings .job-manager-pagination{text-align:center;display:block;padding:1em 0 1em 0;border-bottom:1px solid #eee;line-height:1}div.job_listings .load_previous{border-top:1px solid #eee}div.job_listings .load_more_jobs+ul.job_listings{border-top:0}div.job_listings .load_more_jobs{text-align:center;display:block;padding:1em 1em 1em 2em;border-bottom:1px solid #eee;font-weight:700}div.job_listings .load_more_jobs.loading{background:url(../images/ajax-loader.gif) no-repeat center}div.job_listings .load_more_jobs.loading strong{visibility:hidden}div.job_listings .load_more_jobs:focus,div.job_listings .load_more_jobs:hover{background-color:#fcfcfc;border-bottom:1px solid #eee}.job_listing_preview{padding:0 1em 1em;border:5px solid #eee}.single-job_listing .entry-header .attachment-post-thumbnail,.single-job_listing .job_listing.has-post-thumbnail .post-thumbnail{display:none}.entry-content .job_listing_preview_title,.job_listing_preview_title{padding:.5em 1em;vertical-align:middle;position:relative;background:#eee}.entry-content .job_listing_preview_title h2,.job_listing_preview_title h2{margin:0;clear:none}.entry-content .job_listing_preview_title .button,.job_listing_preview_title .button{float:right;margin-left:.25em}.job_summary_shortcode{border:1px solid #ccc;-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px;text-align:center;position:relative;box-shadow:0 2px 4px rgba(0,0,0,.1),inset 0 1px 0 rgba(255,255,255,.4);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.job_summary_shortcode.aligncenter{display:block;margin:2em auto 2em}.job_summary_shortcode.alignleft{float:left;margin:0 2em 2em 0}.job_summary_shortcode.alignright{float:right;margin:0 0 2em 2em}.job_summary_shortcode a{text-decoration:none;color:inherit}.job_summary_shortcode img{margin:0;padding:0;display:block;width:100%;-moz-border-radius:0;-webkit-border-radius:0;-moz-border-top-left-radius:3px;-moz-border-top-right-radius:3px;-webkit-border-top-left-radius:3px;-webkit-border-top-right-radius:3px;border-radius:0;border-top-left-radius:3px;border-top-right-radius:3px;box-shadow:inset 0 1px 0 rgba(255,255,255,.4)}.job_summary_shortcode .job_summary_content{padding:0 1em}.job_summary_shortcode .meta{font-style:italic;color:#777}.job_summary_shortcode .job-type{-moz-border-radius:1em;-webkit-border-radius:1em;border-radius:1em;color:#fff;text-shadow:0 1px 0 rgba(255,255,255,.5);box-shadow:0 2px 4px rgba(0,0,0,.1),inset 0 1px 0 rgba(255,255,255,.4);position:absolute;top:0;right:0;padding:.5em;height:1em;width:auto;min-width:1em;font-size:1em;text-align:center;vertical-align:middle;line-height:1em;margin:-.5em -.5em 0 0}.job_summary_shortcode .job-type.full-time{background-color:#90da36}.job_summary_shortcode .job-type.part-time{background-color:#f08d3c}.job_summary_shortcode .job-type.temporary{background-color:#d93674}.job_summary_shortcode .job-type.freelance{background-color:#39c}.job_summary_shortcode .job-type.internship{background-color:#6033cc}#job-manager-job-dashboard .account-sign-in .button{margin-right:.5em}#job-manager-job-dashboard .account-sign-in .button:before{display:inline-block;width:16px;height:16px;-webkit-font-smoothing:antialiased;font-family:job-manager!important;text-decoration:none;font-weight:400;font-style:normal;vertical-align:top;font-size:16px;margin:0 2px 0 0;content:'\e808'}#job-manager-job-dashboard table ul.job-dashboard-actions{margin:0;padding:0;visibility:hidden;font-size:.92em}#job-manager-job-dashboard table ul.job-dashboard-actions li{float:none;display:inline;padding:0;margin:0 .5em 0 0;font-weight:400;list-style:none outside}#job-manager-job-dashboard table ul.job-dashboard-actions li:after{padding:0 0 0 .5em;content:"\2023"}#job-manager-job-dashboard table ul.job-dashboard-actions li:last-child:after{content:''}#job-manager-job-dashboard table ul.job-dashboard-actions li .job-dashboard-action-delete{color:red}#job-manager-job-dashboard table tr:focus ul.job-dashboard-actions,#job-manager-job-dashboard table tr:hover ul.job-dashboard-actions{visibility:visible}#job-manager-job-dashboard table td,#job-manager-job-dashboard table th{padding:.5em 1em .5em 0}#job-manager-job-dashboard table .job_title small{color:#999}#job-manager-job-dashboard table .featured-job-icon: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}#job-manager-job-dashboard table .applications,#job-manager-job-dashboard table .expires,#job-manager-job-dashboard table .filled{text-align:center}#content nav.job-manager-pagination,nav.job-manager-pagination{text-align:center}#content nav.job-manager-pagination ul,nav.job-manager-pagination ul{display:inline-block;white-space:nowrap;padding:0;clear:both;border-left:1px solid #eee;margin:1px}#content nav.job-manager-pagination ul li,nav.job-manager-pagination ul li{border-right:1px solid #eee;border-top:1px solid #eee;border-bottom:1px solid #eee;padding:0;margin:0;float:left;display:inline;overflow:hidden}#content nav.job-manager-pagination ul li a,#content nav.job-manager-pagination ul li span,nav.job-manager-pagination ul li a,nav.job-manager-pagination ul li span{margin:0;text-decoration:none;padding:0;line-height:1em;font-size:1em;font-weight:400;padding:.5em;min-width:1em;display:block;border:0}#content nav.job-manager-pagination ul li a:focus,#content nav.job-manager-pagination ul li a:hover,#content nav.job-manager-pagination ul li span.current,nav.job-manager-pagination ul li a:focus,nav.job-manager-pagination ul li a:hover,nav.job-manager-pagination ul li span.current{background:#eee;color:#888}.chosen-container{width:100%!important}.twenty-ten .chosen-choices,.twenty-ten .job_types{margin:0!important}.rtl .job-manager-form label{float:right}.rtl .job-manager-form div.field{float:left}.rtl .entry-content .job_listing_preview_title .button,.rtl .job_listing_preview_title .button{float:left}.rtl .single_job_listing .meta li{float:right;margin:0 0 0 1em}
|
changelog.txt
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
= 1.34.0 =
|
| 2 |
* Templates Updated: `content-job_listing.php`, `job-submitted.php`.
|
| 3 |
* Enhancement: Add support for pre-selecting categories in `[jobs]` using category slugs in query string (e.g. `/jobs?search_category=developer,pm,senior`).
|
| 1 |
+
= 1.34.1 =
|
| 2 |
+
* Templates Updated: `job-submitted.php`, `job-dashboard.php`.
|
| 3 |
+
* Enhancement: Email notifications are sent separately if multiple recipients are listed.
|
| 4 |
+
* Enhancement: Notices at end of job submission process are now displayed as a styled notice. (@DaveParkerRKD)
|
| 5 |
+
* Fix: Resuming job listing submission at a particular step is now fixed.
|
| 6 |
+
* Fix: Issue with some permalink structures and WPMU would cause issues on `[jobs]` page.
|
| 7 |
+
* Dev: Adds the ability to block some jobs from being edited in the frontend.
|
| 8 |
+
* Dev: Adds ability to force some email notifications to be enabled.
|
| 9 |
+
* Dev: Allows email notifications to be sent immediately.
|
| 10 |
+
* Dev: Adds ability for settings to reference other settings tabs.
|
| 11 |
+
* Dev: Standardizes jQuery UI datepicker script IDs in frontend and backend. Plugins and themes should enqueue `wp-job-manager-datepicker` if they need jQuery UI datepicker.
|
| 12 |
+
|
| 13 |
= 1.34.0 =
|
| 14 |
* Templates Updated: `content-job_listing.php`, `job-submitted.php`.
|
| 15 |
* Enhancement: Add support for pre-selecting categories in `[jobs]` using category slugs in query string (e.g. `/jobs?search_category=developer,pm,senior`).
|
includes/abstracts/abstract-wp-job-manager-email.php
CHANGED
|
@@ -209,6 +209,15 @@ abstract class WP_Job_Manager_Email {
|
|
| 209 |
return true;
|
| 210 |
}
|
| 211 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 212 |
/**
|
| 213 |
* Returns the args that the email notification was sent with.
|
| 214 |
*
|
| 209 |
return true;
|
| 210 |
}
|
| 211 |
|
| 212 |
+
/**
|
| 213 |
+
* Force the email notification to be enabled or disabled.
|
| 214 |
+
*
|
| 215 |
+
* @return bool|null True to force enabled; False to force disabled; Null to not force a value.
|
| 216 |
+
*/
|
| 217 |
+
public static function get_enabled_force_value() {
|
| 218 |
+
return null;
|
| 219 |
+
}
|
| 220 |
+
|
| 221 |
/**
|
| 222 |
* Returns the args that the email notification was sent with.
|
| 223 |
*
|
includes/admin/class-wp-job-manager-admin.php
CHANGED
|
@@ -93,8 +93,8 @@ class WP_Job_Manager_Admin {
|
|
| 93 |
wp_enqueue_style( 'jquery-ui' );
|
| 94 |
wp_enqueue_style( 'select2' );
|
| 95 |
wp_enqueue_style( 'job_manager_admin_css', JOB_MANAGER_PLUGIN_URL . '/assets/css/admin.css', [], JOB_MANAGER_VERSION );
|
|
|
|
| 96 |
wp_register_script( 'jquery-tiptip', JOB_MANAGER_PLUGIN_URL . '/assets/js/jquery-tiptip/jquery.tipTip.min.js', [ 'jquery' ], JOB_MANAGER_VERSION, true );
|
| 97 |
-
wp_enqueue_script( 'job_manager_datepicker_js', JOB_MANAGER_PLUGIN_URL . '/assets/js/datepicker.min.js', [ 'jquery', 'jquery-ui-datepicker' ], JOB_MANAGER_VERSION, true );
|
| 98 |
wp_enqueue_script( 'job_manager_admin_js', JOB_MANAGER_PLUGIN_URL . '/assets/js/admin.min.js', [ 'jquery', 'jquery-tiptip', 'select2' ], JOB_MANAGER_VERSION, true );
|
| 99 |
|
| 100 |
wp_localize_script(
|
|
@@ -113,17 +113,6 @@ class WP_Job_Manager_Admin {
|
|
| 113 |
'search_users_nonce' => wp_create_nonce( 'search-users' ),
|
| 114 |
]
|
| 115 |
);
|
| 116 |
-
|
| 117 |
-
if ( ! function_exists( 'wp_localize_jquery_ui_datepicker' ) || ! has_action( 'admin_enqueue_scripts', 'wp_localize_jquery_ui_datepicker' ) ) {
|
| 118 |
-
wp_localize_script(
|
| 119 |
-
'job_manager_datepicker_js',
|
| 120 |
-
'job_manager_datepicker',
|
| 121 |
-
[
|
| 122 |
-
/* translators: jQuery date format, see http://api.jqueryui.com/datepicker/#utility-formatDate */
|
| 123 |
-
'date_format' => _x( 'yy-mm-dd', 'Date format for jQuery datepicker.', 'wp-job-manager' ),
|
| 124 |
-
]
|
| 125 |
-
);
|
| 126 |
-
}
|
| 127 |
}
|
| 128 |
|
| 129 |
wp_enqueue_style( 'job_manager_admin_menu_css', JOB_MANAGER_PLUGIN_URL . '/assets/css/menu.css', [], JOB_MANAGER_VERSION );
|
| 93 |
wp_enqueue_style( 'jquery-ui' );
|
| 94 |
wp_enqueue_style( 'select2' );
|
| 95 |
wp_enqueue_style( 'job_manager_admin_css', JOB_MANAGER_PLUGIN_URL . '/assets/css/admin.css', [], JOB_MANAGER_VERSION );
|
| 96 |
+
wp_enqueue_script( 'wp-job-manager-datepicker' );
|
| 97 |
wp_register_script( 'jquery-tiptip', JOB_MANAGER_PLUGIN_URL . '/assets/js/jquery-tiptip/jquery.tipTip.min.js', [ 'jquery' ], JOB_MANAGER_VERSION, true );
|
|
|
|
| 98 |
wp_enqueue_script( 'job_manager_admin_js', JOB_MANAGER_PLUGIN_URL . '/assets/js/admin.min.js', [ 'jquery', 'jquery-tiptip', 'select2' ], JOB_MANAGER_VERSION, true );
|
| 99 |
|
| 100 |
wp_localize_script(
|
| 113 |
'search_users_nonce' => wp_create_nonce( 'search-users' ),
|
| 114 |
]
|
| 115 |
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 116 |
}
|
| 117 |
|
| 118 |
wp_enqueue_style( 'job_manager_admin_menu_css', JOB_MANAGER_PLUGIN_URL . '/assets/css/menu.css', [], JOB_MANAGER_VERSION );
|
includes/admin/class-wp-job-manager-settings.php
CHANGED
|
@@ -444,6 +444,13 @@ class WP_Job_Manager_Settings {
|
|
| 444 |
</form>
|
| 445 |
</div>
|
| 446 |
<script type="text/javascript">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 447 |
jQuery('.nav-tab-wrapper a').click(function() {
|
| 448 |
if ( '#' !== jQuery(this).attr( 'href' ).substr( 0, 1 ) ) {
|
| 449 |
return false;
|
|
@@ -509,9 +516,12 @@ class WP_Job_Manager_Settings {
|
|
| 509 |
* @param string $ignored_placeholder
|
| 510 |
*/
|
| 511 |
protected function input_checkbox( $option, $attributes, $value, $ignored_placeholder ) {
|
|
|
|
|
|
|
|
|
|
| 512 |
?>
|
| 513 |
<label>
|
| 514 |
-
<input type="hidden" name="<?php echo esc_attr( $option['name'] ); ?>" value="
|
| 515 |
<input
|
| 516 |
id="setting-<?php echo esc_attr( $option['name'] ); ?>"
|
| 517 |
name="<?php echo esc_attr( $option['name'] ); ?>"
|
|
@@ -816,6 +826,18 @@ class WP_Job_Manager_Settings {
|
|
| 816 |
$enable_option['name'] = $option['name'] . '[' . $enable_option['name'] . ']';
|
| 817 |
$enable_option['type'] = 'checkbox';
|
| 818 |
$enable_option['attributes'] = [ 'class="sub-settings-expander"' ];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 819 |
$this->input_checkbox( $enable_option, $enable_option['attributes'], $values[ $option['enable_field']['name'] ], null );
|
| 820 |
|
| 821 |
echo '<div class="sub-settings-expandable">';
|
| 444 |
</form>
|
| 445 |
</div>
|
| 446 |
<script type="text/javascript">
|
| 447 |
+
jQuery('.nav-internal').click(function (e) {
|
| 448 |
+
e.preventDefault();
|
| 449 |
+
jQuery('.nav-tab-wrapper a[href="' + jQuery(this).attr('href') + '"]').click();
|
| 450 |
+
|
| 451 |
+
return false;
|
| 452 |
+
});
|
| 453 |
+
|
| 454 |
jQuery('.nav-tab-wrapper a').click(function() {
|
| 455 |
if ( '#' !== jQuery(this).attr( 'href' ).substr( 0, 1 ) ) {
|
| 456 |
return false;
|
| 516 |
* @param string $ignored_placeholder
|
| 517 |
*/
|
| 518 |
protected function input_checkbox( $option, $attributes, $value, $ignored_placeholder ) {
|
| 519 |
+
if ( ! isset( $option['hidden_value'] ) ) {
|
| 520 |
+
$option['hidden_value'] = '0';
|
| 521 |
+
}
|
| 522 |
?>
|
| 523 |
<label>
|
| 524 |
+
<input type="hidden" name="<?php echo esc_attr( $option['name'] ); ?>" value="<?php echo esc_attr( $option['hidden_value'] ); ?>" />
|
| 525 |
<input
|
| 526 |
id="setting-<?php echo esc_attr( $option['name'] ); ?>"
|
| 527 |
name="<?php echo esc_attr( $option['name'] ); ?>"
|
| 826 |
$enable_option['name'] = $option['name'] . '[' . $enable_option['name'] . ']';
|
| 827 |
$enable_option['type'] = 'checkbox';
|
| 828 |
$enable_option['attributes'] = [ 'class="sub-settings-expander"' ];
|
| 829 |
+
|
| 830 |
+
if ( isset( $enable_option['force_value'] ) && is_bool( $enable_option['force_value'] ) ) {
|
| 831 |
+
if ( true === $enable_option['force_value'] ) {
|
| 832 |
+
$values[ $option['enable_field']['name'] ] = '1';
|
| 833 |
+
} else {
|
| 834 |
+
$values[ $option['enable_field']['name'] ] = '0';
|
| 835 |
+
}
|
| 836 |
+
|
| 837 |
+
$enable_option['hidden_value'] = $values[ $option['enable_field']['name'] ];
|
| 838 |
+
$enable_option['attributes'][] = 'disabled="disabled"';
|
| 839 |
+
}
|
| 840 |
+
|
| 841 |
$this->input_checkbox( $enable_option, $enable_option['attributes'], $values[ $option['enable_field']['name'] ], null );
|
| 842 |
|
| 843 |
echo '<div class="sub-settings-expandable">';
|
includes/class-wp-job-manager-ajax.php
CHANGED
|
@@ -78,8 +78,9 @@ class WP_Job_Manager_Ajax {
|
|
| 78 |
} elseif ( get_option( 'permalink_structure' ) ) {
|
| 79 |
$endpoint = trailingslashit( home_url( '/jm-ajax/' . $request . '/', 'relative' ) );
|
| 80 |
} else {
|
| 81 |
-
$endpoint = add_query_arg( 'jm-ajax', $request,
|
| 82 |
}
|
|
|
|
| 83 |
return esc_url_raw( $endpoint );
|
| 84 |
}
|
| 85 |
|
| 78 |
} elseif ( get_option( 'permalink_structure' ) ) {
|
| 79 |
$endpoint = trailingslashit( home_url( '/jm-ajax/' . $request . '/', 'relative' ) );
|
| 80 |
} else {
|
| 81 |
+
$endpoint = add_query_arg( 'jm-ajax', $request, home_url( '/', 'relative' ) );
|
| 82 |
}
|
| 83 |
+
|
| 84 |
return esc_url_raw( $endpoint );
|
| 85 |
}
|
| 86 |
|
includes/class-wp-job-manager-email-notifications.php
CHANGED
|
@@ -99,6 +99,38 @@ final class WP_Job_Manager_Email_Notifications {
|
|
| 99 |
}
|
| 100 |
}
|
| 101 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 102 |
/**
|
| 103 |
* Initialize if necessary.
|
| 104 |
*/
|
|
@@ -416,7 +448,7 @@ final class WP_Job_Manager_Email_Notifications {
|
|
| 416 |
$email_settings = [];
|
| 417 |
|
| 418 |
foreach ( $email_notifications as $email_notification_key => $email_class ) {
|
| 419 |
-
$email_notification_context =
|
| 420 |
if ( $context !== $email_notification_context ) {
|
| 421 |
continue;
|
| 422 |
}
|
|
@@ -424,11 +456,12 @@ final class WP_Job_Manager_Email_Notifications {
|
|
| 424 |
$email_settings[] = [
|
| 425 |
'type' => 'multi_enable_expand',
|
| 426 |
'class' => 'email-setting-row no-separator',
|
| 427 |
-
'name' => self::EMAIL_SETTING_PREFIX .
|
| 428 |
'enable_field' => [
|
| 429 |
-
'name'
|
| 430 |
-
'cb_label'
|
| 431 |
-
'desc'
|
|
|
|
| 432 |
],
|
| 433 |
'label' => false,
|
| 434 |
'std' => self::get_email_setting_defaults( $email_notification_key ),
|
|
@@ -456,10 +489,16 @@ final class WP_Job_Manager_Email_Notifications {
|
|
| 456 |
* @return bool
|
| 457 |
*/
|
| 458 |
public static function is_email_notification_enabled( $email_notification_key ) {
|
| 459 |
-
$settings
|
|
|
|
| 460 |
|
|
|
|
| 461 |
$is_email_notification_enabled = ! empty( $settings[ self::EMAIL_SETTING_ENABLED ] );
|
| 462 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 463 |
/**
|
| 464 |
* Filter whether an notification email is enabled.
|
| 465 |
*
|
|
@@ -474,10 +513,14 @@ final class WP_Job_Manager_Email_Notifications {
|
|
| 474 |
/**
|
| 475 |
* Checks if we should send emails using plain text.
|
| 476 |
*
|
| 477 |
-
* @
|
|
|
|
|
|
|
|
|
|
|
|
|
| 478 |
* @return bool
|
| 479 |
*/
|
| 480 |
-
public static function send_as_plain_text( $email_notification_key ) {
|
| 481 |
$settings = self::get_email_settings( $email_notification_key );
|
| 482 |
|
| 483 |
$send_as_plain_text = ! empty( $settings[ self::EMAIL_SETTING_PLAIN_TEXT ] );
|
|
@@ -487,10 +530,11 @@ final class WP_Job_Manager_Email_Notifications {
|
|
| 487 |
*
|
| 488 |
* @since 1.31.0
|
| 489 |
*
|
| 490 |
-
* @param bool $send_as_plain_text
|
| 491 |
-
* @param string $email_notification_key
|
|
|
|
| 492 |
*/
|
| 493 |
-
return apply_filters( 'job_manager_email_send_as_plain_text', $send_as_plain_text, $email_notification_key );
|
| 494 |
}
|
| 495 |
|
| 496 |
/**
|
|
@@ -725,34 +769,58 @@ final class WP_Job_Manager_Email_Notifications {
|
|
| 725 |
$args[ $field ] = apply_filters( "job_manager_email_{$email_notification_key}_{$field}", $email->$method(), $email );
|
| 726 |
}
|
| 727 |
|
| 728 |
-
$headers = is_array( $args['headers'] ) ? $args['headers'] : [];
|
| 729 |
-
|
| 730 |
-
if ( !
|
| 731 |
-
$
|
| 732 |
}
|
| 733 |
|
| 734 |
-
|
| 735 |
-
|
| 736 |
-
|
|
|
|
| 737 |
|
| 738 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 739 |
|
| 740 |
-
|
| 741 |
-
|
| 742 |
-
|
| 743 |
-
|
| 744 |
-
|
| 745 |
-
|
| 746 |
-
|
| 747 |
-
|
| 748 |
-
|
| 749 |
-
|
| 750 |
-
|
| 751 |
-
|
| 752 |
-
|
| 753 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 754 |
}
|
| 755 |
-
|
|
|
|
| 756 |
}
|
| 757 |
|
| 758 |
/**
|
|
@@ -760,12 +828,12 @@ final class WP_Job_Manager_Email_Notifications {
|
|
| 760 |
*
|
| 761 |
* @access private
|
| 762 |
*
|
| 763 |
-
* @param string $email_notification_key
|
| 764 |
-
* @param array $args
|
| 765 |
* @return string
|
| 766 |
*/
|
| 767 |
private static function get_email_content( $email_notification_key, $args ) {
|
| 768 |
-
$plain_text = self::send_as_plain_text( $email_notification_key );
|
| 769 |
|
| 770 |
ob_start();
|
| 771 |
|
| 99 |
}
|
| 100 |
}
|
| 101 |
|
| 102 |
+
/**
|
| 103 |
+
* Send email notifications for a specific email now and return the status. Not usually necessary but useful if you
|
| 104 |
+
* need to check to make sure a notification was sent.
|
| 105 |
+
*
|
| 106 |
+
* @param string $email_key Email key to send notifications for.
|
| 107 |
+
* @return bool True if an email notification was sent.
|
| 108 |
+
*/
|
| 109 |
+
public static function send_notifications( $email_key ) {
|
| 110 |
+
$email_sent = false;
|
| 111 |
+
$email_notifications = self::get_email_notifications( true );
|
| 112 |
+
foreach ( self::$deferred_notifications as $index => $email ) {
|
| 113 |
+
if (
|
| 114 |
+
! is_string( $email[0] )
|
| 115 |
+
|| ! isset( $email_notifications[ $email[0] ] )
|
| 116 |
+
|| $email[0] !== $email_key
|
| 117 |
+
) {
|
| 118 |
+
continue;
|
| 119 |
+
}
|
| 120 |
+
|
| 121 |
+
$email_class = $email_notifications[ $email[0] ];
|
| 122 |
+
$email_args = is_array( $email[1] ) ? $email[1] : [];
|
| 123 |
+
|
| 124 |
+
if ( self::send_email( $email[0], new $email_class( $email_args, self::get_email_settings( $email_key ) ) ) ) {
|
| 125 |
+
$email_sent = true;
|
| 126 |
+
}
|
| 127 |
+
|
| 128 |
+
unset( self::$deferred_notifications[ $index ] );
|
| 129 |
+
}
|
| 130 |
+
|
| 131 |
+
return $email_sent;
|
| 132 |
+
}
|
| 133 |
+
|
| 134 |
/**
|
| 135 |
* Initialize if necessary.
|
| 136 |
*/
|
| 448 |
$email_settings = [];
|
| 449 |
|
| 450 |
foreach ( $email_notifications as $email_notification_key => $email_class ) {
|
| 451 |
+
$email_notification_context = $email_class::get_context();
|
| 452 |
if ( $context !== $email_notification_context ) {
|
| 453 |
continue;
|
| 454 |
}
|
| 456 |
$email_settings[] = [
|
| 457 |
'type' => 'multi_enable_expand',
|
| 458 |
'class' => 'email-setting-row no-separator',
|
| 459 |
+
'name' => self::EMAIL_SETTING_PREFIX . $email_class::get_key(),
|
| 460 |
'enable_field' => [
|
| 461 |
+
'name' => self::EMAIL_SETTING_ENABLED,
|
| 462 |
+
'cb_label' => $email_class::get_name(),
|
| 463 |
+
'desc' => $email_class::get_description(),
|
| 464 |
+
'force_value' => $email_class::get_enabled_force_value(),
|
| 465 |
],
|
| 466 |
'label' => false,
|
| 467 |
'std' => self::get_email_setting_defaults( $email_notification_key ),
|
| 489 |
* @return bool
|
| 490 |
*/
|
| 491 |
public static function is_email_notification_enabled( $email_notification_key ) {
|
| 492 |
+
$settings = self::get_email_settings( $email_notification_key );
|
| 493 |
+
$email_class = self::get_email_class( $email_notification_key );
|
| 494 |
|
| 495 |
+
$enabled_force_value = $email_class ? $email_class::get_enabled_force_value() : null;
|
| 496 |
$is_email_notification_enabled = ! empty( $settings[ self::EMAIL_SETTING_ENABLED ] );
|
| 497 |
|
| 498 |
+
if ( is_bool( $enabled_force_value ) ) {
|
| 499 |
+
$is_email_notification_enabled = $enabled_force_value;
|
| 500 |
+
}
|
| 501 |
+
|
| 502 |
/**
|
| 503 |
* Filter whether an notification email is enabled.
|
| 504 |
*
|
| 513 |
/**
|
| 514 |
* Checks if we should send emails using plain text.
|
| 515 |
*
|
| 516 |
+
* @since 1.31.0
|
| 517 |
+
* @since 1.34.1 Added arguments to allow for per-recipient customization.
|
| 518 |
+
*
|
| 519 |
+
* @param string $email_notification_key Unique ID for this email notification.
|
| 520 |
+
* @param array $args Email arguments.
|
| 521 |
* @return bool
|
| 522 |
*/
|
| 523 |
+
public static function send_as_plain_text( $email_notification_key, $args = [] ) {
|
| 524 |
$settings = self::get_email_settings( $email_notification_key );
|
| 525 |
|
| 526 |
$send_as_plain_text = ! empty( $settings[ self::EMAIL_SETTING_PLAIN_TEXT ] );
|
| 530 |
*
|
| 531 |
* @since 1.31.0
|
| 532 |
*
|
| 533 |
+
* @param bool $send_as_plain_text Whether to send this email as plain text.
|
| 534 |
+
* @param string $email_notification_key Unique ID for this email notification.
|
| 535 |
+
* @param array $args Email arguments.
|
| 536 |
*/
|
| 537 |
+
return apply_filters( 'job_manager_email_send_as_plain_text', $send_as_plain_text, $email_notification_key, $args );
|
| 538 |
}
|
| 539 |
|
| 540 |
/**
|
| 769 |
$args[ $field ] = apply_filters( "job_manager_email_{$email_notification_key}_{$field}", $email->$method(), $email );
|
| 770 |
}
|
| 771 |
|
| 772 |
+
$args['headers'] = is_array( $args['headers'] ) ? $args['headers'] : [];
|
| 773 |
+
$send_to = $args['to'];
|
| 774 |
+
if ( ! is_array( $send_to ) ) {
|
| 775 |
+
$send_to = array_filter( array_map( 'sanitize_email', preg_split( '/[,|;]\s?/', $send_to ) ) );
|
| 776 |
}
|
| 777 |
|
| 778 |
+
$sent_count = 0;
|
| 779 |
+
foreach ( $send_to as $to_email ) {
|
| 780 |
+
$args['to'] = $to_email;
|
| 781 |
+
$content = self::get_email_content( $email_notification_key, $args );
|
| 782 |
|
| 783 |
+
/**
|
| 784 |
+
* Filter all email arguments for job manager notifications.
|
| 785 |
+
*
|
| 786 |
+
* @since 1.34.1
|
| 787 |
+
*
|
| 788 |
+
* @param mixed $email_field_value Value to be filtered.
|
| 789 |
+
* @param WP_Job_Manager_Email $email Email notification object.
|
| 790 |
+
*/
|
| 791 |
+
$args = apply_filters( "job_manager_email_{$email_notification_key}_args", $args, $email );
|
| 792 |
|
| 793 |
+
$headers = $args['headers'];
|
| 794 |
+
if ( ! empty( $args['from'] ) ) {
|
| 795 |
+
$headers[] = 'From: ' . $args['from'];
|
| 796 |
+
}
|
| 797 |
+
|
| 798 |
+
if ( ! self::send_as_plain_text( $email_notification_key, $args ) ) {
|
| 799 |
+
$headers[] = 'Content-Type: text/html';
|
| 800 |
+
}
|
| 801 |
+
|
| 802 |
+
/**
|
| 803 |
+
* Allows for short-circuiting the actual sending of email notifications.
|
| 804 |
+
*
|
| 805 |
+
* @since 1.31.0
|
| 806 |
+
*
|
| 807 |
+
* @param bool $do_send_notification True if we should send the notification.
|
| 808 |
+
* @param WP_Job_Manager_Email $email Email notification object.
|
| 809 |
+
* @param array $args Email arguments for generating email.
|
| 810 |
+
* @param string $content Email content.
|
| 811 |
+
* @param array $headers Email headers.
|
| 812 |
+
* @param
|
| 813 |
+
*/
|
| 814 |
+
if ( ! apply_filters( 'job_manager_email_do_send_notification', true, $email, $args, $content, $headers ) ) {
|
| 815 |
+
continue;
|
| 816 |
+
}
|
| 817 |
+
|
| 818 |
+
if ( wp_mail( $to_email, $args['subject'], $content, $headers, $args['attachments'] ) ) {
|
| 819 |
+
$sent_count++;
|
| 820 |
+
}
|
| 821 |
}
|
| 822 |
+
|
| 823 |
+
return $sent_count > 0;
|
| 824 |
}
|
| 825 |
|
| 826 |
/**
|
| 828 |
*
|
| 829 |
* @access private
|
| 830 |
*
|
| 831 |
+
* @param string $email_notification_key Unique email notification key.
|
| 832 |
+
* @param array $args Arguments passed for generating email.
|
| 833 |
* @return string
|
| 834 |
*/
|
| 835 |
private static function get_email_content( $email_notification_key, $args ) {
|
| 836 |
+
$plain_text = self::send_as_plain_text( $email_notification_key, $args );
|
| 837 |
|
| 838 |
ob_start();
|
| 839 |
|
includes/class-wp-job-manager-post-types.php
CHANGED
|
@@ -868,6 +868,36 @@ class WP_Job_Manager_Post_Types {
|
|
| 868 |
return $data;
|
| 869 |
}
|
| 870 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 871 |
/**
|
| 872 |
* Returns the name of the job RSS feed.
|
| 873 |
*
|
| 868 |
return $data;
|
| 869 |
}
|
| 870 |
|
| 871 |
+
/**
|
| 872 |
+
* Check if a job is editable.
|
| 873 |
+
*
|
| 874 |
+
* @since 1.34.1
|
| 875 |
+
*
|
| 876 |
+
* @param int $job_id Job ID to check.
|
| 877 |
+
* @return bool
|
| 878 |
+
*/
|
| 879 |
+
public static function job_is_editable( $job_id ) {
|
| 880 |
+
$job_is_editable = true;
|
| 881 |
+
$post_status = get_post_status( $job_id );
|
| 882 |
+
|
| 883 |
+
if (
|
| 884 |
+
( 'publish' === $post_status && ! wpjm_user_can_edit_published_submissions() )
|
| 885 |
+
|| ( 'publish' !== $post_status && ! job_manager_user_can_edit_pending_submissions() )
|
| 886 |
+
) {
|
| 887 |
+
$job_is_editable = false;
|
| 888 |
+
}
|
| 889 |
+
|
| 890 |
+
/**
|
| 891 |
+
* Allows filtering on whether a job can be edited after it has gone past the `preview` stage.
|
| 892 |
+
*
|
| 893 |
+
* @since 1.34.1
|
| 894 |
+
*
|
| 895 |
+
* @param bool $job_is_editable If the job is editable.
|
| 896 |
+
* @param int $job_id Job ID to check.
|
| 897 |
+
*/
|
| 898 |
+
return apply_filters( 'job_manager_job_is_editable', $job_is_editable, $job_id );
|
| 899 |
+
}
|
| 900 |
+
|
| 901 |
/**
|
| 902 |
* Returns the name of the job RSS feed.
|
| 903 |
*
|
includes/class-wp-job-manager.php
CHANGED
|
@@ -86,6 +86,7 @@ class WP_Job_Manager {
|
|
| 86 |
add_action( 'widgets_init', [ $this, 'widgets_init' ] );
|
| 87 |
add_action( 'wp_loaded', [ $this, 'register_shared_assets' ] );
|
| 88 |
add_action( 'wp_enqueue_scripts', [ $this, 'frontend_scripts' ] );
|
|
|
|
| 89 |
add_action( 'admin_init', [ $this, 'updater' ] );
|
| 90 |
add_action( 'admin_init', [ $this, 'add_privacy_policy_content' ] );
|
| 91 |
add_action( 'wp_logout', [ $this, 'cleanup_job_posting_cookies' ] );
|
|
@@ -251,14 +252,32 @@ class WP_Job_Manager {
|
|
| 251 |
|
| 252 |
$jquery_version = isset( $wp_scripts->registered['jquery-ui-core']->ver ) ? $wp_scripts->registered['jquery-ui-core']->ver : '1.9.2';
|
| 253 |
wp_register_style( 'jquery-ui', '//code.jquery.com/ui/' . $jquery_version . '/themes/smoothness/jquery-ui.min.css', [], $jquery_version );
|
|
|
|
|
|
|
|
|
|
| 254 |
}
|
| 255 |
|
| 256 |
/**
|
| 257 |
* Registers select2 assets when needed.
|
| 258 |
*/
|
| 259 |
public static function register_select2_assets() {
|
| 260 |
-
wp_register_script( 'select2', JOB_MANAGER_PLUGIN_URL . '/assets/js/select2/select2.full.min.js', [ 'jquery' ], '4.0.
|
| 261 |
-
wp_register_style( 'select2', JOB_MANAGER_PLUGIN_URL . '/assets/js/select2/select2.min.css', [], '4.0.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 262 |
}
|
| 263 |
|
| 264 |
/**
|
| 86 |
add_action( 'widgets_init', [ $this, 'widgets_init' ] );
|
| 87 |
add_action( 'wp_loaded', [ $this, 'register_shared_assets' ] );
|
| 88 |
add_action( 'wp_enqueue_scripts', [ $this, 'frontend_scripts' ] );
|
| 89 |
+
add_action( 'wp_footer', [ $this, 'maybe_localize_jquery_ui_datepicker' ], 1 );
|
| 90 |
add_action( 'admin_init', [ $this, 'updater' ] );
|
| 91 |
add_action( 'admin_init', [ $this, 'add_privacy_policy_content' ] );
|
| 92 |
add_action( 'wp_logout', [ $this, 'cleanup_job_posting_cookies' ] );
|
| 252 |
|
| 253 |
$jquery_version = isset( $wp_scripts->registered['jquery-ui-core']->ver ) ? $wp_scripts->registered['jquery-ui-core']->ver : '1.9.2';
|
| 254 |
wp_register_style( 'jquery-ui', '//code.jquery.com/ui/' . $jquery_version . '/themes/smoothness/jquery-ui.min.css', [], $jquery_version );
|
| 255 |
+
|
| 256 |
+
// Register datepicker JS. It will be enqueued if needed when a date field is used.
|
| 257 |
+
wp_register_script( 'wp-job-manager-datepicker', JOB_MANAGER_PLUGIN_URL . '/assets/js/datepicker.min.js', [ 'jquery', 'jquery-ui-datepicker' ], JOB_MANAGER_VERSION, true );
|
| 258 |
}
|
| 259 |
|
| 260 |
/**
|
| 261 |
* Registers select2 assets when needed.
|
| 262 |
*/
|
| 263 |
public static function register_select2_assets() {
|
| 264 |
+
wp_register_script( 'select2', JOB_MANAGER_PLUGIN_URL . '/assets/js/select2/select2.full.min.js', [ 'jquery' ], '4.0.10', false );
|
| 265 |
+
wp_register_style( 'select2', JOB_MANAGER_PLUGIN_URL . '/assets/js/select2/select2.min.css', [], '4.0.10' );
|
| 266 |
+
}
|
| 267 |
+
|
| 268 |
+
/**
|
| 269 |
+
* WordPress localizes this script late in `wp_head`. We sometimes enqueue the datepicker later on.
|
| 270 |
+
*
|
| 271 |
+
* @access private
|
| 272 |
+
* @since 1.34.1
|
| 273 |
+
*/
|
| 274 |
+
public function maybe_localize_jquery_ui_datepicker() {
|
| 275 |
+
// Check if this data has already been added. Prevents outputting localization data multiple times.
|
| 276 |
+
if ( wp_scripts()->get_data( 'jquery-ui-datepicker', 'after' ) ) {
|
| 277 |
+
return;
|
| 278 |
+
}
|
| 279 |
+
|
| 280 |
+
wp_localize_jquery_ui_datepicker();
|
| 281 |
}
|
| 282 |
|
| 283 |
/**
|
includes/forms/class-wp-job-manager-form-edit-job.php
CHANGED
|
@@ -73,11 +73,7 @@ class WP_Job_Manager_Form_Edit_Job extends WP_Job_Manager_Form_Submit_Job {
|
|
| 73 |
}
|
| 74 |
|
| 75 |
if ( ! empty( $this->job_id ) ) {
|
| 76 |
-
|
| 77 |
-
if (
|
| 78 |
-
( 'publish' === $post_status && ! wpjm_user_can_edit_published_submissions() )
|
| 79 |
-
|| ( 'publish' !== $post_status && ! job_manager_user_can_edit_pending_submissions() )
|
| 80 |
-
) {
|
| 81 |
$this->job_id = 0;
|
| 82 |
}
|
| 83 |
}
|
| 73 |
}
|
| 74 |
|
| 75 |
if ( ! empty( $this->job_id ) ) {
|
| 76 |
+
if ( ! WP_Job_Manager_Post_Types::job_is_editable( $this->job_id ) ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
| 77 |
$this->job_id = 0;
|
| 78 |
}
|
| 79 |
}
|
includes/forms/class-wp-job-manager-form-submit-job.php
CHANGED
|
@@ -104,9 +104,9 @@ class WP_Job_Manager_Form_Submit_Job extends WP_Job_Manager_Form {
|
|
| 104 |
// phpcs:disable WordPress.Security.NonceVerification.Missing, WordPress.Security.NonceVerification.Recommended -- Check happens later when possible. Input is used safely.
|
| 105 |
// Get step/job.
|
| 106 |
if ( isset( $_POST['step'] ) ) {
|
| 107 |
-
$this->step = is_numeric( $_POST['step'] ) ? max( absint( $_POST['step'] ), 0 ) : array_search(
|
| 108 |
} elseif ( ! empty( $_GET['step'] ) ) {
|
| 109 |
-
$this->step = is_numeric( $_GET['step'] ) ? max( absint( $_GET['step'] ), 0 ) : array_search(
|
| 110 |
}
|
| 111 |
|
| 112 |
$this->job_id = ! empty( $_REQUEST['job_id'] ) ? absint( $_REQUEST['job_id'] ) : 0;
|
|
@@ -465,32 +465,16 @@ class WP_Job_Manager_Form_Submit_Job extends WP_Job_Manager_Form {
|
|
| 465 |
protected function enqueue_job_form_assets() {
|
| 466 |
wp_enqueue_script( 'wp-job-manager-job-submission' );
|
| 467 |
wp_enqueue_style( 'wp-job-manager-job-submission', JOB_MANAGER_PLUGIN_URL . '/assets/css/job-submission.css', [], JOB_MANAGER_VERSION );
|
| 468 |
-
|
| 469 |
-
// Register datepicker JS. It will be enqueued if needed when a date.
|
| 470 |
-
// field is rendered.
|
| 471 |
-
wp_register_script( 'wp-job-manager-datepicker', JOB_MANAGER_PLUGIN_URL . '/assets/js/datepicker.min.js', [ 'jquery', 'jquery-ui-datepicker' ], JOB_MANAGER_VERSION, true );
|
| 472 |
-
|
| 473 |
-
// Localize scripts after the fields are rendered.
|
| 474 |
-
add_action( 'submit_job_form_end', [ $this, 'localize_job_form_scripts' ] );
|
| 475 |
}
|
| 476 |
|
| 477 |
/**
|
| 478 |
* Localize frontend scripts that have been enqueued. This should be called
|
| 479 |
* after the fields are rendered, in case some of them enqueue new scripts.
|
|
|
|
|
|
|
| 480 |
*/
|
| 481 |
public function localize_job_form_scripts() {
|
| 482 |
-
|
| 483 |
-
wp_localize_jquery_ui_datepicker();
|
| 484 |
-
} else {
|
| 485 |
-
wp_localize_script(
|
| 486 |
-
'wp-job-manager-datepicker',
|
| 487 |
-
'job_manager_datepicker',
|
| 488 |
-
[
|
| 489 |
-
/* translators: jQuery date format, see http://api.jqueryui.com/datepicker/#utility-formatDate */
|
| 490 |
-
'date_format' => _x( 'yy-mm-dd', 'Date format for jQuery datepicker.', 'wp-job-manager' ),
|
| 491 |
-
]
|
| 492 |
-
);
|
| 493 |
-
}
|
| 494 |
}
|
| 495 |
|
| 496 |
/**
|
| 104 |
// phpcs:disable WordPress.Security.NonceVerification.Missing, WordPress.Security.NonceVerification.Recommended -- Check happens later when possible. Input is used safely.
|
| 105 |
// Get step/job.
|
| 106 |
if ( isset( $_POST['step'] ) ) {
|
| 107 |
+
$this->step = is_numeric( $_POST['step'] ) ? max( absint( $_POST['step'] ), 0 ) : array_search( sanitize_text_field( $_POST['step'] ), array_keys( $this->steps ), true );
|
| 108 |
} elseif ( ! empty( $_GET['step'] ) ) {
|
| 109 |
+
$this->step = is_numeric( $_GET['step'] ) ? max( absint( $_GET['step'] ), 0 ) : array_search( sanitize_text_field( $_GET['step'] ), array_keys( $this->steps ), true );
|
| 110 |
}
|
| 111 |
|
| 112 |
$this->job_id = ! empty( $_REQUEST['job_id'] ) ? absint( $_REQUEST['job_id'] ) : 0;
|
| 465 |
protected function enqueue_job_form_assets() {
|
| 466 |
wp_enqueue_script( 'wp-job-manager-job-submission' );
|
| 467 |
wp_enqueue_style( 'wp-job-manager-job-submission', JOB_MANAGER_PLUGIN_URL . '/assets/css/job-submission.css', [], JOB_MANAGER_VERSION );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 468 |
}
|
| 469 |
|
| 470 |
/**
|
| 471 |
* Localize frontend scripts that have been enqueued. This should be called
|
| 472 |
* after the fields are rendered, in case some of them enqueue new scripts.
|
| 473 |
+
*
|
| 474 |
+
* @deprecated 1.34.1 No longer needed.
|
| 475 |
*/
|
| 476 |
public function localize_job_form_scripts() {
|
| 477 |
+
_deprecated_function( __METHOD__, '1.34.1' );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 478 |
}
|
| 479 |
|
| 480 |
/**
|
languages/wp-job-manager.pot
CHANGED
|
@@ -2,9 +2,9 @@
|
|
| 2 |
# This file is distributed under the GPL2+.
|
| 3 |
msgid ""
|
| 4 |
msgstr ""
|
| 5 |
-
"Project-Id-Version: WP Job Manager 1.34.
|
| 6 |
"Report-Msgid-Bugs-To: https://github.com/Automattic/WP-Job-Manager/issues\n"
|
| 7 |
-
"POT-Creation-Date: 2019-10-
|
| 8 |
"MIME-Version: 1.0\n"
|
| 9 |
"Content-Type: text/plain; charset=utf-8\n"
|
| 10 |
"Content-Transfer-Encoding: 8bit\n"
|
|
@@ -31,7 +31,7 @@ msgid "\"%s\" check failed. Please try again."
|
|
| 31 |
msgstr ""
|
| 32 |
|
| 33 |
#: includes/admin/class-wp-job-manager-addons.php:125
|
| 34 |
-
#: includes/admin/class-wp-job-manager-admin.php:
|
| 35 |
#: includes/admin/views/html-admin-page-addons.php:12
|
| 36 |
msgid "WP Job Manager Add-ons"
|
| 37 |
msgstr ""
|
|
@@ -49,11 +49,11 @@ msgstr ""
|
|
| 49 |
msgid "You don’t have permission to do this."
|
| 50 |
msgstr ""
|
| 51 |
|
| 52 |
-
#: includes/admin/class-wp-job-manager-admin.php:
|
| 53 |
msgid "Settings"
|
| 54 |
msgstr ""
|
| 55 |
|
| 56 |
-
#: includes/admin/class-wp-job-manager-admin.php:
|
| 57 |
msgid "Add-ons"
|
| 58 |
msgstr ""
|
| 59 |
|
|
@@ -200,8 +200,8 @@ msgid "Type"
|
|
| 200 |
msgstr ""
|
| 201 |
|
| 202 |
#: includes/admin/class-wp-job-manager-cpt.php:497
|
| 203 |
-
#: includes/class-wp-job-manager-email-notifications.php:
|
| 204 |
-
#: includes/class-wp-job-manager-post-types.php:
|
| 205 |
#: includes/forms/class-wp-job-manager-form-submit-job.php:213
|
| 206 |
#: includes/widgets/class-wp-job-manager-widget-recent-jobs.php:46
|
| 207 |
#: templates/job-filters.php:35 templates/job-filters.php:36
|
|
@@ -712,11 +712,11 @@ msgstr ""
|
|
| 712 |
msgid "Save Changes"
|
| 713 |
msgstr ""
|
| 714 |
|
| 715 |
-
#: includes/admin/class-wp-job-manager-settings.php:
|
| 716 |
msgid "--no page--"
|
| 717 |
msgstr ""
|
| 718 |
|
| 719 |
-
#: includes/admin/class-wp-job-manager-settings.php:
|
| 720 |
msgid "Select a page…"
|
| 721 |
msgstr ""
|
| 722 |
|
|
@@ -732,7 +732,7 @@ msgid "Employment Type"
|
|
| 732 |
msgstr ""
|
| 733 |
|
| 734 |
#: includes/admin/class-wp-job-manager-writepanels.php:64
|
| 735 |
-
#: includes/class-wp-job-manager-email-notifications.php:
|
| 736 |
msgid "Posted by"
|
| 737 |
msgstr ""
|
| 738 |
|
|
@@ -759,7 +759,7 @@ msgid "Add file"
|
|
| 759 |
msgstr ""
|
| 760 |
|
| 761 |
#: includes/admin/class-wp-job-manager-writepanels.php:471
|
| 762 |
-
#: includes/class-wp-job-manager-ajax.php:
|
| 763 |
#. translators: Used in user select. %1$s is the user's display name; #%2$s is
|
| 764 |
#. the user ID; %3$s is the user email.
|
| 765 |
msgid "%1$s (#%2$s – %3$s)"
|
|
@@ -991,14 +991,14 @@ msgstr ""
|
|
| 991 |
msgid "Help other users on the forums"
|
| 992 |
msgstr ""
|
| 993 |
|
| 994 |
-
#: includes/class-wp-job-manager-ajax.php:
|
| 995 |
#. translators: Placeholder %d is the number of found search results.
|
| 996 |
msgid "Search completed. Found %d matching record."
|
| 997 |
msgid_plural "Search completed. Found %d matching records."
|
| 998 |
msgstr[0] ""
|
| 999 |
msgstr[1] ""
|
| 1000 |
|
| 1001 |
-
#: includes/class-wp-job-manager-ajax.php:
|
| 1002 |
msgid "You must be logged in to upload files using this method."
|
| 1003 |
msgstr ""
|
| 1004 |
|
|
@@ -1012,27 +1012,27 @@ msgid "Company Logo"
|
|
| 1012 |
msgstr ""
|
| 1013 |
|
| 1014 |
#: includes/class-wp-job-manager-data-exporter.php:52
|
| 1015 |
-
#: includes/class-wp-job-manager-post-types.php:
|
| 1016 |
msgid "Company Name"
|
| 1017 |
msgstr ""
|
| 1018 |
|
| 1019 |
#: includes/class-wp-job-manager-data-exporter.php:53
|
| 1020 |
-
#: includes/class-wp-job-manager-post-types.php:
|
| 1021 |
msgid "Company Website"
|
| 1022 |
msgstr ""
|
| 1023 |
|
| 1024 |
#: includes/class-wp-job-manager-data-exporter.php:54
|
| 1025 |
-
#: includes/class-wp-job-manager-post-types.php:
|
| 1026 |
msgid "Company Tagline"
|
| 1027 |
msgstr ""
|
| 1028 |
|
| 1029 |
#: includes/class-wp-job-manager-data-exporter.php:55
|
| 1030 |
-
#: includes/class-wp-job-manager-post-types.php:
|
| 1031 |
msgid "Company Twitter"
|
| 1032 |
msgstr ""
|
| 1033 |
|
| 1034 |
#: includes/class-wp-job-manager-data-exporter.php:56
|
| 1035 |
-
#: includes/class-wp-job-manager-post-types.php:
|
| 1036 |
msgid "Company Video"
|
| 1037 |
msgstr ""
|
| 1038 |
|
|
@@ -1068,52 +1068,52 @@ msgstr ""
|
|
| 1068 |
msgid "WordPress Update Required"
|
| 1069 |
msgstr ""
|
| 1070 |
|
| 1071 |
-
#: includes/class-wp-job-manager-email-notifications.php:
|
| 1072 |
msgid "Job title"
|
| 1073 |
msgstr ""
|
| 1074 |
|
| 1075 |
-
#: includes/class-wp-job-manager-email-notifications.php:
|
| 1076 |
#: includes/class-wp-job-manager-post-types.php:218
|
| 1077 |
#: includes/forms/class-wp-job-manager-form-submit-job.php:221
|
| 1078 |
msgid "Job type"
|
| 1079 |
msgstr ""
|
| 1080 |
|
| 1081 |
-
#: includes/class-wp-job-manager-email-notifications.php:
|
| 1082 |
#: includes/class-wp-job-manager-post-types.php:154
|
| 1083 |
#: includes/forms/class-wp-job-manager-form-submit-job.php:230
|
| 1084 |
msgid "Job category"
|
| 1085 |
msgstr ""
|
| 1086 |
|
| 1087 |
-
#: includes/class-wp-job-manager-email-notifications.php:
|
| 1088 |
#: includes/forms/class-wp-job-manager-form-submit-job.php:255
|
| 1089 |
msgid "Company name"
|
| 1090 |
msgstr ""
|
| 1091 |
|
| 1092 |
-
#: includes/class-wp-job-manager-email-notifications.php:
|
| 1093 |
msgid "Company website"
|
| 1094 |
msgstr ""
|
| 1095 |
|
| 1096 |
-
#: includes/class-wp-job-manager-email-notifications.php:
|
| 1097 |
msgid "Listing expires"
|
| 1098 |
msgstr ""
|
| 1099 |
|
| 1100 |
-
#: includes/class-wp-job-manager-email-notifications.php:
|
| 1101 |
msgid "Email Notifications"
|
| 1102 |
msgstr ""
|
| 1103 |
|
| 1104 |
-
#: includes/class-wp-job-manager-email-notifications.php:
|
| 1105 |
msgid "Select the email notifications to enable."
|
| 1106 |
msgstr ""
|
| 1107 |
|
| 1108 |
-
#: includes/class-wp-job-manager-email-notifications.php:
|
| 1109 |
msgid "Format"
|
| 1110 |
msgstr ""
|
| 1111 |
|
| 1112 |
-
#: includes/class-wp-job-manager-email-notifications.php:
|
| 1113 |
msgid "Send plain text email"
|
| 1114 |
msgstr ""
|
| 1115 |
|
| 1116 |
-
#: includes/class-wp-job-manager-email-notifications.php:
|
| 1117 |
msgid "Send rich text email"
|
| 1118 |
msgstr ""
|
| 1119 |
|
|
@@ -1301,78 +1301,78 @@ msgid_plural "Preview <span class=\"count\">(%s)</span>"
|
|
| 1301 |
msgstr[0] ""
|
| 1302 |
msgstr[1] ""
|
| 1303 |
|
| 1304 |
-
#: includes/class-wp-job-manager-post-types.php:
|
| 1305 |
#: includes/forms/class-wp-job-manager-form-submit-job.php:190
|
| 1306 |
msgid "Application email/URL"
|
| 1307 |
msgstr ""
|
| 1308 |
|
| 1309 |
-
#: includes/class-wp-job-manager-post-types.php:
|
| 1310 |
#: includes/forms/class-wp-job-manager-form-submit-job.php:191
|
| 1311 |
msgid "Enter an email address or website URL"
|
| 1312 |
msgstr ""
|
| 1313 |
|
| 1314 |
-
#: includes/class-wp-job-manager-post-types.php:
|
| 1315 |
#: includes/forms/class-wp-job-manager-form-submit-job.php:180
|
| 1316 |
msgid "Application email"
|
| 1317 |
msgstr ""
|
| 1318 |
|
| 1319 |
-
#: includes/class-wp-job-manager-post-types.php:
|
| 1320 |
#: includes/forms/class-wp-job-manager-form-submit-job.php:181
|
| 1321 |
msgid "you@example.com"
|
| 1322 |
msgstr ""
|
| 1323 |
|
| 1324 |
-
#: includes/class-wp-job-manager-post-types.php:
|
| 1325 |
#: includes/forms/class-wp-job-manager-form-submit-job.php:185
|
| 1326 |
msgid "Application URL"
|
| 1327 |
msgstr ""
|
| 1328 |
|
| 1329 |
-
#: includes/class-wp-job-manager-post-types.php:
|
| 1330 |
#: includes/forms/class-wp-job-manager-form-submit-job.php:186
|
| 1331 |
msgid "https://"
|
| 1332 |
msgstr ""
|
| 1333 |
|
| 1334 |
-
#: includes/class-wp-job-manager-post-types.php:
|
| 1335 |
#: includes/forms/class-wp-job-manager-form-submit-job.php:217
|
| 1336 |
msgid "e.g. \"London\""
|
| 1337 |
msgstr ""
|
| 1338 |
|
| 1339 |
-
#: includes/class-wp-job-manager-post-types.php:
|
| 1340 |
msgid "Leave this blank if the location is not important."
|
| 1341 |
msgstr ""
|
| 1342 |
|
| 1343 |
-
#: includes/class-wp-job-manager-post-types.php:
|
| 1344 |
msgid ""
|
| 1345 |
"This field is required for the \"application\" area to appear beneath the "
|
| 1346 |
"listing."
|
| 1347 |
msgstr ""
|
| 1348 |
|
| 1349 |
-
#: includes/class-wp-job-manager-post-types.php:
|
| 1350 |
msgid "Brief description about the company"
|
| 1351 |
msgstr ""
|
| 1352 |
|
| 1353 |
-
#: includes/class-wp-job-manager-post-types.php:
|
| 1354 |
msgid "URL to the company video"
|
| 1355 |
msgstr ""
|
| 1356 |
|
| 1357 |
-
#: includes/class-wp-job-manager-post-types.php:
|
| 1358 |
msgid "Position Filled"
|
| 1359 |
msgstr ""
|
| 1360 |
|
| 1361 |
-
#: includes/class-wp-job-manager-post-types.php:
|
| 1362 |
msgid "Filled listings will no longer accept applications."
|
| 1363 |
msgstr ""
|
| 1364 |
|
| 1365 |
-
#: includes/class-wp-job-manager-post-types.php:
|
| 1366 |
msgid "Featured Listing"
|
| 1367 |
msgstr ""
|
| 1368 |
|
| 1369 |
-
#: includes/class-wp-job-manager-post-types.php:
|
| 1370 |
msgid ""
|
| 1371 |
"Featured listings will be sticky during searches, and can be styled "
|
| 1372 |
"differently."
|
| 1373 |
msgstr ""
|
| 1374 |
|
| 1375 |
-
#: includes/class-wp-job-manager-post-types.php:
|
| 1376 |
msgid "Listing Expiry Date"
|
| 1377 |
msgstr ""
|
| 1378 |
|
|
@@ -1452,7 +1452,7 @@ msgstr ""
|
|
| 1452 |
msgid "Enable Usage Tracking"
|
| 1453 |
msgstr ""
|
| 1454 |
|
| 1455 |
-
#: includes/class-wp-job-manager.php:
|
| 1456 |
#. translators: Placeholders %1$s and %2$s are the names of the two cookies
|
| 1457 |
#. used in WP Job Manager.
|
| 1458 |
msgid ""
|
|
@@ -1461,26 +1461,26 @@ msgid ""
|
|
| 1461 |
"\t\t\t\thave started but have not completed: %1$s and %2$s"
|
| 1462 |
msgstr ""
|
| 1463 |
|
| 1464 |
-
#: includes/class-wp-job-manager.php:
|
| 1465 |
msgid "Load previous listings"
|
| 1466 |
msgstr ""
|
| 1467 |
|
| 1468 |
-
#: includes/class-wp-job-manager.php:
|
| 1469 |
msgid "Invalid file type. Accepted types:"
|
| 1470 |
msgstr ""
|
| 1471 |
|
| 1472 |
-
#: includes/class-wp-job-manager.php:
|
| 1473 |
#: includes/forms/class-wp-job-manager-form-submit-job.php:406
|
| 1474 |
#. translators: Placeholder %d is the number of files to that users are limited
|
| 1475 |
#. to.
|
| 1476 |
msgid "You are only allowed to upload a maximum of %d files."
|
| 1477 |
msgstr ""
|
| 1478 |
|
| 1479 |
-
#: includes/class-wp-job-manager.php:
|
| 1480 |
msgid "Are you sure you want to delete this listing?"
|
| 1481 |
msgstr ""
|
| 1482 |
|
| 1483 |
-
#: includes/class-wp-job-manager.php:
|
| 1484 |
msgid "This field is required."
|
| 1485 |
msgstr ""
|
| 1486 |
|
|
@@ -1543,27 +1543,27 @@ msgstr ""
|
|
| 1543 |
msgid "days"
|
| 1544 |
msgstr ""
|
| 1545 |
|
| 1546 |
-
#: includes/forms/class-wp-job-manager-form-edit-job.php:
|
| 1547 |
msgid "Invalid listing"
|
| 1548 |
msgstr ""
|
| 1549 |
|
| 1550 |
-
#: includes/forms/class-wp-job-manager-form-edit-job.php:
|
| 1551 |
msgid "Save changes"
|
| 1552 |
msgstr ""
|
| 1553 |
|
| 1554 |
-
#: includes/forms/class-wp-job-manager-form-edit-job.php:
|
| 1555 |
msgid "Submit changes for approval"
|
| 1556 |
msgstr ""
|
| 1557 |
|
| 1558 |
-
#: includes/forms/class-wp-job-manager-form-edit-job.php:
|
| 1559 |
msgid "Your changes have been saved."
|
| 1560 |
msgstr ""
|
| 1561 |
|
| 1562 |
-
#: includes/forms/class-wp-job-manager-form-edit-job.php:
|
| 1563 |
msgid "View →"
|
| 1564 |
msgstr ""
|
| 1565 |
|
| 1566 |
-
#: includes/forms/class-wp-job-manager-form-edit-job.php:
|
| 1567 |
msgid ""
|
| 1568 |
"Your changes have been submitted and your listing will be visible again "
|
| 1569 |
"once approved."
|
|
@@ -1574,7 +1574,7 @@ msgid "Submit Details"
|
|
| 1574 |
msgstr ""
|
| 1575 |
|
| 1576 |
#: includes/forms/class-wp-job-manager-form-submit-job.php:88
|
| 1577 |
-
#: includes/forms/class-wp-job-manager-form-submit-job.php:
|
| 1578 |
#: templates/job-preview.php:30
|
| 1579 |
msgid "Preview"
|
| 1580 |
msgstr ""
|
|
@@ -1675,36 +1675,36 @@ msgstr ""
|
|
| 1675 |
msgid "Please enter a valid application email address or URL"
|
| 1676 |
msgstr ""
|
| 1677 |
|
| 1678 |
-
#: includes/forms/class-wp-job-manager-form-submit-job.php:
|
| 1679 |
msgid "Please enter a username."
|
| 1680 |
msgstr ""
|
| 1681 |
|
| 1682 |
-
#: includes/forms/class-wp-job-manager-form-submit-job.php:
|
| 1683 |
msgid "Please enter a password."
|
| 1684 |
msgstr ""
|
| 1685 |
|
| 1686 |
-
#: includes/forms/class-wp-job-manager-form-submit-job.php:
|
| 1687 |
msgid "Please enter your email address."
|
| 1688 |
msgstr ""
|
| 1689 |
|
| 1690 |
-
#: includes/forms/class-wp-job-manager-form-submit-job.php:
|
| 1691 |
msgid "Passwords must match."
|
| 1692 |
msgstr ""
|
| 1693 |
|
| 1694 |
-
#: includes/forms/class-wp-job-manager-form-submit-job.php:
|
| 1695 |
#. translators: Placeholder %s is the password hint.
|
| 1696 |
msgid "Invalid Password: %s"
|
| 1697 |
msgstr ""
|
| 1698 |
|
| 1699 |
-
#: includes/forms/class-wp-job-manager-form-submit-job.php:
|
| 1700 |
msgid "Password is not valid."
|
| 1701 |
msgstr ""
|
| 1702 |
|
| 1703 |
-
#: includes/forms/class-wp-job-manager-form-submit-job.php:
|
| 1704 |
msgid "You must be signed in to post a new listing."
|
| 1705 |
msgstr ""
|
| 1706 |
|
| 1707 |
-
#: includes/forms/class-wp-job-manager-form-submit-job.php:
|
| 1708 |
#. translators: placeholder is the URL to the job dashboard page.
|
| 1709 |
msgid ""
|
| 1710 |
"Draft was saved. Job listing drafts can be resumed from the <a "
|
|
@@ -2293,28 +2293,20 @@ msgctxt "user selection"
|
|
| 2293 |
msgid "Searching…"
|
| 2294 |
msgstr ""
|
| 2295 |
|
| 2296 |
-
#: includes/admin/class-wp-job-manager-admin.php:123
|
| 2297 |
-
#: includes/forms/class-wp-job-manager-form-submit-job.php:490
|
| 2298 |
-
#. translators: jQuery date format, see
|
| 2299 |
-
#. http:api.jqueryui.com/datepicker/#utility-formatDate
|
| 2300 |
-
msgctxt "Date format for jQuery datepicker."
|
| 2301 |
-
msgid "yy-mm-dd"
|
| 2302 |
-
msgstr ""
|
| 2303 |
-
|
| 2304 |
#: includes/admin/class-wp-job-manager-permalink-settings.php:108
|
| 2305 |
-
#: includes/class-wp-job-manager-post-types.php:
|
| 2306 |
msgctxt "Job permalink - resave permalinks after changing this"
|
| 2307 |
msgid "job"
|
| 2308 |
msgstr ""
|
| 2309 |
|
| 2310 |
#: includes/admin/class-wp-job-manager-permalink-settings.php:117
|
| 2311 |
-
#: includes/class-wp-job-manager-post-types.php:
|
| 2312 |
msgctxt "Job category slug - resave permalinks after changing this"
|
| 2313 |
msgid "job-category"
|
| 2314 |
msgstr ""
|
| 2315 |
|
| 2316 |
#: includes/admin/class-wp-job-manager-permalink-settings.php:126
|
| 2317 |
-
#: includes/class-wp-job-manager-post-types.php:
|
| 2318 |
msgctxt "Job type slug - resave permalinks after changing this"
|
| 2319 |
msgid "job-type"
|
| 2320 |
msgstr ""
|
|
@@ -2366,7 +2358,7 @@ msgctxt "post status"
|
|
| 2366 |
msgid "Active"
|
| 2367 |
msgstr ""
|
| 2368 |
|
| 2369 |
-
#: includes/class-wp-job-manager-post-types.php:
|
| 2370 |
msgctxt "Post type archive slug - resave permalinks after changing this"
|
| 2371 |
msgid "jobs"
|
| 2372 |
msgstr ""
|
| 2 |
# This file is distributed under the GPL2+.
|
| 3 |
msgid ""
|
| 4 |
msgstr ""
|
| 5 |
+
"Project-Id-Version: WP Job Manager 1.34.1\n"
|
| 6 |
"Report-Msgid-Bugs-To: https://github.com/Automattic/WP-Job-Manager/issues\n"
|
| 7 |
+
"POT-Creation-Date: 2019-10-30 18:24:14+00:00\n"
|
| 8 |
"MIME-Version: 1.0\n"
|
| 9 |
"Content-Type: text/plain; charset=utf-8\n"
|
| 10 |
"Content-Transfer-Encoding: 8bit\n"
|
| 31 |
msgstr ""
|
| 32 |
|
| 33 |
#: includes/admin/class-wp-job-manager-addons.php:125
|
| 34 |
+
#: includes/admin/class-wp-job-manager-admin.php:128
|
| 35 |
#: includes/admin/views/html-admin-page-addons.php:12
|
| 36 |
msgid "WP Job Manager Add-ons"
|
| 37 |
msgstr ""
|
| 49 |
msgid "You don’t have permission to do this."
|
| 50 |
msgstr ""
|
| 51 |
|
| 52 |
+
#: includes/admin/class-wp-job-manager-admin.php:125
|
| 53 |
msgid "Settings"
|
| 54 |
msgstr ""
|
| 55 |
|
| 56 |
+
#: includes/admin/class-wp-job-manager-admin.php:128
|
| 57 |
msgid "Add-ons"
|
| 58 |
msgstr ""
|
| 59 |
|
| 200 |
msgstr ""
|
| 201 |
|
| 202 |
#: includes/admin/class-wp-job-manager-cpt.php:497
|
| 203 |
+
#: includes/class-wp-job-manager-email-notifications.php:270
|
| 204 |
+
#: includes/class-wp-job-manager-post-types.php:1254
|
| 205 |
#: includes/forms/class-wp-job-manager-form-submit-job.php:213
|
| 206 |
#: includes/widgets/class-wp-job-manager-widget-recent-jobs.php:46
|
| 207 |
#: templates/job-filters.php:35 templates/job-filters.php:36
|
| 712 |
msgid "Save Changes"
|
| 713 |
msgstr ""
|
| 714 |
|
| 715 |
+
#: includes/admin/class-wp-job-manager-settings.php:643
|
| 716 |
msgid "--no page--"
|
| 717 |
msgstr ""
|
| 718 |
|
| 719 |
+
#: includes/admin/class-wp-job-manager-settings.php:649
|
| 720 |
msgid "Select a page…"
|
| 721 |
msgstr ""
|
| 722 |
|
| 732 |
msgstr ""
|
| 733 |
|
| 734 |
#: includes/admin/class-wp-job-manager-writepanels.php:64
|
| 735 |
+
#: includes/class-wp-job-manager-email-notifications.php:324
|
| 736 |
msgid "Posted by"
|
| 737 |
msgstr ""
|
| 738 |
|
| 759 |
msgstr ""
|
| 760 |
|
| 761 |
#: includes/admin/class-wp-job-manager-writepanels.php:471
|
| 762 |
+
#: includes/class-wp-job-manager-ajax.php:419
|
| 763 |
#. translators: Used in user select. %1$s is the user's display name; #%2$s is
|
| 764 |
#. the user ID; %3$s is the user email.
|
| 765 |
msgid "%1$s (#%2$s – %3$s)"
|
| 991 |
msgid "Help other users on the forums"
|
| 992 |
msgstr ""
|
| 993 |
|
| 994 |
+
#: includes/class-wp-job-manager-ajax.php:186
|
| 995 |
#. translators: Placeholder %d is the number of found search results.
|
| 996 |
msgid "Search completed. Found %d matching record."
|
| 997 |
msgid_plural "Search completed. Found %d matching records."
|
| 998 |
msgstr[0] ""
|
| 999 |
msgstr[1] ""
|
| 1000 |
|
| 1001 |
+
#: includes/class-wp-job-manager-ajax.php:284
|
| 1002 |
msgid "You must be logged in to upload files using this method."
|
| 1003 |
msgstr ""
|
| 1004 |
|
| 1012 |
msgstr ""
|
| 1013 |
|
| 1014 |
#: includes/class-wp-job-manager-data-exporter.php:52
|
| 1015 |
+
#: includes/class-wp-job-manager-post-types.php:1273
|
| 1016 |
msgid "Company Name"
|
| 1017 |
msgstr ""
|
| 1018 |
|
| 1019 |
#: includes/class-wp-job-manager-data-exporter.php:53
|
| 1020 |
+
#: includes/class-wp-job-manager-post-types.php:1281
|
| 1021 |
msgid "Company Website"
|
| 1022 |
msgstr ""
|
| 1023 |
|
| 1024 |
#: includes/class-wp-job-manager-data-exporter.php:54
|
| 1025 |
+
#: includes/class-wp-job-manager-post-types.php:1290
|
| 1026 |
msgid "Company Tagline"
|
| 1027 |
msgstr ""
|
| 1028 |
|
| 1029 |
#: includes/class-wp-job-manager-data-exporter.php:55
|
| 1030 |
+
#: includes/class-wp-job-manager-post-types.php:1298
|
| 1031 |
msgid "Company Twitter"
|
| 1032 |
msgstr ""
|
| 1033 |
|
| 1034 |
#: includes/class-wp-job-manager-data-exporter.php:56
|
| 1035 |
+
#: includes/class-wp-job-manager-post-types.php:1306
|
| 1036 |
msgid "Company Video"
|
| 1037 |
msgstr ""
|
| 1038 |
|
| 1068 |
msgid "WordPress Update Required"
|
| 1069 |
msgstr ""
|
| 1070 |
|
| 1071 |
+
#: includes/class-wp-job-manager-email-notifications.php:259
|
| 1072 |
msgid "Job title"
|
| 1073 |
msgstr ""
|
| 1074 |
|
| 1075 |
+
#: includes/class-wp-job-manager-email-notifications.php:279
|
| 1076 |
#: includes/class-wp-job-manager-post-types.php:218
|
| 1077 |
#: includes/forms/class-wp-job-manager-form-submit-job.php:221
|
| 1078 |
msgid "Job type"
|
| 1079 |
msgstr ""
|
| 1080 |
|
| 1081 |
+
#: includes/class-wp-job-manager-email-notifications.php:289
|
| 1082 |
#: includes/class-wp-job-manager-post-types.php:154
|
| 1083 |
#: includes/forms/class-wp-job-manager-form-submit-job.php:230
|
| 1084 |
msgid "Job category"
|
| 1085 |
msgstr ""
|
| 1086 |
|
| 1087 |
+
#: includes/class-wp-job-manager-email-notifications.php:298
|
| 1088 |
#: includes/forms/class-wp-job-manager-form-submit-job.php:255
|
| 1089 |
msgid "Company name"
|
| 1090 |
msgstr ""
|
| 1091 |
|
| 1092 |
+
#: includes/class-wp-job-manager-email-notifications.php:306
|
| 1093 |
msgid "Company website"
|
| 1094 |
msgstr ""
|
| 1095 |
|
| 1096 |
+
#: includes/class-wp-job-manager-email-notifications.php:315
|
| 1097 |
msgid "Listing expires"
|
| 1098 |
msgstr ""
|
| 1099 |
|
| 1100 |
+
#: includes/class-wp-job-manager-email-notifications.php:474
|
| 1101 |
msgid "Email Notifications"
|
| 1102 |
msgstr ""
|
| 1103 |
|
| 1104 |
+
#: includes/class-wp-job-manager-email-notifications.php:477
|
| 1105 |
msgid "Select the email notifications to enable."
|
| 1106 |
msgstr ""
|
| 1107 |
|
| 1108 |
+
#: includes/class-wp-job-manager-email-notifications.php:630
|
| 1109 |
msgid "Format"
|
| 1110 |
msgstr ""
|
| 1111 |
|
| 1112 |
+
#: includes/class-wp-job-manager-email-notifications.php:633
|
| 1113 |
msgid "Send plain text email"
|
| 1114 |
msgstr ""
|
| 1115 |
|
| 1116 |
+
#: includes/class-wp-job-manager-email-notifications.php:634
|
| 1117 |
msgid "Send rich text email"
|
| 1118 |
msgstr ""
|
| 1119 |
|
| 1301 |
msgstr[0] ""
|
| 1302 |
msgstr[1] ""
|
| 1303 |
|
| 1304 |
+
#: includes/class-wp-job-manager-post-types.php:1241
|
| 1305 |
#: includes/forms/class-wp-job-manager-form-submit-job.php:190
|
| 1306 |
msgid "Application email/URL"
|
| 1307 |
msgstr ""
|
| 1308 |
|
| 1309 |
+
#: includes/class-wp-job-manager-post-types.php:1242
|
| 1310 |
#: includes/forms/class-wp-job-manager-form-submit-job.php:191
|
| 1311 |
msgid "Enter an email address or website URL"
|
| 1312 |
msgstr ""
|
| 1313 |
|
| 1314 |
+
#: includes/class-wp-job-manager-post-types.php:1245
|
| 1315 |
#: includes/forms/class-wp-job-manager-form-submit-job.php:180
|
| 1316 |
msgid "Application email"
|
| 1317 |
msgstr ""
|
| 1318 |
|
| 1319 |
+
#: includes/class-wp-job-manager-post-types.php:1246
|
| 1320 |
#: includes/forms/class-wp-job-manager-form-submit-job.php:181
|
| 1321 |
msgid "you@example.com"
|
| 1322 |
msgstr ""
|
| 1323 |
|
| 1324 |
+
#: includes/class-wp-job-manager-post-types.php:1248
|
| 1325 |
#: includes/forms/class-wp-job-manager-form-submit-job.php:185
|
| 1326 |
msgid "Application URL"
|
| 1327 |
msgstr ""
|
| 1328 |
|
| 1329 |
+
#: includes/class-wp-job-manager-post-types.php:1249
|
| 1330 |
#: includes/forms/class-wp-job-manager-form-submit-job.php:186
|
| 1331 |
msgid "https://"
|
| 1332 |
msgstr ""
|
| 1333 |
|
| 1334 |
+
#: includes/class-wp-job-manager-post-types.php:1255
|
| 1335 |
#: includes/forms/class-wp-job-manager-form-submit-job.php:217
|
| 1336 |
msgid "e.g. \"London\""
|
| 1337 |
msgstr ""
|
| 1338 |
|
| 1339 |
+
#: includes/class-wp-job-manager-post-types.php:1256
|
| 1340 |
msgid "Leave this blank if the location is not important."
|
| 1341 |
msgstr ""
|
| 1342 |
|
| 1343 |
+
#: includes/class-wp-job-manager-post-types.php:1265
|
| 1344 |
msgid ""
|
| 1345 |
"This field is required for the \"application\" area to appear beneath the "
|
| 1346 |
"listing."
|
| 1347 |
msgstr ""
|
| 1348 |
|
| 1349 |
+
#: includes/class-wp-job-manager-post-types.php:1291
|
| 1350 |
msgid "Brief description about the company"
|
| 1351 |
msgstr ""
|
| 1352 |
|
| 1353 |
+
#: includes/class-wp-job-manager-post-types.php:1307
|
| 1354 |
msgid "URL to the company video"
|
| 1355 |
msgstr ""
|
| 1356 |
|
| 1357 |
+
#: includes/class-wp-job-manager-post-types.php:1316
|
| 1358 |
msgid "Position Filled"
|
| 1359 |
msgstr ""
|
| 1360 |
|
| 1361 |
+
#: includes/class-wp-job-manager-post-types.php:1322
|
| 1362 |
msgid "Filled listings will no longer accept applications."
|
| 1363 |
msgstr ""
|
| 1364 |
|
| 1365 |
+
#: includes/class-wp-job-manager-post-types.php:1325
|
| 1366 |
msgid "Featured Listing"
|
| 1367 |
msgstr ""
|
| 1368 |
|
| 1369 |
+
#: includes/class-wp-job-manager-post-types.php:1327
|
| 1370 |
msgid ""
|
| 1371 |
"Featured listings will be sticky during searches, and can be styled "
|
| 1372 |
"differently."
|
| 1373 |
msgstr ""
|
| 1374 |
|
| 1375 |
+
#: includes/class-wp-job-manager-post-types.php:1335
|
| 1376 |
msgid "Listing Expiry Date"
|
| 1377 |
msgstr ""
|
| 1378 |
|
| 1452 |
msgid "Enable Usage Tracking"
|
| 1453 |
msgstr ""
|
| 1454 |
|
| 1455 |
+
#: includes/class-wp-job-manager.php:139
|
| 1456 |
#. translators: Placeholders %1$s and %2$s are the names of the two cookies
|
| 1457 |
#. used in WP Job Manager.
|
| 1458 |
msgid ""
|
| 1461 |
"\t\t\t\thave started but have not completed: %1$s and %2$s"
|
| 1462 |
msgstr ""
|
| 1463 |
|
| 1464 |
+
#: includes/class-wp-job-manager.php:295
|
| 1465 |
msgid "Load previous listings"
|
| 1466 |
msgstr ""
|
| 1467 |
|
| 1468 |
+
#: includes/class-wp-job-manager.php:422
|
| 1469 |
msgid "Invalid file type. Accepted types:"
|
| 1470 |
msgstr ""
|
| 1471 |
|
| 1472 |
+
#: includes/class-wp-job-manager.php:439
|
| 1473 |
#: includes/forms/class-wp-job-manager-form-submit-job.php:406
|
| 1474 |
#. translators: Placeholder %d is the number of files to that users are limited
|
| 1475 |
#. to.
|
| 1476 |
msgid "You are only allowed to upload a maximum of %d files."
|
| 1477 |
msgstr ""
|
| 1478 |
|
| 1479 |
+
#: includes/class-wp-job-manager.php:447
|
| 1480 |
msgid "Are you sure you want to delete this listing?"
|
| 1481 |
msgstr ""
|
| 1482 |
|
| 1483 |
+
#: includes/class-wp-job-manager.php:455
|
| 1484 |
msgid "This field is required."
|
| 1485 |
msgstr ""
|
| 1486 |
|
| 1543 |
msgid "days"
|
| 1544 |
msgstr ""
|
| 1545 |
|
| 1546 |
+
#: includes/forms/class-wp-job-manager-form-edit-job.php:104
|
| 1547 |
msgid "Invalid listing"
|
| 1548 |
msgstr ""
|
| 1549 |
|
| 1550 |
+
#: includes/forms/class-wp-job-manager-form-edit-job.php:136
|
| 1551 |
msgid "Save changes"
|
| 1552 |
msgstr ""
|
| 1553 |
|
| 1554 |
+
#: includes/forms/class-wp-job-manager-form-edit-job.php:141
|
| 1555 |
msgid "Submit changes for approval"
|
| 1556 |
msgstr ""
|
| 1557 |
|
| 1558 |
+
#: includes/forms/class-wp-job-manager-form-edit-job.php:195
|
| 1559 |
msgid "Your changes have been saved."
|
| 1560 |
msgstr ""
|
| 1561 |
|
| 1562 |
+
#: includes/forms/class-wp-job-manager-form-edit-job.php:201
|
| 1563 |
msgid "View →"
|
| 1564 |
msgstr ""
|
| 1565 |
|
| 1566 |
+
#: includes/forms/class-wp-job-manager-form-edit-job.php:203
|
| 1567 |
msgid ""
|
| 1568 |
"Your changes have been submitted and your listing will be visible again "
|
| 1569 |
"once approved."
|
| 1574 |
msgstr ""
|
| 1575 |
|
| 1576 |
#: includes/forms/class-wp-job-manager-form-submit-job.php:88
|
| 1577 |
+
#: includes/forms/class-wp-job-manager-form-submit-job.php:562
|
| 1578 |
#: templates/job-preview.php:30
|
| 1579 |
msgid "Preview"
|
| 1580 |
msgstr ""
|
| 1675 |
msgid "Please enter a valid application email address or URL"
|
| 1676 |
msgstr ""
|
| 1677 |
|
| 1678 |
+
#: includes/forms/class-wp-job-manager-form-submit-job.php:621
|
| 1679 |
msgid "Please enter a username."
|
| 1680 |
msgstr ""
|
| 1681 |
|
| 1682 |
+
#: includes/forms/class-wp-job-manager-form-submit-job.php:625
|
| 1683 |
msgid "Please enter a password."
|
| 1684 |
msgstr ""
|
| 1685 |
|
| 1686 |
+
#: includes/forms/class-wp-job-manager-form-submit-job.php:629
|
| 1687 |
msgid "Please enter your email address."
|
| 1688 |
msgstr ""
|
| 1689 |
|
| 1690 |
+
#: includes/forms/class-wp-job-manager-form-submit-job.php:635
|
| 1691 |
msgid "Passwords must match."
|
| 1692 |
msgstr ""
|
| 1693 |
|
| 1694 |
+
#: includes/forms/class-wp-job-manager-form-submit-job.php:641
|
| 1695 |
#. translators: Placeholder %s is the password hint.
|
| 1696 |
msgid "Invalid Password: %s"
|
| 1697 |
msgstr ""
|
| 1698 |
|
| 1699 |
+
#: includes/forms/class-wp-job-manager-form-submit-job.php:643
|
| 1700 |
msgid "Password is not valid."
|
| 1701 |
msgstr ""
|
| 1702 |
|
| 1703 |
+
#: includes/forms/class-wp-job-manager-form-submit-job.php:666
|
| 1704 |
msgid "You must be signed in to post a new listing."
|
| 1705 |
msgstr ""
|
| 1706 |
|
| 1707 |
+
#: includes/forms/class-wp-job-manager-form-submit-job.php:689
|
| 1708 |
#. translators: placeholder is the URL to the job dashboard page.
|
| 1709 |
msgid ""
|
| 1710 |
"Draft was saved. Job listing drafts can be resumed from the <a "
|
| 2293 |
msgid "Searching…"
|
| 2294 |
msgstr ""
|
| 2295 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2296 |
#: includes/admin/class-wp-job-manager-permalink-settings.php:108
|
| 2297 |
+
#: includes/class-wp-job-manager-post-types.php:976
|
| 2298 |
msgctxt "Job permalink - resave permalinks after changing this"
|
| 2299 |
msgid "job"
|
| 2300 |
msgstr ""
|
| 2301 |
|
| 2302 |
#: includes/admin/class-wp-job-manager-permalink-settings.php:117
|
| 2303 |
+
#: includes/class-wp-job-manager-post-types.php:977
|
| 2304 |
msgctxt "Job category slug - resave permalinks after changing this"
|
| 2305 |
msgid "job-category"
|
| 2306 |
msgstr ""
|
| 2307 |
|
| 2308 |
#: includes/admin/class-wp-job-manager-permalink-settings.php:126
|
| 2309 |
+
#: includes/class-wp-job-manager-post-types.php:978
|
| 2310 |
msgctxt "Job type slug - resave permalinks after changing this"
|
| 2311 |
msgid "job-type"
|
| 2312 |
msgstr ""
|
| 2358 |
msgid "Active"
|
| 2359 |
msgstr ""
|
| 2360 |
|
| 2361 |
+
#: includes/class-wp-job-manager-post-types.php:960
|
| 2362 |
msgctxt "Post type archive slug - resave permalinks after changing this"
|
| 2363 |
msgid "jobs"
|
| 2364 |
msgstr ""
|
readme.txt
CHANGED
|
@@ -2,9 +2,9 @@
|
|
| 2 |
Contributors: mikejolley, automattic, adamkheckler, alexsanford1, annezazu, cena, chaselivingston, csonnek, davor.altman, donnapep, donncha, drawmyface, erania-pinnera, jacobshere, jakeom, jeherve, jenhooks, jgs, jonryan, 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.9
|
| 5 |
-
Tested up to: 5.
|
| 6 |
Requires PHP: 5.6
|
| 7 |
-
Stable tag: 1.34.
|
| 8 |
License: GPLv3
|
| 9 |
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
| 10 |
|
|
@@ -152,6 +152,19 @@ It then creates a database based on the parameters passed to it.
|
|
| 152 |
6. Job listings in admin.
|
| 153 |
|
| 154 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 155 |
= 1.34.0 =
|
| 156 |
* Templates Updated: `content-job_listing.php`, `job-submitted.php`.
|
| 157 |
* Enhancement: Add support for pre-selecting categories in `[jobs]` using category slugs in query string (e.g. `/jobs?search_category=developer,pm,senior`).
|
| 2 |
Contributors: mikejolley, automattic, adamkheckler, alexsanford1, annezazu, cena, chaselivingston, csonnek, davor.altman, donnapep, donncha, drawmyface, erania-pinnera, jacobshere, jakeom, jeherve, jenhooks, jgs, jonryan, 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.9
|
| 5 |
+
Tested up to: 5.4
|
| 6 |
Requires PHP: 5.6
|
| 7 |
+
Stable tag: 1.34.1
|
| 8 |
License: GPLv3
|
| 9 |
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
| 10 |
|
| 152 |
6. Job listings in admin.
|
| 153 |
|
| 154 |
== Changelog ==
|
| 155 |
+
|
| 156 |
+
= 1.34.1 =
|
| 157 |
+
* Templates Updated: `job-submitted.php`, `job-dashboard.php`.
|
| 158 |
+
* Enhancement: Email notifications are sent separately if multiple recipients are listed.
|
| 159 |
+
* Enhancement: Notices at end of job submission process are now displayed as a styled notice. (@DaveParkerRKD)
|
| 160 |
+
* Fix: Resuming job listing submission at a particular step is now fixed.
|
| 161 |
+
* Fix: Issue with some permalink structures and WPMU would cause issues on `[jobs]` page.
|
| 162 |
+
* Dev: Adds the ability to block some jobs from being edited in the frontend.
|
| 163 |
+
* Dev: Adds ability to force some email notifications to be enabled.
|
| 164 |
+
* Dev: Allows email notifications to be sent immediately.
|
| 165 |
+
* Dev: Adds ability for settings to reference other settings tabs.
|
| 166 |
+
* Dev: Standardizes jQuery UI datepicker script IDs in frontend and backend. Plugins and themes should enqueue `wp-job-manager-datepicker` if they need jQuery UI datepicker.
|
| 167 |
+
|
| 168 |
= 1.34.0 =
|
| 169 |
* Templates Updated: `content-job_listing.php`, `job-submitted.php`.
|
| 170 |
* Enhancement: Add support for pre-selecting categories in `[jobs]` using category slugs in query string (e.g. `/jobs?search_category=developer,pm,senior`).
|
templates/job-dashboard.php
CHANGED
|
@@ -8,7 +8,7 @@
|
|
| 8 |
* @author Automattic
|
| 9 |
* @package wp-job-manager
|
| 10 |
* @category Template
|
| 11 |
-
* @version 1.
|
| 12 |
*/
|
| 13 |
|
| 14 |
if ( ! defined( 'ABSPATH' ) ) {
|
|
@@ -48,7 +48,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
| 48 |
|
| 49 |
switch ( $job->post_status ) {
|
| 50 |
case 'publish' :
|
| 51 |
-
if (
|
| 52 |
$actions[ 'edit' ] = [ 'label' => __( 'Edit', 'wp-job-manager' ), 'nonce' => false ];
|
| 53 |
}
|
| 54 |
if ( is_position_filled( $job ) ) {
|
|
@@ -66,7 +66,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
| 66 |
break;
|
| 67 |
case 'pending_payment' :
|
| 68 |
case 'pending' :
|
| 69 |
-
if (
|
| 70 |
$actions['edit'] = [ 'label' => __( 'Edit', 'wp-job-manager' ), 'nonce' => false ];
|
| 71 |
}
|
| 72 |
break;
|
| 8 |
* @author Automattic
|
| 9 |
* @package wp-job-manager
|
| 10 |
* @category Template
|
| 11 |
+
* @version 1.34.1
|
| 12 |
*/
|
| 13 |
|
| 14 |
if ( ! defined( 'ABSPATH' ) ) {
|
| 48 |
|
| 49 |
switch ( $job->post_status ) {
|
| 50 |
case 'publish' :
|
| 51 |
+
if ( WP_Job_Manager_Post_Types::job_is_editable( $job->ID ) ) {
|
| 52 |
$actions[ 'edit' ] = [ 'label' => __( 'Edit', 'wp-job-manager' ), 'nonce' => false ];
|
| 53 |
}
|
| 54 |
if ( is_position_filled( $job ) ) {
|
| 66 |
break;
|
| 67 |
case 'pending_payment' :
|
| 68 |
case 'pending' :
|
| 69 |
+
if ( WP_Job_Manager_Post_Types::job_is_editable( $job->ID ) ) {
|
| 70 |
$actions['edit'] = [ 'label' => __( 'Edit', 'wp-job-manager' ), 'nonce' => false ];
|
| 71 |
}
|
| 72 |
break;
|
templates/job-submitted.php
CHANGED
|
@@ -8,7 +8,7 @@
|
|
| 8 |
* @author Automattic
|
| 9 |
* @package wp-job-manager
|
| 10 |
* @category Template
|
| 11 |
-
* @version 1.
|
| 12 |
*/
|
| 13 |
|
| 14 |
if ( ! defined( 'ABSPATH' ) ) {
|
|
@@ -19,21 +19,21 @@ global $wp_post_types;
|
|
| 19 |
|
| 20 |
switch ( $job->post_status ) :
|
| 21 |
case 'publish' :
|
| 22 |
-
echo wp_kses_post(
|
| 23 |
sprintf(
|
| 24 |
__( '%s listed successfully. To view your listing <a href="%s">click here</a>.', 'wp-job-manager' ),
|
| 25 |
esc_html( $wp_post_types['job_listing']->labels->singular_name ),
|
| 26 |
get_permalink( $job->ID )
|
| 27 |
)
|
| 28 |
-
);
|
| 29 |
break;
|
| 30 |
case 'pending' :
|
| 31 |
-
echo wp_kses_post(
|
| 32 |
sprintf(
|
| 33 |
esc_html__( '%s submitted successfully. Your listing will be visible once approved.', 'wp-job-manager' ),
|
| 34 |
esc_html( $wp_post_types['job_listing']->labels->singular_name )
|
| 35 |
)
|
| 36 |
-
);
|
| 37 |
break;
|
| 38 |
default :
|
| 39 |
do_action( 'job_manager_job_submitted_content_' . str_replace( '-', '_', sanitize_title( $job->post_status ) ), $job );
|
| 8 |
* @author Automattic
|
| 9 |
* @package wp-job-manager
|
| 10 |
* @category Template
|
| 11 |
+
* @version 1.34.1
|
| 12 |
*/
|
| 13 |
|
| 14 |
if ( ! defined( 'ABSPATH' ) ) {
|
| 19 |
|
| 20 |
switch ( $job->post_status ) :
|
| 21 |
case 'publish' :
|
| 22 |
+
echo '<div class="job-manager-message">' . wp_kses_post(
|
| 23 |
sprintf(
|
| 24 |
__( '%s listed successfully. To view your listing <a href="%s">click here</a>.', 'wp-job-manager' ),
|
| 25 |
esc_html( $wp_post_types['job_listing']->labels->singular_name ),
|
| 26 |
get_permalink( $job->ID )
|
| 27 |
)
|
| 28 |
+
) . '</div>';
|
| 29 |
break;
|
| 30 |
case 'pending' :
|
| 31 |
+
echo '<div class="job-manager-message">' . wp_kses_post(
|
| 32 |
sprintf(
|
| 33 |
esc_html__( '%s submitted successfully. Your listing will be visible once approved.', 'wp-job-manager' ),
|
| 34 |
esc_html( $wp_post_types['job_listing']->labels->singular_name )
|
| 35 |
)
|
| 36 |
+
) . '</div>';
|
| 37 |
break;
|
| 38 |
default :
|
| 39 |
do_action( 'job_manager_job_submitted_content_' . str_replace( '-', '_', sanitize_title( $job->post_status ) ), $job );
|
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.34.
|
| 7 |
* Author: Automattic
|
| 8 |
* Author URI: https://wpjobmanager.com/
|
| 9 |
* Requires at least: 4.9
|
| 10 |
-
* Tested up to: 5.
|
| 11 |
* Requires PHP: 5.6
|
| 12 |
* Text Domain: wp-job-manager
|
| 13 |
* Domain Path: /languages/
|
|
@@ -21,7 +21,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
| 21 |
}
|
| 22 |
|
| 23 |
// Define constants.
|
| 24 |
-
define( 'JOB_MANAGER_VERSION', '1.34.
|
| 25 |
define( 'JOB_MANAGER_PLUGIN_DIR', untrailingslashit( plugin_dir_path( __FILE__ ) ) );
|
| 26 |
define( 'JOB_MANAGER_PLUGIN_URL', untrailingslashit( plugins_url( basename( plugin_dir_path( __FILE__ ) ), basename( __FILE__ ) ) ) );
|
| 27 |
define( 'JOB_MANAGER_PLUGIN_BASENAME', plugin_basename( __FILE__ ) );
|
| 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.34.1
|
| 7 |
* Author: Automattic
|
| 8 |
* Author URI: https://wpjobmanager.com/
|
| 9 |
* Requires at least: 4.9
|
| 10 |
+
* Tested up to: 5.4
|
| 11 |
* Requires PHP: 5.6
|
| 12 |
* Text Domain: wp-job-manager
|
| 13 |
* Domain Path: /languages/
|
| 21 |
}
|
| 22 |
|
| 23 |
// Define constants.
|
| 24 |
+
define( 'JOB_MANAGER_VERSION', '1.34.1' );
|
| 25 |
define( 'JOB_MANAGER_PLUGIN_DIR', untrailingslashit( plugin_dir_path( __FILE__ ) ) );
|
| 26 |
define( 'JOB_MANAGER_PLUGIN_URL', untrailingslashit( plugins_url( basename( plugin_dir_path( __FILE__ ) ), basename( __FILE__ ) ) ) );
|
| 27 |
define( 'JOB_MANAGER_PLUGIN_BASENAME', plugin_basename( __FILE__ ) );
|
