WP Job Manager - Version 1.38.0

Version Description

  • Enhancement: Add remote position to filtering (@tripflex)
  • Enhancement: Add setting to enable/disable remote position field (@tripflex)
  • Enhancement: Add mobile support for keyword and location fields (@tripflex)
  • Fix: Remove multiple location search, revert back to original handling prior to 1.36 (@tripflex)
  • Fix: Translation issue in onboarding wizard. (@NekoJonez)
  • Fix: Better support for jobs submissions with 0 as input
Download this release

Release Info

Developer jakeom
Plugin Icon 128x128 WP Job Manager
Version 1.38.0
Comparing to
See all releases

Code changes from version 1.37.0 to 1.38.0

assets/dist/css/frontend.asset.php CHANGED
@@ -1 +1 @@
1
- <?php return array('dependencies' => array('wp-polyfill'), 'version' => '91ce2fad0a1183e27a992593e8989a16');
1
+ <?php return array('dependencies' => array('wp-polyfill'), 'version' => '70bcf98f10f46d76c3ff1baa07f25225');
assets/dist/css/frontend.css CHANGED
@@ -1 +1 @@
1
- .clearfix{zoom:1}.clearfix::before,.clearfix::after{content:"";display:table}.clearfix::after{clear:both}@font-face{font-family:job-manager;src:url(../font/job-manager-a2d17fff9efb870b3e027dc5516b3ecc.eot);src:url(../font/job-manager-a2d17fff9efb870b3e027dc5516b3ecc.eot#iefix) format("embedded-opentype"),url(../font/job-manager-434425afc81b621e0e02b871e4f5fca1.woff) format("woff"),url(../font/job-manager-7799d387315fbcfa0060adf100cc549d.ttf) format("truetype"),url(../font/job-manager-aa916d5b5333755f80564e47a7f7a89f.svg#job-manager) format("svg");font-weight:normal;font-style:normal}@font-face{font-family:jm-logo;src:url(../font/jm-logo/jm-18758dfe508305ba1682fe8fb3be8c72.eot);src:url(../font/jm-logo/jm-18758dfe508305ba1682fe8fb3be8c72.eot?#iefixycsbky) format("embedded-opentype"),url(../font/jm-logo/jm-67b7d10affac4ffd77eb7874ec25263b.woff) format("woff"),url(../font/jm-logo/jm-97b72719abd94986185dcfeef1203fb9.ttf) format("truetype"),url(../font/jm-logo/jm-04f818ce1471720fb214394b96feb5de.svg#icomoon) format("svg");font-weight:normal;font-style:normal}.jm-icon{font-family:job-manager !important;font-style:normal;font-weight:normal;speak:none;display:inline-block;text-decoration:inherit;width:1em;text-align:center;font-variant:normal;text-transform:none;line-height:1em}.clearfix{zoom:1}.clearfix::before,.clearfix::after{content:"";display:table}.clearfix::after{clear:both}.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-ea183bf26ae76dec039869d4bc7060cb.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:hover,.rp4wp-related-job_listing>ul li.job_listing a:focus,.rp4wp-related-job_listing>ul li.no_job_listings_found a:hover,.rp4wp-related-job_listing>ul li.no_job_listings_found a:focus,ul.job_listings li.job_listing a:hover,ul.job_listings li.job_listing a:focus,ul.job_listings li.no_job_listings_found a:hover,ul.job_listings li.no_job_listings_found a:focus{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.position,.rp4wp-related-job_listing>ul li.job_listing a div.location,.rp4wp-related-job_listing>ul li.job_listing a ul.meta,.rp4wp-related-job_listing>ul li.no_job_listings_found a div.position,.rp4wp-related-job_listing>ul li.no_job_listings_found a div.location,.rp4wp-related-job_listing>ul li.no_job_listings_found a ul.meta,ul.job_listings li.job_listing a div.position,ul.job_listings li.job_listing a div.location,ul.job_listings li.job_listing a ul.meta,ul.job_listings li.no_job_listings_found a div.position,ul.job_listings li.no_job_listings_found a div.location,ul.job_listings li.no_job_listings_found a ul.meta{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:bold}.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:hover,.rp4wp-related-job_listing>ul li.job_listing.job_position_featured a:focus,.rp4wp-related-job_listing>ul li.no_job_listings_found.job_position_featured a:hover,.rp4wp-related-job_listing>ul li.no_job_listings_found.job_position_featured a:focus,ul.job_listings li.job_listing.job_position_featured a:hover,ul.job_listings li.job_listing.job_position_featured a:focus,ul.job_listings li.no_job_listings_found.job_position_featured a:hover,ul.job_listings li.no_job_listings_found.job_position_featured a:focus{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:normal}.widget ul.job_listings li.job_listing ul.meta li::after{padding:0 0 0 .5em;content:"‣"}.widget ul.job_listings li.job_listing ul.meta li:last-child::after{content:""}.job-manager .job-type,.job_listing .job-type,.job-types .job-type{color:#f08d3c}.job-manager .full-time,.job_listing .full-time,.job-types .full-time{color:#90da36}.job-manager .part-time,.job_listing .part-time,.job-types .part-time{color:#f08d3c}.job-manager .temporary,.job_listing .temporary,.job-types .temporary{color:#d93674}.job-manager .freelance,.job_listing .freelance,.job-types .freelance{color:#39c}.job-manager .internship,.job_listing .internship,.job-types .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-size:16px;font-family:"job-manager" !important;text-decoration:none;font-weight:normal;font-style:normal;vertical-align:top;font-size:16px;margin:0 2px 0 0;*overflow:auto;*zoom:1;*display:inline}.job-manager-message,.job-manager-error,.job-manager-info{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-message::before,.job-manager-message::after,.job-manager-error::before,.job-manager-error::after,.job-manager-info::before,.job-manager-info::after{content:"";display:table}.job-manager-message::after,.job-manager-error::after,.job-manager-info::after{clear:both}.job-manager-message::before,.job-manager-error::before,.job-manager-info::before{content:"";font-family:sans-serif;display:inline-block;position:absolute;top:1em;left:1.5em}.job-manager-message li,.job-manager-error li,.job-manager-info li{list-style:none outside !important;padding-left:0 !important;margin-left:0 !important}.job-manager-message.job-manager-message,.job-manager-error.job-manager-message,.job-manager-info.job-manager-message{border-top-color:#8fae1b}.job-manager-message.job-manager-message::before,.job-manager-error.job-manager-message::before,.job-manager-info.job-manager-message::before{color:#8fae1b;content:"✓"}.job-manager-message.job-manager-info,.job-manager-error.job-manager-info,.job-manager-info.job-manager-info{border-top-color:#1e85be}.job-manager-message.job-manager-info::before,.job-manager-error.job-manager-info::before,.job-manager-info.job-manager-info::before{color:#1e85be;content:"i";font-family:Times,Georgia,serif;font-style:italic}.job-manager-message.job-manager-error,.job-manager-error.job-manager-error,.job-manager-info.job-manager-error{border-top-color:#b81c23}.job-manager-message.job-manager-error::before,.job-manager-error.job-manager-error::before,.job-manager-info.job-manager-error::before{color:#b81c23;content:"×";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::before,.job-manager-form fieldset::after{content:"";display:table}.job-manager-form fieldset::after{clear:both}.job-manager-form fieldset label:not(.full-line-checkbox-field label){display:block;margin:0;width:29%;float:left;vertical-align:middle}.job-manager-form fieldset label:not(.full-line-checkbox-field label) small{opacity:.75;font-size:.83em}.job-manager-form fieldset div.field:not(.full-line-checkbox-field){width:70%;float:right;vertical-align:middle}.job-manager-form fieldset .wp-editor-container{border:1px solid #ccc;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-size:16px;font-family:"job-manager" !important;text-decoration:none;font-weight:normal;font-style:normal;vertical-align:top;font-size:16px;margin:0 2px 0 0;*overflow:auto;*zoom:1;*display:inline;content:""}.job-manager-form fieldset abbr.required{color:red;font-weight:bold;border:0}.job-manager-form fieldset input.input-text,.job-manager-form fieldset input.input-date,.job-manager-form fieldset textarea,.job-manager-form fieldset select{margin:0;vertical-align:middle;width:100%;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;filter:alpha(opacity=50);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-size:16px;font-family:"job-manager" !important;text-decoration:none;font-weight:normal;font-style:normal;vertical-align:top;font-size:16px;margin:0 2px 0 0;*overflow:auto;*zoom:1;*display:inline;content:""}.single_job_listing .company .company_twitter::before{display:inline-block;width:16px;height:16px;-webkit-font-smoothing:antialiased;font-size:16px;font-family:"job-manager" !important;text-decoration:none;font-weight:normal;font-style:normal;vertical-align:top;font-size:16px;margin:0 2px 0 0;*overflow:auto;*zoom:1;*display:inline;content:""}.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 iframe,.single_job_listing .company .company_video object,.single_job_listing .company .company_video embed{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 .position-filled,.single_job_listing .meta .listing-expired{color:#b81c23}.single_job_listing .meta .location::before{display:inline-block;width:16px;height:16px;-webkit-font-smoothing:antialiased;font-size:16px;font-family:"job-manager" !important;text-decoration:none;font-weight:normal;font-style:normal;vertical-align:top;font-size:16px;margin:0 2px 0 0;*overflow:auto;*zoom:1;*display:inline;content:""}.single_job_listing .meta .date-posted::before{display:inline-block;width:16px;height:16px;-webkit-font-smoothing:antialiased;font-size:16px;font-family:"job-manager" !important;text-decoration:none;font-weight:normal;font-style:normal;vertical-align:top;font-size:16px;margin:0 2px 0 0;*overflow:auto;*zoom:1;*display:inline;content:""}.single_job_listing .meta .position-filled::before,.single_job_listing .meta .listing-expired::before{display:inline-block;width:16px;height:16px;-webkit-font-smoothing:antialiased;font-size:16px;font-family:"job-manager" !important;text-decoration:none;font-weight:normal;font-style:normal;vertical-align:top;font-size:16px;margin:0 2px 0 0;*overflow:auto;*zoom:1;*display:inline;content:""}.single_job_listing .meta .salary:before{display:inline-block;width:16px;height:16px;-webkit-font-smoothing:antialiased;font-size:16px;font-family:"job-manager" !important;text-decoration:none;font-weight:normal;font-style:normal;vertical-align:top;font-size:16px;margin:0 2px 0 0;*overflow:auto;*zoom:1;*display:inline;content:""}.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)}.single_job_listing .application,.job-manager-application-wrapper .application{padding:0;margin:0 0 1em;overflow:hidden}.single_job_listing .application .application_button,.single_job_listing .application .application_details,.job-manager-application-wrapper .application .application_button,.job-manager-application-wrapper .application .application_details{box-sizing:border-box}.single_job_listing .application .application_button,.job-manager-application-wrapper .application .application_button{text-align:center;font-size:1.1em;line-height:1em;display:inline-block;margin:0 .5em 0 0;padding:1em 2em;outline:0}.single_job_listing .application .application_details,.job-manager-application-wrapper .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)}.single_job_listing .application .application_details p,.job-manager-application-wrapper .application .application_details p{margin:0 0 .75em}.single_job_listing .application .application_details::before,.job-manager-application-wrapper .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}.single_job_listing .application .application_details::after,.job-manager-application-wrapper .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::before,.job_filters::after{content:"";display:table}.job_filters::after{clear:both}.job_filters .search_jobs{padding:1em;zoom:1}.job_filters .search_jobs::before,.job_filters .search_jobs::after{content:"";display:table}.job_filters .search_jobs::after{clear:both}.job_filters .search_jobs div{box-sizing:border-box}.job_filters .search_jobs div label{display:none}.job_filters .search_jobs div.search_keywords,.job_filters .search_jobs div.filter_first{float:left;padding-right:.5em;width:50%}.job_filters .search_jobs div.search_location,.job_filters .search_jobs div.filter_last{float:right;padding-left:.5em;width:50%}.job_filters .search_jobs div.search_categories,.job_filters .search_jobs div.filter_wide{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{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::before,.job_filters .job_types::after{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:bold}div.job_listings .load_more_jobs.loading{background:url(../images/ajax-loader-ea183bf26ae76dec039869d4bc7060cb.gif) no-repeat center}div.job_listings .load_more_jobs.loading strong{visibility:hidden}div.job_listings .load_more_jobs:hover,div.job_listings .load_more_jobs:focus{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}.job_listing_preview_title,.entry-content .job_listing_preview_title{padding:.5em 1em;vertical-align:middle;position:relative;background:#eee}.job_listing_preview_title h2,.entry-content .job_listing_preview_title h2{margin:0;clear:none}.job_listing_preview_title .button,.entry-content .job_listing_preview_title .button{float:right;margin-left:.25em}.job_summary_shortcode{border:1px solid #ccc;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);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{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:-0.5em -0.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-size:16px;font-family:"job-manager" !important;text-decoration:none;font-weight:normal;font-style:normal;vertical-align:top;font-size:16px;margin:0 2px 0 0;*overflow:auto;*zoom:1;*display:inline;content:""}#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:normal;list-style:none outside}#job-manager-job-dashboard table ul.job-dashboard-actions li::after{padding:0 0 0 .5em;content:"‣"}#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:hover ul.job-dashboard-actions,#job-manager-job-dashboard table tr:focus 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{font-family:job-manager !important;font-style:normal;font-weight:normal;speak:none;display:inline-block;text-decoration:inherit;width:1em;text-align:center;font-variant:normal;text-transform:none;line-height:1em;content:""}#job-manager-job-dashboard table .filled,#job-manager-job-dashboard table .expires,#job-manager-job-dashboard table .applications{text-align:center}nav.job-manager-pagination,#content nav.job-manager-pagination{text-align:center}nav.job-manager-pagination ul,#content nav.job-manager-pagination ul{display:inline-block;white-space:nowrap;padding:0;clear:both;border-left:1px solid #eee;margin:1px}nav.job-manager-pagination ul li,#content 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}nav.job-manager-pagination ul li a,nav.job-manager-pagination ul li span,#content nav.job-manager-pagination ul li a,#content nav.job-manager-pagination ul li span{margin:0;text-decoration:none;padding:0;line-height:1em;font-size:1em;font-weight:normal;padding:.5em;min-width:1em;display:block;border:0}nav.job-manager-pagination ul li span.current,nav.job-manager-pagination ul li a:hover,nav.job-manager-pagination ul li a:focus,#content nav.job-manager-pagination ul li span.current,#content nav.job-manager-pagination ul li a:hover,#content nav.job-manager-pagination ul li a:focus{background:#eee;color:#888}.chosen-container{width:100% !important}.twenty-ten .job_types,.twenty-ten .chosen-choices{margin:0 !important}.rtl .job-manager-form label{float:right}.rtl .job-manager-form div.field{float:left}.rtl .job_listing_preview_title .button,.rtl .entry-content .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::before,.clearfix::after{content:"";display:table}.clearfix::after{clear:both}@font-face{font-family:job-manager;src:url(../font/job-manager-a2d17fff9efb870b3e027dc5516b3ecc.eot);src:url(../font/job-manager-a2d17fff9efb870b3e027dc5516b3ecc.eot#iefix) format("embedded-opentype"),url(../font/job-manager-434425afc81b621e0e02b871e4f5fca1.woff) format("woff"),url(../font/job-manager-7799d387315fbcfa0060adf100cc549d.ttf) format("truetype"),url(../font/job-manager-aa916d5b5333755f80564e47a7f7a89f.svg#job-manager) format("svg");font-weight:normal;font-style:normal}@font-face{font-family:jm-logo;src:url(../font/jm-logo/jm-18758dfe508305ba1682fe8fb3be8c72.eot);src:url(../font/jm-logo/jm-18758dfe508305ba1682fe8fb3be8c72.eot?#iefixycsbky) format("embedded-opentype"),url(../font/jm-logo/jm-67b7d10affac4ffd77eb7874ec25263b.woff) format("woff"),url(../font/jm-logo/jm-97b72719abd94986185dcfeef1203fb9.ttf) format("truetype"),url(../font/jm-logo/jm-04f818ce1471720fb214394b96feb5de.svg#icomoon) format("svg");font-weight:normal;font-style:normal}.jm-icon{font-family:job-manager !important;font-style:normal;font-weight:normal;speak:none;display:inline-block;text-decoration:inherit;width:1em;text-align:center;font-variant:normal;text-transform:none;line-height:1em}.clearfix{zoom:1}.clearfix::before,.clearfix::after{content:"";display:table}.clearfix::after{clear:both}.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-ea183bf26ae76dec039869d4bc7060cb.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:hover,.rp4wp-related-job_listing>ul li.job_listing a:focus,.rp4wp-related-job_listing>ul li.no_job_listings_found a:hover,.rp4wp-related-job_listing>ul li.no_job_listings_found a:focus,ul.job_listings li.job_listing a:hover,ul.job_listings li.job_listing a:focus,ul.job_listings li.no_job_listings_found a:hover,ul.job_listings li.no_job_listings_found a:focus{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.position,.rp4wp-related-job_listing>ul li.job_listing a div.location,.rp4wp-related-job_listing>ul li.job_listing a ul.meta,.rp4wp-related-job_listing>ul li.no_job_listings_found a div.position,.rp4wp-related-job_listing>ul li.no_job_listings_found a div.location,.rp4wp-related-job_listing>ul li.no_job_listings_found a ul.meta,ul.job_listings li.job_listing a div.position,ul.job_listings li.job_listing a div.location,ul.job_listings li.job_listing a ul.meta,ul.job_listings li.no_job_listings_found a div.position,ul.job_listings li.no_job_listings_found a div.location,ul.job_listings li.no_job_listings_found a ul.meta{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:bold}.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:hover,.rp4wp-related-job_listing>ul li.job_listing.job_position_featured a:focus,.rp4wp-related-job_listing>ul li.no_job_listings_found.job_position_featured a:hover,.rp4wp-related-job_listing>ul li.no_job_listings_found.job_position_featured a:focus,ul.job_listings li.job_listing.job_position_featured a:hover,ul.job_listings li.job_listing.job_position_featured a:focus,ul.job_listings li.no_job_listings_found.job_position_featured a:hover,ul.job_listings li.no_job_listings_found.job_position_featured a:focus{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:normal}.widget ul.job_listings li.job_listing ul.meta li::after{padding:0 0 0 .5em;content:"‣"}.widget ul.job_listings li.job_listing ul.meta li:last-child::after{content:""}.job-manager .job-type,.job_listing .job-type,.job-types .job-type{color:#f08d3c}.job-manager .full-time,.job_listing .full-time,.job-types .full-time{color:#90da36}.job-manager .part-time,.job_listing .part-time,.job-types .part-time{color:#f08d3c}.job-manager .temporary,.job_listing .temporary,.job-types .temporary{color:#d93674}.job-manager .freelance,.job_listing .freelance,.job-types .freelance{color:#39c}.job-manager .internship,.job_listing .internship,.job-types .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-size:16px;font-family:"job-manager" !important;text-decoration:none;font-weight:normal;font-style:normal;vertical-align:top;font-size:16px;margin:0 2px 0 0;*overflow:auto;*zoom:1;*display:inline}.job-manager-message,.job-manager-error,.job-manager-info{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-message::before,.job-manager-message::after,.job-manager-error::before,.job-manager-error::after,.job-manager-info::before,.job-manager-info::after{content:"";display:table}.job-manager-message::after,.job-manager-error::after,.job-manager-info::after{clear:both}.job-manager-message::before,.job-manager-error::before,.job-manager-info::before{content:"";font-family:sans-serif;display:inline-block;position:absolute;top:1em;left:1.5em}.job-manager-message li,.job-manager-error li,.job-manager-info li{list-style:none outside !important;padding-left:0 !important;margin-left:0 !important}.job-manager-message.job-manager-message,.job-manager-error.job-manager-message,.job-manager-info.job-manager-message{border-top-color:#8fae1b}.job-manager-message.job-manager-message::before,.job-manager-error.job-manager-message::before,.job-manager-info.job-manager-message::before{color:#8fae1b;content:"✓"}.job-manager-message.job-manager-info,.job-manager-error.job-manager-info,.job-manager-info.job-manager-info{border-top-color:#1e85be}.job-manager-message.job-manager-info::before,.job-manager-error.job-manager-info::before,.job-manager-info.job-manager-info::before{color:#1e85be;content:"i";font-family:Times,Georgia,serif;font-style:italic}.job-manager-message.job-manager-error,.job-manager-error.job-manager-error,.job-manager-info.job-manager-error{border-top-color:#b81c23}.job-manager-message.job-manager-error::before,.job-manager-error.job-manager-error::before,.job-manager-info.job-manager-error::before{color:#b81c23;content:"×";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::before,.job-manager-form fieldset::after{content:"";display:table}.job-manager-form fieldset::after{clear:both}.job-manager-form fieldset label:not(.full-line-checkbox-field label){display:block;margin:0;width:29%;float:left;vertical-align:middle}.job-manager-form fieldset label:not(.full-line-checkbox-field label) small{opacity:.75;font-size:.83em}.job-manager-form fieldset div.field:not(.full-line-checkbox-field){width:70%;float:right;vertical-align:middle}.job-manager-form fieldset .wp-editor-container{border:1px solid #ccc;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-size:16px;font-family:"job-manager" !important;text-decoration:none;font-weight:normal;font-style:normal;vertical-align:top;font-size:16px;margin:0 2px 0 0;*overflow:auto;*zoom:1;*display:inline;content:""}.job-manager-form fieldset abbr.required{color:red;font-weight:bold;border:0}.job-manager-form fieldset input.input-text,.job-manager-form fieldset input.input-date,.job-manager-form fieldset textarea,.job-manager-form fieldset select{margin:0;vertical-align:middle;width:100%;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;filter:alpha(opacity=50);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-size:16px;font-family:"job-manager" !important;text-decoration:none;font-weight:normal;font-style:normal;vertical-align:top;font-size:16px;margin:0 2px 0 0;*overflow:auto;*zoom:1;*display:inline;content:""}.single_job_listing .company .company_twitter::before{display:inline-block;width:16px;height:16px;-webkit-font-smoothing:antialiased;font-size:16px;font-family:"job-manager" !important;text-decoration:none;font-weight:normal;font-style:normal;vertical-align:top;font-size:16px;margin:0 2px 0 0;*overflow:auto;*zoom:1;*display:inline;content:""}.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 iframe,.single_job_listing .company .company_video object,.single_job_listing .company .company_video embed{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 .position-filled,.single_job_listing .meta .listing-expired{color:#b81c23}.single_job_listing .meta .location::before{display:inline-block;width:16px;height:16px;-webkit-font-smoothing:antialiased;font-size:16px;font-family:"job-manager" !important;text-decoration:none;font-weight:normal;font-style:normal;vertical-align:top;font-size:16px;margin:0 2px 0 0;*overflow:auto;*zoom:1;*display:inline;content:""}.single_job_listing .meta .date-posted::before{display:inline-block;width:16px;height:16px;-webkit-font-smoothing:antialiased;font-size:16px;font-family:"job-manager" !important;text-decoration:none;font-weight:normal;font-style:normal;vertical-align:top;font-size:16px;margin:0 2px 0 0;*overflow:auto;*zoom:1;*display:inline;content:""}.single_job_listing .meta .position-filled::before,.single_job_listing .meta .listing-expired::before{display:inline-block;width:16px;height:16px;-webkit-font-smoothing:antialiased;font-size:16px;font-family:"job-manager" !important;text-decoration:none;font-weight:normal;font-style:normal;vertical-align:top;font-size:16px;margin:0 2px 0 0;*overflow:auto;*zoom:1;*display:inline;content:""}.single_job_listing .meta .salary:before{display:inline-block;width:16px;height:16px;-webkit-font-smoothing:antialiased;font-size:16px;font-family:"job-manager" !important;text-decoration:none;font-weight:normal;font-style:normal;vertical-align:top;font-size:16px;margin:0 2px 0 0;*overflow:auto;*zoom:1;*display:inline;content:""}.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)}.single_job_listing .application,.job-manager-application-wrapper .application{padding:0;margin:0 0 1em;overflow:hidden}.single_job_listing .application .application_button,.single_job_listing .application .application_details,.job-manager-application-wrapper .application .application_button,.job-manager-application-wrapper .application .application_details{box-sizing:border-box}.single_job_listing .application .application_button,.job-manager-application-wrapper .application .application_button{text-align:center;font-size:1.1em;line-height:1em;display:inline-block;margin:0 .5em 0 0;padding:1em 2em;outline:0}.single_job_listing .application .application_details,.job-manager-application-wrapper .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)}.single_job_listing .application .application_details p,.job-manager-application-wrapper .application .application_details p{margin:0 0 .75em}.single_job_listing .application .application_details::before,.job-manager-application-wrapper .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}.single_job_listing .application .application_details::after,.job-manager-application-wrapper .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::before,.job_filters::after{content:"";display:table}.job_filters::after{clear:both}.job_filters .search_jobs{padding:1em;zoom:1}.job_filters .search_jobs::before,.job_filters .search_jobs::after{content:"";display:table}.job_filters .search_jobs::after{clear:both}.job_filters .search_jobs div{box-sizing:border-box}.job_filters .search_jobs div label{display:none}.job_filters .search_jobs div.search_keywords,.job_filters .search_jobs div.filter_first{float:left;padding-right:.5em;width:50%}.job_filters .search_jobs div.search_location,.job_filters .search_jobs div.filter_last{float:right;padding-left:.5em;width:50%}.job_filters .search_jobs div.search_remote_position{width:50%;float:right;padding-left:.5em;padding-top:.5em}.job_filters .search_jobs div.search_remote_position input{width:auto}.job_filters .search_jobs div.search_remote_position label#remote_position_label{display:inline-block}@media(max-width: 480px){.job_filters .search_jobs div.search_keywords,.job_filters .search_jobs div.filter_first{width:100%;padding-right:0}.job_filters .search_jobs div.search_location,.job_filters .search_jobs div.filter_last{width:100%;padding-top:.5em;padding-left:0}.job_filters .search_jobs div.search_remote_position{width:100%}}.job_filters .search_jobs div.search_categories,.job_filters .search_jobs div.filter_wide{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{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::before,.job_filters .job_types::after{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:bold}div.job_listings .load_more_jobs.loading{background:url(../images/ajax-loader-ea183bf26ae76dec039869d4bc7060cb.gif) no-repeat center}div.job_listings .load_more_jobs.loading strong{visibility:hidden}div.job_listings .load_more_jobs:hover,div.job_listings .load_more_jobs:focus{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}.job_listing_preview_title,.entry-content .job_listing_preview_title{padding:.5em 1em;vertical-align:middle;position:relative;background:#eee}.job_listing_preview_title h2,.entry-content .job_listing_preview_title h2{margin:0;clear:none}.job_listing_preview_title .button,.entry-content .job_listing_preview_title .button{float:right;margin-left:.25em}.job_summary_shortcode{border:1px solid #ccc;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);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{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:-0.5em -0.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-size:16px;font-family:"job-manager" !important;text-decoration:none;font-weight:normal;font-style:normal;vertical-align:top;font-size:16px;margin:0 2px 0 0;*overflow:auto;*zoom:1;*display:inline;content:""}#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:normal;list-style:none outside}#job-manager-job-dashboard table ul.job-dashboard-actions li::after{padding:0 0 0 .5em;content:"‣"}#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:hover ul.job-dashboard-actions,#job-manager-job-dashboard table tr:focus 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{font-family:job-manager !important;font-style:normal;font-weight:normal;speak:none;display:inline-block;text-decoration:inherit;width:1em;text-align:center;font-variant:normal;text-transform:none;line-height:1em;content:""}#job-manager-job-dashboard table .filled,#job-manager-job-dashboard table .expires,#job-manager-job-dashboard table .applications{text-align:center}nav.job-manager-pagination,#content nav.job-manager-pagination{text-align:center}nav.job-manager-pagination ul,#content nav.job-manager-pagination ul{display:inline-block;white-space:nowrap;padding:0;clear:both;border-left:1px solid #eee;margin:1px}nav.job-manager-pagination ul li,#content 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}nav.job-manager-pagination ul li a,nav.job-manager-pagination ul li span,#content nav.job-manager-pagination ul li a,#content nav.job-manager-pagination ul li span{margin:0;text-decoration:none;padding:0;line-height:1em;font-size:1em;font-weight:normal;padding:.5em;min-width:1em;display:block;border:0}nav.job-manager-pagination ul li span.current,nav.job-manager-pagination ul li a:hover,nav.job-manager-pagination ul li a:focus,#content nav.job-manager-pagination ul li span.current,#content nav.job-manager-pagination ul li a:hover,#content nav.job-manager-pagination ul li a:focus{background:#eee;color:#888}.chosen-container{width:100% !important}.twenty-ten .job_types,.twenty-ten .chosen-choices{margin:0 !important}.rtl .job-manager-form label{float:right}.rtl .job-manager-form div.field{float:left}.rtl .job_listing_preview_title .button,.rtl .entry-content .job_listing_preview_title .button{float:left}.rtl .single_job_listing .meta li{float:right;margin:0 0 0 1em}
assets/dist/js/ajax-filters.asset.php CHANGED
@@ -1 +1 @@
1
- <?php return array('dependencies' => array('wp-polyfill'), 'version' => '72b6145dd5bd17fa4e72122361dd24d0');
1
+ <?php return array('dependencies' => array('wp-polyfill'), 'version' => 'b197a3cfbf19b5b9c79b84f647585d7f');
assets/dist/js/ajax-filters.js CHANGED
@@ -1 +1 @@
1
- !function(e){var t={};function n(i){if(t[i])return t[i].exports;var o=t[i]={i:i,l:!1,exports:{}};return e[i].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(i,o,function(t){return e[t]}.bind(null,o));return i},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=3)}([function(e,t){function n(t){return"function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?e.exports=n=function(e){return typeof e}:e.exports=n=function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(t)}e.exports=n},,,function(e,t,n){"use strict";n.r(t);var i=n(0),o=n.n(i);jQuery(document).ready((function(e){function t(t){return!(!window.sessionStorage||"function"!=typeof window.sessionStorage.setItem||e(document.body).hasClass("disable-job-manager-form-state-storage")||t.data("disable-form-state-storage"))}function n(t){var n=e("div.job_listings").index(t),i=t.data("post_id");return void 0!==i&&i||(i=window.location.href.replace(location.hash,"")),"job_listing_"+i+"_"+n}function i(e,i){if(!t(e))return!1;"object"!==o()(i)&&(i={});var r=n(e);try{return window.sessionStorage.setItem(r,JSON.stringify(i))}catch(e){}return!1}function r(e){if(!t(e))return!1;var i=n(e);try{var o=window.sessionStorage.getItem(i);if(o)return JSON.parse(o)}catch(e){}return!1}function a(e,n){if(!t(e)||!e)return!1;var o=r(e);return!!o&&(o.persist_results=n,i(e,o))}function s(e){if(!t(e)||!e)return!1;var n=r(e);if(!n)return!1;var o=e.find(".job_filters");return n.form=o.serialize(),i(e,n)}function l(t,n,i){var o=t.find(".job_listings"),r=t.find(".showing_jobs");if("boolean"!=typeof i&&(i=!1),"string"==typeof n.showing&&n.showing){var a=jQuery("<span>").html(n.showing);r.show().html("").html(n.showing_links).prepend(a)}else r.hide();return n.showing_all?r.addClass("wp-job-manager-showing-all"):r.removeClass("wp-job-manager-showing-all"),n.html&&(i?o.append(n.html):o.html(n.html)),!0===t.data("show_pagination")?(t.find(".job-manager-pagination").remove(),n.pagination&&t.append(n.pagination)):(!n.found_jobs||n.max_num_pages<=n.data.page?e(".load_more_jobs:not(.load_previous)",t).hide():e(".load_more_jobs",t).show(),e(".load_more_jobs",t).removeClass("loading").data("page",n.data.page),e("li.job_listing",o).css("visibility","visible")),!0}e(document).on("click","a",(function(){e("div.job_listings").each((function(){s(e(this))}))})),e(document).on("submit","form",(function(){e("div.job_listings").each((function(){s(e(this))}))}));var d=[];e("div.job_listings").on("click","li.job_listing a",(function(){a(e(this).closest("div.job_listings"),!0)})).on("click",".job-manager-pagination a",(function(){var t=e(this).closest("div.job_listings"),n=e(this).data("page");return t.triggerHandler("update_results",[n,!1]),e("body, html").animate({scrollTop:t.offset().top},600),!1})).on("update_results",(function(o,a,s){var c,u,f,g="",p=e(this),_=p.find(".job_filters"),h=p.find(".job_listings"),b=p.data("per_page"),m=p.data("orderby"),y=p.data("order"),j=p.data("featured"),v=p.data("filled"),w=p.data("job_types"),S=p.data("post_status"),k=e("div.job_listings").index(this);if(!(k<0)){if(function(e){if(!t(e))return!1;var i=n(e);try{window.sessionStorage.removeItem(i)}catch(e){return!1}}(p),d[k]&&d[k].abort(),s&&1!==a||(e("li.job_listing, li.no_job_listings_found",h).css("visibility","hidden"),h.addClass("loading")),p.find(".load_more_jobs").data("page",a),!0===p.data("show_filters")){var x=[];e(':input[name="filter_job_type[]"]:checked, :input[name="filter_job_type[]"][type="hidden"], :input[name="filter_job_type"]',_).each((function(){x.push(e(this).val())})),c=_.find(':input[name^="search_categories"]').map((function(){return e(this).val()})).get(),u="",f="";var O=_.find(':input[name="search_keywords"]'),C=_.find(':input[name="search_location"]');O.val()!==O.attr("placeholder")&&(u=O.val()),C.val()!==C.attr("placeholder")&&(f=C.val()),g={lang:job_manager_ajax_filters.lang,search_keywords:u,search_location:f,search_categories:c,filter_job_type:x,filter_post_status:S,per_page:b,orderby:m,order:y,page:a,featured:j,filled:v,show_pagination:p.data("show_pagination"),form_data:_.serialize()}}else c=p.data("categories"),u=p.data("keywords"),f=p.data("location"),c&&("string"!=typeof c&&(c=String(c)),c=c.split(",")),g={lang:job_manager_ajax_filters.lang,search_categories:c,search_keywords:u,search_location:f,filter_post_status:S,filter_job_type:w,per_page:b,orderby:m,order:y,page:a,featured:j,filled:v,show_pagination:p.data("show_pagination")};d[k]=e.ajax({type:"POST",url:job_manager_ajax_filters.ajax_url.toString().replace("%%endpoint%%","get_listings"),data:g,success:function(e){if(e)try{e.data=g,l(p,e,s),h.removeClass("loading"),p.triggerHandler("updated_results",e),function(e,n){if(!t(e))return!1;var o=r(e);o||(o={persist_results:!1});var a=e.find(".job_listings");n.html=a.html(),o.results=n,i(e,o)}(p,e)}catch(e){window.console&&window.console.log(e)}},error:function(e,t,n){window.console&&"abort"!==t&&window.console.log(t+": "+n)},statusCode:{404:function(){window.console&&window.console.log("Error 404: Ajax Endpoint cannot be reached. Go to Settings > Permalinks and save to resolve.")}}})}})),e("#search_keywords, #search_location, .job_types :input, #search_categories, .job-manager-filter").change((function(){var t=e(this).closest("div.job_listings");t.triggerHandler("update_results",[1,!1]),i(t)})).on("keyup",(function(t){13===t.which&&e(this).trigger("change")})),e(".job_filters").on("click",".reset",(function(){var t=e(this).closest("div.job_listings"),n=e(this).closest("form");return n.find(':input[name="search_keywords"], :input[name="search_location"], .job-manager-filter').not(':input[type="hidden"]').val("").trigger("change.select2"),n.find(':input[name^="search_categories"]').not(':input[type="hidden"]').val("").trigger("change.select2"),n.find(':input[name="filter_job_type[]"]').not(':input[type="hidden"]').prop("checked",!0),t.triggerHandler("reset"),t.triggerHandler("update_results",[1,!1]),i(t),!1})).on("submit",(function(){return!1})),e(document.body).on("click",".load_more_jobs",(function(){var t=e(this).closest("div.job_listings"),n=parseInt(e(this).data("page")||1,10);return e(this).addClass("loading"),n+=1,e(this).data("page",n),t.triggerHandler("update_results",[n,!0]),!1})),e.isFunction(e.fn.select2)&&"undefined"!=typeof job_manager_select2_filters_args&&e('select[name^="search_categories"]:visible').select2(job_manager_select2_filters_args),e(window).on("unload",(function(){return e("div.job_listings").each((function(){var n=r(e(this));n&&!n.persist_results&&function(e){if(!t(e))return!1;var n=r(e);n||(n={}),n.results=null,i(e,n)}(e(this))})),!0})),e("div.job_listings").each((function(){var n=e(this),o=n.find(".job_filters"),s=!1,d=r(n);d&&(d.results&&(s=l(n,d.results),a(n,!1),function(e){if(!t(e))return!1;var n=r(e);n||(n={}),n.form=null,i(e,n)}(n)),"string"==typeof d.form&&""!==d.form&&(o.find("input[type=checkbox]").prop("checked",!1),o.deserialize(d.form),o.find(':input[name^="search_categories"]').not(':input[type="hidden"]').trigger("change.select2"))),!s&&o.length>0&&n.triggerHandler("update_results",[1,!1])}))}))}]);
1
+ !function(e){var t={};function n(i){if(t[i])return t[i].exports;var o=t[i]={i:i,l:!1,exports:{}};return e[i].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(i,o,function(t){return e[t]}.bind(null,o));return i},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=3)}([function(e,t){function n(t){return"function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?e.exports=n=function(e){return typeof e}:e.exports=n=function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(t)}e.exports=n},,,function(e,t,n){"use strict";n.r(t);var i=n(0),o=n.n(i);jQuery(document).ready((function(e){function t(t){return!(!window.sessionStorage||"function"!=typeof window.sessionStorage.setItem||e(document.body).hasClass("disable-job-manager-form-state-storage")||t.data("disable-form-state-storage"))}function n(t){var n=e("div.job_listings").index(t),i=t.data("post_id");return void 0!==i&&i||(i=window.location.href.replace(location.hash,"")),"job_listing_"+i+"_"+n}function i(e,i){if(!t(e))return!1;"object"!==o()(i)&&(i={});var r=n(e);try{return window.sessionStorage.setItem(r,JSON.stringify(i))}catch(e){}return!1}function r(e){if(!t(e))return!1;var i=n(e);try{var o=window.sessionStorage.getItem(i);if(o)return JSON.parse(o)}catch(e){}return!1}function a(e,n){if(!t(e)||!e)return!1;var o=r(e);return!!o&&(o.persist_results=n,i(e,o))}function s(e){if(!t(e)||!e)return!1;var n=r(e);if(!n)return!1;var o=e.find(".job_filters");return n.form=o.serialize(),i(e,n)}function l(t,n,i){var o=t.find(".job_listings"),r=t.find(".showing_jobs");if("boolean"!=typeof i&&(i=!1),"string"==typeof n.showing&&n.showing){var a=jQuery("<span>").html(n.showing);r.show().html("").html(n.showing_links).prepend(a)}else r.hide();return n.showing_all?r.addClass("wp-job-manager-showing-all"):r.removeClass("wp-job-manager-showing-all"),n.html&&(i?o.append(n.html):o.html(n.html)),!0===t.data("show_pagination")?(t.find(".job-manager-pagination").remove(),n.pagination&&t.append(n.pagination)):(!n.found_jobs||n.max_num_pages<=n.data.page?e(".load_more_jobs:not(.load_previous)",t).hide():e(".load_more_jobs",t).show(),e(".load_more_jobs",t).removeClass("loading").data("page",n.data.page),e("li.job_listing",o).css("visibility","visible")),!0}e(document).on("click","a",(function(){e("div.job_listings").each((function(){s(e(this))}))})),e(document).on("submit","form",(function(){e("div.job_listings").each((function(){s(e(this))}))}));var d=[];e("div.job_listings").on("click","li.job_listing a",(function(){a(e(this).closest("div.job_listings"),!0)})).on("click",".job-manager-pagination a",(function(){var t=e(this).closest("div.job_listings"),n=e(this).data("page");return t.triggerHandler("update_results",[n,!1]),e("body, html").animate({scrollTop:t.offset().top},600),!1})).on("update_results",(function(o,a,s){var u,c,f,p="",g=e(this),_=g.find(".job_filters"),h=g.find(".job_listings"),b=g.data("per_page"),m=g.data("orderby"),y=g.data("order"),j=g.data("featured"),v=g.data("filled"),w=g.data("remote_position"),S=g.data("job_types"),k=g.data("post_status"),x=e("div.job_listings").index(this);if(!(x<0)){if(function(e){if(!t(e))return!1;var i=n(e);try{window.sessionStorage.removeItem(i)}catch(e){return!1}}(g),d[x]&&d[x].abort(),s&&1!==a||(e("li.job_listing, li.no_job_listings_found",h).css("visibility","hidden"),h.addClass("loading")),g.find(".load_more_jobs").data("page",a),!0===g.data("show_filters")){var O=[];e(':input[name="filter_job_type[]"]:checked, :input[name="filter_job_type[]"][type="hidden"], :input[name="filter_job_type"]',_).each((function(){O.push(e(this).val())})),u=_.find(':input[name^="search_categories"]').map((function(){return e(this).val()})).get(),c="",f="";var C=_.find(':input[name="search_keywords"]'),H=_.find(':input[name="search_location"]'),P=_.find(':input[name="remote_position"]');C.val()!==C.attr("placeholder")&&(c=C.val()),H.val()!==H.attr("placeholder")&&(f=H.val()),P.length&&(w=P.is(":checked")?"true":null),p={lang:job_manager_ajax_filters.lang,search_keywords:c,search_location:f,search_categories:u,filter_job_type:O,filter_post_status:k,per_page:b,orderby:m,order:y,page:a,featured:j,filled:v,remote_position:w,show_pagination:g.data("show_pagination"),form_data:_.serialize()}}else u=g.data("categories"),c=g.data("keywords"),f=g.data("location"),u&&("string"!=typeof u&&(u=String(u)),u=u.split(",")),p={lang:job_manager_ajax_filters.lang,search_categories:u,search_keywords:c,search_location:f,filter_post_status:k,filter_job_type:S,per_page:b,orderby:m,order:y,page:a,featured:j,filled:v,remote_position:w,show_pagination:g.data("show_pagination")};d[x]=e.ajax({type:"POST",url:job_manager_ajax_filters.ajax_url.toString().replace("%%endpoint%%","get_listings"),data:p,success:function(e){if(e)try{e.data=p,l(g,e,s),h.removeClass("loading"),g.triggerHandler("updated_results",e),function(e,n){if(!t(e))return!1;var o=r(e);o||(o={persist_results:!1});var a=e.find(".job_listings");n.html=a.html(),o.results=n,i(e,o)}(g,e)}catch(e){window.console&&window.console.log(e)}},error:function(e,t,n){window.console&&"abort"!==t&&window.console.log(t+": "+n)},statusCode:{404:function(){window.console&&window.console.log("Error 404: Ajax Endpoint cannot be reached. Go to Settings > Permalinks and save to resolve.")}}})}})),e("#search_keywords, #search_location, #remote_position, .job_types :input, #search_categories, .job-manager-filter").change((function(){var t=e(this).closest("div.job_listings");t.triggerHandler("update_results",[1,!1]),i(t)})).on("keyup",(function(t){13===t.which&&e(this).trigger("change")})),e(".job_filters").on("click",".reset",(function(){var t=e(this).closest("div.job_listings"),n=e(this).closest("form");return n.find(':input[name="search_keywords"], :input[name="search_location"], .job-manager-filter').not(':input[type="hidden"]').val("").trigger("change.select2"),n.find(':input[name^="search_categories"]').not(':input[type="hidden"]').val("").trigger("change.select2"),n.find(':input[name="filter_job_type[]"]').not(':input[type="hidden"]').prop("checked",!0),n.find(':input[name="remote_position"]').not(':input[type="hidden"]').prop("checked",!1),t.triggerHandler("reset"),t.triggerHandler("update_results",[1,!1]),i(t),!1})).on("submit",(function(){return!1})),e(document.body).on("click",".load_more_jobs",(function(){var t=e(this).closest("div.job_listings"),n=parseInt(e(this).data("page")||1,10);return e(this).addClass("loading"),n+=1,e(this).data("page",n),t.triggerHandler("update_results",[n,!0]),!1})),e.isFunction(e.fn.select2)&&"undefined"!=typeof job_manager_select2_filters_args&&e('select[name^="search_categories"]:visible').select2(job_manager_select2_filters_args),e(window).on("unload",(function(){return e("div.job_listings").each((function(){var n=r(e(this));n&&!n.persist_results&&function(e){if(!t(e))return!1;var n=r(e);n||(n={}),n.results=null,i(e,n)}(e(this))})),!0})),e("div.job_listings").each((function(){var n=e(this),o=n.find(".job_filters"),s=!1,d=r(n);d&&(d.results&&(s=l(n,d.results),a(n,!1),function(e){if(!t(e))return!1;var n=r(e);n||(n={}),n.form=null,i(e,n)}(n)),"string"==typeof d.form&&""!==d.form&&(o.find("input[type=checkbox]").prop("checked",!1),o.deserialize(d.form),o.find(':input[name^="search_categories"]').not(':input[type="hidden"]').trigger("change.select2"))),!s&&o.length>0&&n.triggerHandler("update_results",[1,!1])}))}))}]);
changelog.txt CHANGED
@@ -1,3 +1,11 @@
 
 
 
 
 
 
 
 
1
  = 1.37.0 =
2
  * Enhancement: Job Visibility Settings
3
  * Enhancement: New settings for Salary fields
@@ -56,7 +64,7 @@
56
  * Fix: Missing variable error with cached widgets.
57
  * Tweak: reCAPTCHA setting has more clear language. (@tripflex)
58
  * Dev: Added filter `submit_job_form_create_account_role` for user role when created on job submission. (@tripflex)
59
- * Dev: Added filter `job_manager_should_run_shortcode_action_handler` for if a job dashboard action should run.
60
  * Dev: Added filter `job_manager_get_form_action` to modify the action of a frontend form. (@tripflex)
61
  * Template update: `job-dashboard.php` with new date functions.
62
 
@@ -99,7 +107,7 @@
99
  * Fix: Resuming job listing submission at a particular step is now fixed.
100
  * Fix: Issue with some permalink structures and WPMU would cause issues on `[jobs]` page.
101
  * Dev: Adds the ability to block some jobs from being edited in the frontend.
102
- * Dev: Adds ability to force some email notifications to be enabled.
103
  * Dev: Allows email notifications to be sent immediately.
104
  * Dev: Adds ability for settings to reference other settings tabs.
105
  * 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.
@@ -123,7 +131,7 @@
123
  * Third Party: Fix issue with Polylang where translations get overwritten on save of another language.
124
  * Dev: Adds the ability to completely disable the state saving functionality of `[jobs]` results.
125
  * Dev: Allows custom calls to `get_job_listings()` to just get `ids` and `id=>parent`. (@manzoorwanijk)
126
- * Dev: Switched to short-array syntax across plugin.
127
  * Dev: Updated `jquery-fileupload` library to 10.2.0.
128
  * Dev: Updated `select2` library to 4.0.10.
129
 
@@ -136,7 +144,7 @@
136
  * Fix: Checking typeof undefined should be in quotes in job_submission.js.
137
  * Fix: Plugin activation issue that didn't set up roles correctly.
138
  * Fix: Escaped HTML issue in expiring jobs email notice.
139
- * Change: Added additional unslashing and sanitization of input variables from forms.
140
  * Change: Limited direct database access within the plugin and migrated to WordPress core functions when possible.
141
  * Removed: Transient garbage collection. WordPress 4.9 and up handle this automatically.
142
 
@@ -189,7 +197,7 @@
189
  = 1.32.0 =
190
  * Enhancement: Switched from Chosen to Select2 for enhanced dropdown handling and better mobile support. May require theme update.
191
  * Enhancement: Draft and unsubmitted job listings now appear in `[job_dashboard]`, allowing users to complete their submission.
192
- * Enhancement: [REVERTED IN 1.32.1] Filled and expired positions are now hidden from WordPress search. (@felipeelia)
193
  * Enhancement: Adds additional support for the new block editor. Restricted to classic block for compatibility with frontend editor.
194
  * Enhancement: Job types can be preselected in `[jobs]` shortcode with `?search_job_type=term-slug`. (@felipeelia)
195
  * Enhancement: Author selection in WP admin now uses a searchable dropdown.
@@ -209,7 +217,7 @@
209
  * Fix: Escape the attachment URL. (Props to karimeo)
210
  * Fix: Custom job field priority fix when using decimals. (@tripflex)
211
  * Fix: Fix issue with empty mutli-select in WP admin jobs page. (@felipeelia)
212
- * Fix: Issue with data export when email doesn't have any job listings.
213
  * Third Party: Improved WPML support. (@vukvukovich)
214
 
215
  = 1.31.2 =
@@ -224,7 +232,7 @@
224
  * Fix: No longer auto-expire job listings in Draft status.
225
  * Fix: Issue with undefined index error in WP admin. (@albionselimaj)
226
  * Fix: Issue with duplicate usernames preventing submission of job listings. (@timothyjensen)
227
- * Dev: Widespread code formatting cleanup throughout the plugin.
228
 
229
  = 1.31.0 =
230
  * Change: Minimum WordPress version is now 4.7.0.
@@ -232,7 +240,7 @@
232
  * Enhancement: For GDPR, scrub WPJM data from database on uninstall if option is enabled.
233
  * Enhancement: Filter by Filled and Featured status in WP admin.
234
  * Enhancement: Simplify the display of application URLs.
235
- * Enhancement: When using WPML, prevent changes to page options when on a non-default language. (@vukvukovich)
236
  * Enhancement: Include company logo in structured data. (@RajeebTheGreat)
237
  * Enhancement: Use more efficient jQuery selectors in scripts. (@RajeebTheGreat)
238
  * Enhancement: Use proper `<h2>` tag in `content-summary-job_listing.php` template for the job title. (@abdullah1908)
@@ -247,8 +255,8 @@
247
 
248
  = 1.30.2 =
249
  * Enhancement: Show notice when user is using an older version of WordPress.
250
- * Enhancement: Hide unnecessary view mode in WP Admin's Job Listings page. (@RajeebTheGreat)
251
- * Enhancement: Add support for the `paged` parameter in the RSS feed. (@RajeebTheGreat)
252
  * Fix: Minor PHP 7.2 compatibility fixes.
253
  * Dev: Allow `parent` attribute to be passed to `job_manager_dropdown_categories()`. (@RajeebTheGreat)
254
 
@@ -328,7 +336,7 @@
328
  * Fix: Make sure cron jobs for checking/cleaning expired listings are always in place.
329
  * Fix: Better handling of multiple job types. (@spencerfinnell)
330
  * Fix: Issue with deleting company logos from job listings submission form.
331
- * Fix: Warning thrown on job submission form when user not logged in. (@piersb)
332
  * Fix: Issue with WPML not syncing some meta fields.
333
  * Fix: Better handling of AJAX upload errors. (@tripflex)
334
  * Fix: Remove job posting cookies on logout.
@@ -336,7 +344,7 @@
336
  * Fix: Issue with Safari and expiration datepicker.
337
 
338
  = 1.26.2 =
339
- * Fix: Prevents use of Ajax file upload endpoint for visitors who aren't logged in. Themes should check with `job_manager_user_can_upload_file_via_ajax()` if using endpoint in templates.
340
  * Fix: Escape post title in WP Admin's Job Listings page and template segments. (Props to @EhsanCod3r)
341
 
342
  = 1.26.1 =
@@ -374,30 +382,30 @@
374
  * Fix: Fixed taxonomy search conditions. See https://github.com/automattic/wp-job-manager/pull/859/ Props Jonas Vogel.
375
 
376
  = 1.25.2 =
377
- * Fix - The date format of the expiry date picker was incorrect in translations so we added a comment to clarify, and fixed translations.
378
- * Fix - Changing the date of an expired job would forget the date, even though the job would become active.
379
- * Fix - Site owner can allow jobs to have only one or more than one types.
380
- * Fix - Show expired jobs if that setting is enabled.
381
- * Fix - Simplify the search message on the jobs page to avoid translation problems.
382
- * Fix - The uploader would ignore WordPress created image sizes.
383
- * Fix - setup.css was loaded on all admin pages.
384
- * Fix - The preview of a listing could be edited or viewed by anyone. Props @tripflex
385
- * Fix - When users were deleted their jobs weren't.
386
- * Fix - OrderBy Rand wasn't working.
387
- * Dev - Add upload filters and update PHPDocs, props @tripflex
388
- * Fix - Stop using jQuery.live, props @tripflex
389
 
390
  = 1.25.1 =
391
- * Feature - Adds a view button to the Admin UI for easy access to submitted files or URLs. Props tripflex
392
  * Fix - Add hardening to file uploads to prevent accepting unexpected file times. Previously, other WP-allowed types were sometimes accepted.
393
- * Fix - Job post form categories are now properly cached and displayed per language when using WPML or Polylang.
394
- * Fix - Refactored WPML workaround, which was causing no job listings on non-default languages.
395
- * Fix - Allow employers to edit job listings when a listing is pending payment.
396
- * Fix - No longer display Job Taxonomies in the WordPress tag cloud.
397
- * Fix - Migrate away from jQuery.live, which is no longer supported.
398
- * Tweak - Updated incorrect settings description.
399
- * Dev - Adds hook to add items in a job's RSS feed item.
400
- * Dev - Adds filter to disable Job Listings cache
401
  * Dev - Inline docs and coding standards improvements.
402
 
403
  = 1.25.0 =
@@ -405,7 +413,7 @@
405
  * Fix - Support WP_EMBED in job descriptions.
406
  * Fix - Ensure logo is displayed on edit, before submission.
407
  * Fix - Attachment URLs on multisite.
408
- * Fix - Refactored WPML workaround, which was causing no job listings on non-default languages.
409
  * Fix - No need to decode URLs anymore https://core.trac.wordpress.org/ticket/23605.
410
  * Dev - submit_job_form_end/submit_job_form_start actions.
411
  * Dev - job-manager-datepicker class for backend date fields.
1
+ = 1.38.0 =
2
+ * Enhancement: Add remote position to filtering (@tripflex)
3
+ * Enhancement: Add setting to enable/disable remote position field (@tripflex)
4
+ * Enhancement: Add mobile support for keyword and location fields (@tripflex)
5
+ * Fix: Remove multiple location search, revert back to original handling prior to 1.36 (@tripflex)
6
+ * Fix: Translation issue in onboarding wizard. (@NekoJonez)
7
+ * Fix: Better support for jobs submissions with `0` as input
8
+
9
  = 1.37.0 =
10
  * Enhancement: Job Visibility Settings
11
  * Enhancement: New settings for Salary fields
64
  * Fix: Missing variable error with cached widgets.
65
  * Tweak: reCAPTCHA setting has more clear language. (@tripflex)
66
  * Dev: Added filter `submit_job_form_create_account_role` for user role when created on job submission. (@tripflex)
67
+ * Dev: Added filter `job_manager_should_run_shortcode_action_handler` for if a job dashboard action should run.
68
  * Dev: Added filter `job_manager_get_form_action` to modify the action of a frontend form. (@tripflex)
69
  * Template update: `job-dashboard.php` with new date functions.
70
 
107
  * Fix: Resuming job listing submission at a particular step is now fixed.
108
  * Fix: Issue with some permalink structures and WPMU would cause issues on `[jobs]` page.
109
  * Dev: Adds the ability to block some jobs from being edited in the frontend.
110
+ * Dev: Adds ability to force some email notifications to be enabled.
111
  * Dev: Allows email notifications to be sent immediately.
112
  * Dev: Adds ability for settings to reference other settings tabs.
113
  * 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.
131
  * Third Party: Fix issue with Polylang where translations get overwritten on save of another language.
132
  * Dev: Adds the ability to completely disable the state saving functionality of `[jobs]` results.
133
  * Dev: Allows custom calls to `get_job_listings()` to just get `ids` and `id=>parent`. (@manzoorwanijk)
134
+ * Dev: Switched to short-array syntax across plugin.
135
  * Dev: Updated `jquery-fileupload` library to 10.2.0.
136
  * Dev: Updated `select2` library to 4.0.10.
137
 
144
  * Fix: Checking typeof undefined should be in quotes in job_submission.js.
145
  * Fix: Plugin activation issue that didn't set up roles correctly.
146
  * Fix: Escaped HTML issue in expiring jobs email notice.
147
+ * Change: Added additional unslashing and sanitization of input variables from forms.
148
  * Change: Limited direct database access within the plugin and migrated to WordPress core functions when possible.
149
  * Removed: Transient garbage collection. WordPress 4.9 and up handle this automatically.
150
 
197
  = 1.32.0 =
198
  * Enhancement: Switched from Chosen to Select2 for enhanced dropdown handling and better mobile support. May require theme update.
199
  * Enhancement: Draft and unsubmitted job listings now appear in `[job_dashboard]`, allowing users to complete their submission.
200
+ * Enhancement: [REVERTED IN 1.32.1] Filled and expired positions are now hidden from WordPress search. (@felipeelia)
201
  * Enhancement: Adds additional support for the new block editor. Restricted to classic block for compatibility with frontend editor.
202
  * Enhancement: Job types can be preselected in `[jobs]` shortcode with `?search_job_type=term-slug`. (@felipeelia)
203
  * Enhancement: Author selection in WP admin now uses a searchable dropdown.
217
  * Fix: Escape the attachment URL. (Props to karimeo)
218
  * Fix: Custom job field priority fix when using decimals. (@tripflex)
219
  * Fix: Fix issue with empty mutli-select in WP admin jobs page. (@felipeelia)
220
+ * Fix: Issue with data export when email doesn't have any job listings.
221
  * Third Party: Improved WPML support. (@vukvukovich)
222
 
223
  = 1.31.2 =
232
  * Fix: No longer auto-expire job listings in Draft status.
233
  * Fix: Issue with undefined index error in WP admin. (@albionselimaj)
234
  * Fix: Issue with duplicate usernames preventing submission of job listings. (@timothyjensen)
235
+ * Dev: Widespread code formatting cleanup throughout the plugin.
236
 
237
  = 1.31.0 =
238
  * Change: Minimum WordPress version is now 4.7.0.
240
  * Enhancement: For GDPR, scrub WPJM data from database on uninstall if option is enabled.
241
  * Enhancement: Filter by Filled and Featured status in WP admin.
242
  * Enhancement: Simplify the display of application URLs.
243
+ * Enhancement: When using WPML, prevent changes to page options when on a non-default language. (@vukvukovich)
244
  * Enhancement: Include company logo in structured data. (@RajeebTheGreat)
245
  * Enhancement: Use more efficient jQuery selectors in scripts. (@RajeebTheGreat)
246
  * Enhancement: Use proper `<h2>` tag in `content-summary-job_listing.php` template for the job title. (@abdullah1908)
255
 
256
  = 1.30.2 =
257
  * Enhancement: Show notice when user is using an older version of WordPress.
258
+ * Enhancement: Hide unnecessary view mode in WP Admin's Job Listings page. (@RajeebTheGreat)
259
+ * Enhancement: Add support for the `paged` parameter in the RSS feed. (@RajeebTheGreat)
260
  * Fix: Minor PHP 7.2 compatibility fixes.
261
  * Dev: Allow `parent` attribute to be passed to `job_manager_dropdown_categories()`. (@RajeebTheGreat)
262
 
336
  * Fix: Make sure cron jobs for checking/cleaning expired listings are always in place.
337
  * Fix: Better handling of multiple job types. (@spencerfinnell)
338
  * Fix: Issue with deleting company logos from job listings submission form.
339
+ * Fix: Warning thrown on job submission form when user not logged in. (@piersb)
340
  * Fix: Issue with WPML not syncing some meta fields.
341
  * Fix: Better handling of AJAX upload errors. (@tripflex)
342
  * Fix: Remove job posting cookies on logout.
344
  * Fix: Issue with Safari and expiration datepicker.
345
 
346
  = 1.26.2 =
347
+ * Fix: Prevents use of Ajax file upload endpoint for visitors who aren't logged in. Themes should check with `job_manager_user_can_upload_file_via_ajax()` if using endpoint in templates.
348
  * Fix: Escape post title in WP Admin's Job Listings page and template segments. (Props to @EhsanCod3r)
349
 
350
  = 1.26.1 =
382
  * Fix: Fixed taxonomy search conditions. See https://github.com/automattic/wp-job-manager/pull/859/ Props Jonas Vogel.
383
 
384
  = 1.25.2 =
385
+ * Fix - The date format of the expiry date picker was incorrect in translations so we added a comment to clarify, and fixed translations.
386
+ * Fix - Changing the date of an expired job would forget the date, even though the job would become active.
387
+ * Fix - Site owner can allow jobs to have only one or more than one types.
388
+ * Fix - Show expired jobs if that setting is enabled.
389
+ * Fix - Simplify the search message on the jobs page to avoid translation problems.
390
+ * Fix - The uploader would ignore WordPress created image sizes.
391
+ * Fix - setup.css was loaded on all admin pages.
392
+ * Fix - The preview of a listing could be edited or viewed by anyone. Props @tripflex
393
+ * Fix - When users were deleted their jobs weren't.
394
+ * Fix - OrderBy Rand wasn't working.
395
+ * Dev - Add upload filters and update PHPDocs, props @tripflex
396
+ * Fix - Stop using jQuery.live, props @tripflex
397
 
398
  = 1.25.1 =
399
+ * Feature - Adds a view button to the Admin UI for easy access to submitted files or URLs. Props tripflex
400
  * Fix - Add hardening to file uploads to prevent accepting unexpected file times. Previously, other WP-allowed types were sometimes accepted.
401
+ * Fix - Job post form categories are now properly cached and displayed per language when using WPML or Polylang.
402
+ * Fix - Refactored WPML workaround, which was causing no job listings on non-default languages.
403
+ * Fix - Allow employers to edit job listings when a listing is pending payment.
404
+ * Fix - No longer display Job Taxonomies in the WordPress tag cloud.
405
+ * Fix - Migrate away from jQuery.live, which is no longer supported.
406
+ * Tweak - Updated incorrect settings description.
407
+ * Dev - Adds hook to add items in a job's RSS feed item.
408
+ * Dev - Adds filter to disable Job Listings cache
409
  * Dev - Inline docs and coding standards improvements.
410
 
411
  = 1.25.0 =
413
  * Fix - Support WP_EMBED in job descriptions.
414
  * Fix - Ensure logo is displayed on edit, before submission.
415
  * Fix - Attachment URLs on multisite.
416
+ * Fix - Refactored WPML workaround, which was causing no job listings on non-default languages.
417
  * Fix - No need to decode URLs anymore https://core.trac.wordpress.org/ticket/23605.
418
  * Dev - submit_job_form_end/submit_job_form_start actions.
419
  * Dev - job-manager-datepicker class for backend date fields.
includes/abstracts/abstract-wp-job-manager-form.php CHANGED
@@ -504,7 +504,7 @@ abstract class WP_Job_Manager_Form {
504
  $value = trim( $value );
505
  }
506
 
507
- $this->fields[ $group_key ][ $key ]['empty'] = empty( $value );
508
  };
509
  }
510
 
@@ -533,6 +533,35 @@ abstract class WP_Job_Manager_Form {
533
  return apply_filters( 'job_manager_get_posted_fields', $values, $this->fields );
534
  }
535
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
536
  /**
537
  * Navigates through an array and sanitizes the field.
538
  *
@@ -628,7 +657,7 @@ abstract class WP_Job_Manager_Form {
628
  call_user_func( $field['before_sanitize'], $value );
629
  }
630
 
631
- return $value ? $this->sanitize_posted_field( $value, $field['sanitizer'] ) : '';
632
  }
633
 
634
  /**
@@ -646,7 +675,7 @@ abstract class WP_Job_Manager_Form {
646
  call_user_func( $field['before_sanitize'], $value );
647
  }
648
 
649
- return $value ? array_map( 'sanitize_text_field', $value ) : [];
650
  }
651
 
652
  /**
@@ -685,7 +714,7 @@ abstract class WP_Job_Manager_Form {
685
  call_user_func( $field['before_sanitize'], $value );
686
  }
687
 
688
- return $value ? trim( wp_kses_post( $value ) ) : '';
689
  }
690
 
691
  /**
@@ -719,7 +748,7 @@ abstract class WP_Job_Manager_Form {
719
  call_user_func( $field['before_sanitize'], $value );
720
  }
721
 
722
- return $value ? array_map( 'absint', $value ) : [];
723
  }
724
 
725
  /**
@@ -737,7 +766,7 @@ abstract class WP_Job_Manager_Form {
737
  call_user_func( $field['before_sanitize'], $value );
738
  }
739
 
740
- return $value ? array_map( 'absint', $value ) : [];
741
  }
742
 
743
  /**
504
  $value = trim( $value );
505
  }
506
 
507
+ $this->fields[ $group_key ][ $key ]['empty'] = $this->is_empty( $value, $key );
508
  };
509
  }
510
 
533
  return apply_filters( 'job_manager_get_posted_fields', $values, $this->fields );
534
  }
535
 
536
+ /**
537
+ * Checks whether a value is empty.
538
+ *
539
+ * @param string|numeric|array|boolean $value The value that is being checked.
540
+ * @param string $key The key of the field that is being checked.
541
+ * @return bool True if value is empty, false otherwise.
542
+ */
543
+ protected function is_empty( $value, $key = '' ) {
544
+ /**
545
+ * Filter values considered as empty or falsy for required fields.
546
+ * Useful for example if you want to consider zero (0) as a non-empty value.
547
+ *
548
+ * @see http://php.net/manual/en/function.empty.php -- standard default empty values
549
+ *
550
+ * @since 1.36.0
551
+ *
552
+ * @param array $false_vals A list of values considered as falsy.
553
+ * @param string $key The key that this is being used for.
554
+ */
555
+ $false_vals = apply_filters( 'submit_job_form_validate_fields_empty_values', [ '', 0, 0.0, '0', null, false, [] ], $key );
556
+
557
+ // strict true for type checking.
558
+ if ( in_array( $value, $false_vals, true ) ) {
559
+ return true;
560
+ }
561
+
562
+ return false;
563
+ }
564
+
565
  /**
566
  * Navigates through an array and sanitizes the field.
567
  *
657
  call_user_func( $field['before_sanitize'], $value );
658
  }
659
 
660
+ return false !== $value ? $this->sanitize_posted_field( $value, $field['sanitizer'] ) : '';
661
  }
662
 
663
  /**
675
  call_user_func( $field['before_sanitize'], $value );
676
  }
677
 
678
+ return is_array( $value ) ? array_map( 'sanitize_text_field', $value ) : [];
679
  }
680
 
681
  /**
714
  call_user_func( $field['before_sanitize'], $value );
715
  }
716
 
717
+ return false !== $value ? trim( wp_kses_post( $value ) ) : '';
718
  }
719
 
720
  /**
748
  call_user_func( $field['before_sanitize'], $value );
749
  }
750
 
751
+ return is_array( $value ) ? array_map( 'absint', $value ) : [];
752
  }
753
 
754
  /**
766
  call_user_func( $field['before_sanitize'], $value );
767
  }
768
 
769
+ return is_array( $value ) ? array_map( 'absint', $value ) : [];
770
  }
771
 
772
  /**
includes/admin/class-wp-job-manager-settings.php CHANGED
@@ -223,6 +223,15 @@ class WP_Job_Manager_Settings {
223
  'type' => 'checkbox',
224
  'attributes' => [],
225
  ],
 
 
 
 
 
 
 
 
 
226
  [
227
  'name' => 'job_manager_enable_salary',
228
  'std' => '0',
223
  'type' => 'checkbox',
224
  'attributes' => [],
225
  ],
226
+ [
227
+ 'name' => 'job_manager_enable_remote_position',
228
+ 'std' => '1',
229
+ 'label' => __( 'Remote Position', 'wp-job-manager' ),
230
+ 'cb_label' => __( 'Enable Remote Position', 'wp-job-manager' ),
231
+ 'desc' => __( 'This lets users select if the listing is a remote position when submitting a job.', 'wp-job-manager' ),
232
+ 'type' => 'checkbox',
233
+ 'attributes' => [],
234
+ ],
235
  [
236
  'name' => 'job_manager_enable_salary',
237
  'std' => '0',
includes/admin/views/html-admin-setup-step-2.php CHANGED
@@ -68,7 +68,7 @@ if ( ! defined( 'ABSPATH' ) ) {
68
  <tfoot>
69
  <tr>
70
  <th colspan="4">
71
- <input type="submit" class="button button-primary" value="Create selected pages" />
72
  <a href="<?php echo esc_url( add_query_arg( 'step', 3 ) ); ?>" class="button"><?php esc_html_e( 'Skip this step', 'wp-job-manager' ); ?></a>
73
  </th>
74
  </tr>
68
  <tfoot>
69
  <tr>
70
  <th colspan="4">
71
+ <input type="submit" class="button button-primary" value="<?php esc_html_e( 'Create selected pages', 'wp-job-manager' ); ?>" />
72
  <a href="<?php echo esc_url( add_query_arg( 'step', 3 ) ); ?>" class="button"><?php esc_html_e( 'Skip this step', 'wp-job-manager' ); ?></a>
73
  </th>
74
  </tr>
includes/class-wp-job-manager-ajax.php CHANGED
@@ -133,6 +133,7 @@ class WP_Job_Manager_Ajax {
133
  $per_page = isset( $_REQUEST['per_page'] ) ? absint( $_REQUEST['per_page'] ) : absint( get_option( 'job_manager_per_page' ) );
134
  $filled = isset( $_REQUEST['filled'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['filled'] ) ) : null;
135
  $featured = isset( $_REQUEST['featured'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['featured'] ) ) : null;
 
136
  $show_pagination = isset( $_REQUEST['show_pagination'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['show_pagination'] ) ) : null;
137
  // phpcs:enable WordPress.Security.NonceVerification.Recommended
138
 
@@ -161,6 +162,10 @@ class WP_Job_Manager_Ajax {
161
  $args['filled'] = 'true' === $filled;
162
  }
163
 
 
 
 
 
164
  if ( 'true' === $featured || 'false' === $featured ) {
165
  $args['featured'] = 'true' === $featured;
166
  $args['orderby'] = 'featured' === $orderby ? 'date' : $orderby;
133
  $per_page = isset( $_REQUEST['per_page'] ) ? absint( $_REQUEST['per_page'] ) : absint( get_option( 'job_manager_per_page' ) );
134
  $filled = isset( $_REQUEST['filled'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['filled'] ) ) : null;
135
  $featured = isset( $_REQUEST['featured'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['featured'] ) ) : null;
136
+ $remote_position = isset( $_REQUEST['remote_position'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['remote_position'] ) ) : null;
137
  $show_pagination = isset( $_REQUEST['show_pagination'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['show_pagination'] ) ) : null;
138
  // phpcs:enable WordPress.Security.NonceVerification.Recommended
139
 
162
  $args['filled'] = 'true' === $filled;
163
  }
164
 
165
+ if ( 'true' === $remote_position || 'false' === $remote_position ) {
166
+ $args['remote_position'] = 'true' === $remote_position;
167
+ }
168
+
169
  if ( 'true' === $featured || 'false' === $featured ) {
170
  $args['featured'] = 'true' === $featured;
171
  $args['orderby'] = 'featured' === $orderby ? 'date' : $orderby;
includes/class-wp-job-manager-post-types.php CHANGED
@@ -1593,7 +1593,7 @@ class WP_Job_Manager_Post_Types {
1593
  'type' => 'checkbox',
1594
  'priority' => 12,
1595
  'data_type' => 'integer',
1596
- 'show_in_admin' => true,
1597
  'show_in_rest' => true,
1598
  ],
1599
  '_job_salary' => [
1593
  'type' => 'checkbox',
1594
  'priority' => 12,
1595
  'data_type' => 'integer',
1596
+ 'show_in_admin' => (bool) get_option( 'job_manager_enable_remote_position' ),
1597
  'show_in_rest' => true,
1598
  ],
1599
  '_job_salary' => [
includes/class-wp-job-manager-shortcodes.php CHANGED
@@ -571,6 +571,7 @@ class WP_Job_Manager_Shortcodes {
571
  'post_status' => '',
572
  'featured' => null, // True to show only featured, false to hide featured, leave null to show both.
573
  'filled' => null, // True to show only filled, false to hide filled, leave null to show both/use the settings.
 
574
 
575
  // Default values for filters.
576
  'location' => '',
@@ -601,6 +602,10 @@ class WP_Job_Manager_Shortcodes {
601
  $atts['filled'] = ( is_bool( $atts['filled'] ) && $atts['filled'] ) || in_array( $atts['filled'], [ 1, '1', 'true', 'yes' ], true );
602
  }
603
 
 
 
 
 
604
  // By default, use client-side state to populate form fields.
605
  $disable_client_state = false;
606
 
@@ -669,6 +674,7 @@ class WP_Job_Manager_Shortcodes {
669
  'job_types' => $atts['job_types'],
670
  'atts' => $atts,
671
  'location' => $atts['location'],
 
672
  'keywords' => $atts['keywords'],
673
  'selected_job_types' => $atts['selected_job_types'],
674
  'show_category_multiselect' => $atts['show_category_multiselect'],
@@ -696,6 +702,7 @@ class WP_Job_Manager_Shortcodes {
696
  'posts_per_page' => $atts['per_page'],
697
  'featured' => $atts['featured'],
698
  'filled' => $atts['filled'],
 
699
  ]
700
  )
701
  );
@@ -733,6 +740,9 @@ class WP_Job_Manager_Shortcodes {
733
  if ( ! is_null( $atts['filled'] ) ) {
734
  $data_attributes['filled'] = $atts['filled'] ? 'true' : 'false';
735
  }
 
 
 
736
  if ( ! empty( $atts['post_status'] ) ) {
737
  $data_attributes['post_status'] = implode( ',', $atts['post_status'] );
738
  }
571
  'post_status' => '',
572
  'featured' => null, // True to show only featured, false to hide featured, leave null to show both.
573
  'filled' => null, // True to show only filled, false to hide filled, leave null to show both/use the settings.
574
+ 'remote_position' => null, // True to show only remote, false to hide remote, leave null to show both.
575
 
576
  // Default values for filters.
577
  'location' => '',
602
  $atts['filled'] = ( is_bool( $atts['filled'] ) && $atts['filled'] ) || in_array( $atts['filled'], [ 1, '1', 'true', 'yes' ], true );
603
  }
604
 
605
+ if ( ! is_null( $atts['remote_position'] ) ) {
606
+ $atts['remote_position'] = ( is_bool( $atts['remote_position'] ) && $atts['remote_position'] ) || in_array( $atts['remote_position'], [ 1, '1', 'true', 'yes' ], true );
607
+ }
608
+
609
  // By default, use client-side state to populate form fields.
610
  $disable_client_state = false;
611
 
674
  'job_types' => $atts['job_types'],
675
  'atts' => $atts,
676
  'location' => $atts['location'],
677
+ 'remote_position' => $atts['remote_position'],
678
  'keywords' => $atts['keywords'],
679
  'selected_job_types' => $atts['selected_job_types'],
680
  'show_category_multiselect' => $atts['show_category_multiselect'],
702
  'posts_per_page' => $atts['per_page'],
703
  'featured' => $atts['featured'],
704
  'filled' => $atts['filled'],
705
+ 'remote_position' => $atts['remote_position'],
706
  ]
707
  )
708
  );
740
  if ( ! is_null( $atts['filled'] ) ) {
741
  $data_attributes['filled'] = $atts['filled'] ? 'true' : 'false';
742
  }
743
+ if ( ! is_null( $atts['remote_position'] ) ) {
744
+ $data_attributes['remote_position'] = $atts['remote_position'] ? 'true' : 'false';
745
+ }
746
  if ( ! empty( $atts['post_status'] ) ) {
747
  $data_attributes['post_status'] = implode( ',', $atts['post_status'] );
748
  }
includes/forms/class-wp-job-manager-form-submit-job.php CHANGED
@@ -363,6 +363,9 @@ class WP_Job_Manager_Form_Submit_Job extends WP_Job_Manager_Form {
363
  } else {
364
  unset( $this->fields['job']['job_salary'], $this->fields['job']['job_salary_currency'], $this->fields['job']['job_salary_unit'] );
365
  }
 
 
 
366
  }
367
 
368
  /**
@@ -416,7 +419,6 @@ class WP_Job_Manager_Form_Submit_Job extends WP_Job_Manager_Form {
416
  foreach ( $group_fields as $key => $field ) {
417
  if (
418
  $field['required']
419
- && $this->is_empty( $values[ $group_key ][ $key ] )
420
  && ( ! isset( $field['empty'] ) || $field['empty'] )
421
  ) {
422
  // translators: Placeholder %s is the label for the required field.
@@ -556,33 +558,6 @@ class WP_Job_Manager_Form_Submit_Job extends WP_Job_Manager_Form {
556
  return apply_filters( 'submit_job_form_validate_fields', true, $this->fields, $values );
557
  }
558
 
559
- /**
560
- * Checks whether a value is empty.
561
- *
562
- * @param string|numeric|array|boolean $value
563
- * @return bool True if value is empty, false otherwise.
564
- */
565
- protected function is_empty( $value ) {
566
- /**
567
- * Filter values considered as empty or falsy for required fields.
568
- * Useful for example if you want to consider zero (0) as a non-empty value.
569
- *
570
- * @see http://php.net/manual/en/function.empty.php -- standard default empty values
571
- *
572
- * @since 1.36.0
573
- *
574
- * @param array $false_vals A list of values considered as falsy.
575
- */
576
- $false_vals = apply_filters( 'submit_job_form_validate_fields_empty_values', [ '', 0, 0.0, '0', null, false, [] ] );
577
-
578
- // strict true for type checking.
579
- if ( in_array( $value, $false_vals, true ) ) {
580
- return true;
581
- }
582
-
583
- return false;
584
- }
585
-
586
  /**
587
  * Enqueues scripts and styles for editing and posting a job listing.
588
  */
363
  } else {
364
  unset( $this->fields['job']['job_salary'], $this->fields['job']['job_salary_currency'], $this->fields['job']['job_salary_unit'] );
365
  }
366
+ if ( ! get_option( 'job_manager_enable_remote_position' ) ) {
367
+ unset( $this->fields['job']['remote_position'] );
368
+ }
369
  }
370
 
371
  /**
419
  foreach ( $group_fields as $key => $field ) {
420
  if (
421
  $field['required']
 
422
  && ( ! isset( $field['empty'] ) || $field['empty'] )
423
  ) {
424
  // translators: Placeholder %s is the label for the required field.
558
  return apply_filters( 'submit_job_form_validate_fields', true, $this->fields, $values );
559
  }
560
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
561
  /**
562
  * Enqueues scripts and styles for editing and posting a job listing.
563
  */
includes/widgets/class-wp-job-manager-widget-recent-jobs.php CHANGED
@@ -29,23 +29,33 @@ class WP_Job_Manager_Widget_Recent_Jobs extends WP_Job_Manager_Widget {
29
  $this->widget_description = __( 'Display a list of recent listings on your site, optionally matching a keyword and location.', 'wp-job-manager' );
30
  $this->widget_id = 'widget_recent_jobs';
31
  $this->settings = [
32
- 'title' => [
33
  'type' => 'text',
34
  // translators: Placeholder %s is the plural label for the job listing post type.
35
  'std' => sprintf( __( 'Recent %s', 'wp-job-manager' ), $wp_post_types['job_listing']->labels->name ),
36
  'label' => __( 'Title', 'wp-job-manager' ),
37
  ],
38
- 'keyword' => [
39
  'type' => 'text',
40
  'std' => '',
41
  'label' => __( 'Keyword', 'wp-job-manager' ),
42
  ],
43
- 'location' => [
44
  'type' => 'text',
45
  'std' => '',
46
  'label' => __( 'Location', 'wp-job-manager' ),
47
  ],
48
- 'number' => [
 
 
 
 
 
 
 
 
 
 
49
  'type' => 'number',
50
  'step' => 1,
51
  'min' => 1,
@@ -53,13 +63,17 @@ class WP_Job_Manager_Widget_Recent_Jobs extends WP_Job_Manager_Widget {
53
  'std' => 10,
54
  'label' => __( 'Number of listings to show', 'wp-job-manager' ),
55
  ],
56
- 'show_logo' => [
57
  'type' => 'checkbox',
58
  'std' => 0,
59
  'label' => esc_html__( 'Show Company Logo', 'wp-job-manager' ),
60
  ],
61
  ];
62
 
 
 
 
 
63
  parent::__construct();
64
  }
65
 
@@ -86,6 +100,7 @@ class WP_Job_Manager_Widget_Recent_Jobs extends WP_Job_Manager_Widget {
86
  $jobs = get_job_listings(
87
  [
88
  'search_location' => $instance['location'],
 
89
  'search_keywords' => $instance['keyword'],
90
  'posts_per_page' => $number,
91
  'orderby' => 'date',
29
  $this->widget_description = __( 'Display a list of recent listings on your site, optionally matching a keyword and location.', 'wp-job-manager' );
30
  $this->widget_id = 'widget_recent_jobs';
31
  $this->settings = [
32
+ 'title' => [
33
  'type' => 'text',
34
  // translators: Placeholder %s is the plural label for the job listing post type.
35
  'std' => sprintf( __( 'Recent %s', 'wp-job-manager' ), $wp_post_types['job_listing']->labels->name ),
36
  'label' => __( 'Title', 'wp-job-manager' ),
37
  ],
38
+ 'keyword' => [
39
  'type' => 'text',
40
  'std' => '',
41
  'label' => __( 'Keyword', 'wp-job-manager' ),
42
  ],
43
+ 'location' => [
44
  'type' => 'text',
45
  'std' => '',
46
  'label' => __( 'Location', 'wp-job-manager' ),
47
  ],
48
+ 'remote_position' => [
49
+ 'type' => 'select',
50
+ 'std' => 0,
51
+ 'label' => esc_html__( 'Remote Positions', 'wp-job-manager' ),
52
+ 'options' => [
53
+ 'all' => esc_html__( 'Show all', 'wp-job-manager' ),
54
+ 'true' => esc_html__( 'Show only remote positions', 'wp-job-manager' ),
55
+ 'false' => esc_html__( 'Show only non-remote positions', 'wp-job-manager' ),
56
+ ],
57
+ ],
58
+ 'number' => [
59
  'type' => 'number',
60
  'step' => 1,
61
  'min' => 1,
63
  'std' => 10,
64
  'label' => __( 'Number of listings to show', 'wp-job-manager' ),
65
  ],
66
+ 'show_logo' => [
67
  'type' => 'checkbox',
68
  'std' => 0,
69
  'label' => esc_html__( 'Show Company Logo', 'wp-job-manager' ),
70
  ],
71
  ];
72
 
73
+ if ( ! get_option( 'job_manager_enable_remote_position' ) ) {
74
+ unset( $this->settings['remote_position'] );
75
+ }
76
+
77
  parent::__construct();
78
  }
79
 
100
  $jobs = get_job_listings(
101
  [
102
  'search_location' => $instance['location'],
103
+ 'remote_position' => in_array( $instance['remote_position'], [ 'true', 'false' ], true ) ? 'true' === $instance['remote_position'] : null,
104
  'search_keywords' => $instance['keyword'],
105
  'posts_per_page' => $number,
106
  'orderby' => 'date',
languages/wp-job-manager.pot CHANGED
@@ -1,17 +1,17 @@
1
  # Copyright (C) 2022 Automattic
2
- # This file is distributed under the same license as the WP Job Manager plugin.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: WP Job Manager 1.37.0\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wp-job-manager/\n"
7
  "Last-Translator: \n"
8
  "Language-Team: \n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
- "POT-Creation-Date: 2022-07-18T17:12:57+00:00\n"
13
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
14
- "X-Generator: WP-CLI 2.4.0\n"
15
  "X-Domain: wp-job-manager\n"
16
 
17
  #. Plugin Name of the plugin
@@ -251,6 +251,7 @@ msgstr ""
251
  #: includes/widgets/class-wp-job-manager-widget-recent-jobs.php:46
252
  #: templates/job-filters.php:35
253
  #: templates/job-filters.php:36
 
254
  msgid "Location"
255
  msgstr ""
256
 
@@ -532,367 +533,381 @@ msgid "This allows users to select more than one type when submitting a job. The
532
  msgstr ""
533
 
534
  #: includes/admin/class-wp-job-manager-settings.php:229
 
 
 
 
 
 
 
 
 
 
 
 
 
 
535
  #: includes/class-wp-job-manager-post-types.php:1600
536
  #: includes/forms/class-wp-job-manager-form-submit-job.php:269
537
  msgid "Salary"
538
  msgstr ""
539
 
540
- #: includes/admin/class-wp-job-manager-settings.php:230
541
  msgid "Enable Job Salary"
542
  msgstr ""
543
 
544
- #: includes/admin/class-wp-job-manager-settings.php:231
545
  msgid "This lets users add a salary when submitting a job."
546
  msgstr ""
547
 
548
- #: includes/admin/class-wp-job-manager-settings.php:238
549
  #: includes/class-wp-job-manager-post-types.php:1610
550
  #: includes/forms/class-wp-job-manager-form-submit-job.php:276
551
  msgid "Salary Currency"
552
  msgstr ""
553
 
554
- #: includes/admin/class-wp-job-manager-settings.php:239
555
  msgid "Enable Job Salary Currency Customization"
556
  msgstr ""
557
 
558
- #: includes/admin/class-wp-job-manager-settings.php:240
559
- #: includes/admin/class-wp-job-manager-settings.php:259
560
  msgid "This lets users add a salary currency when submitting a job."
561
  msgstr ""
562
 
563
- #: includes/admin/class-wp-job-manager-settings.php:247
564
  msgid "Default Salary Currency"
565
  msgstr ""
566
 
567
- #: includes/admin/class-wp-job-manager-settings.php:248
568
  msgid "Default Currency used by salaries"
569
  msgstr ""
570
 
571
- #: includes/admin/class-wp-job-manager-settings.php:249
572
  msgid "Sets the default currency used by salaries"
573
  msgstr ""
574
 
575
- #: includes/admin/class-wp-job-manager-settings.php:251
576
  #: includes/class-wp-job-manager-post-types.php:1613
577
  #: includes/forms/class-wp-job-manager-form-submit-job.php:279
578
  msgid "e.g. USD"
579
  msgstr ""
580
 
581
- #: includes/admin/class-wp-job-manager-settings.php:257
582
  #: includes/class-wp-job-manager-post-types.php:1621
583
  #: includes/forms/class-wp-job-manager-form-submit-job.php:284
584
  msgid "Salary Unit"
585
  msgstr ""
586
 
587
- #: includes/admin/class-wp-job-manager-settings.php:258
588
  msgid "Enable Job Salary Unit Customization"
589
  msgstr ""
590
 
591
- #: includes/admin/class-wp-job-manager-settings.php:266
592
  msgid "Default Salary Unit"
593
  msgstr ""
594
 
595
- #: includes/admin/class-wp-job-manager-settings.php:267
596
  msgid "Default Unit used by salaries"
597
  msgstr ""
598
 
599
- #: includes/admin/class-wp-job-manager-settings.php:268
600
  msgid "Sets the default period unit used by salaries"
601
  msgstr ""
602
 
603
- #: includes/admin/class-wp-job-manager-settings.php:276
604
  msgid "Location Display"
605
  msgstr ""
606
 
607
- #: includes/admin/class-wp-job-manager-settings.php:277
608
  msgid "Display Location Address"
609
  msgstr ""
610
 
611
- #: includes/admin/class-wp-job-manager-settings.php:278
612
  msgid "Display the full address of the job listing location if it is detected by Google Maps Geocoding API. If full address is not available then it will display whatever text the user submitted for the location."
613
  msgstr ""
614
 
615
- #: includes/admin/class-wp-job-manager-settings.php:284
616
  msgid "Job Submission"
617
  msgstr ""
618
 
619
- #: includes/admin/class-wp-job-manager-settings.php:289
620
  msgid "Account Required"
621
  msgstr ""
622
 
623
- #: includes/admin/class-wp-job-manager-settings.php:290
624
  msgid "Require an account to submit listings"
625
  msgstr ""
626
 
627
- #: includes/admin/class-wp-job-manager-settings.php:291
628
  msgid "Limits job listing submissions to registered, logged-in users."
629
  msgstr ""
630
 
631
- #: includes/admin/class-wp-job-manager-settings.php:298
632
  msgid "Account Creation"
633
  msgstr ""
634
 
635
- #: includes/admin/class-wp-job-manager-settings.php:299
636
  msgid "Enable account creation during submission"
637
  msgstr ""
638
 
639
- #: includes/admin/class-wp-job-manager-settings.php:300
640
  msgid "Includes account creation on the listing submission form, to allow non-registered users to create an account and submit a job listing simultaneously."
641
  msgstr ""
642
 
643
- #: includes/admin/class-wp-job-manager-settings.php:307
644
  msgid "Account Username"
645
  msgstr ""
646
 
647
- #: includes/admin/class-wp-job-manager-settings.php:308
648
  msgid "Generate usernames from email addresses"
649
  msgstr ""
650
 
651
- #: includes/admin/class-wp-job-manager-settings.php:309
652
  msgid "Automatically generates usernames for new accounts from the registrant's email address. If this is not enabled, a \"username\" field will display instead."
653
  msgstr ""
654
 
655
- #: includes/admin/class-wp-job-manager-settings.php:316
656
  msgid "Account Password"
657
  msgstr ""
658
 
659
- #: includes/admin/class-wp-job-manager-settings.php:317
660
  msgid "Email new users a link to set a password"
661
  msgstr ""
662
 
663
- #: includes/admin/class-wp-job-manager-settings.php:318
664
  msgid "Sends an email to the user with their username and a link to set their password. If this is not enabled, a \"password\" field will display instead, and their email address won't be verified."
665
  msgstr ""
666
 
667
- #: includes/admin/class-wp-job-manager-settings.php:325
668
  msgid "Account Role"
669
  msgstr ""
670
 
671
- #: includes/admin/class-wp-job-manager-settings.php:326
672
  msgid "Any new accounts created during submission will have this role. If you haven't enabled account creation during submission in the options above, your own method of assigning roles will apply."
673
  msgstr ""
674
 
675
- #: includes/admin/class-wp-job-manager-settings.php:333
676
  msgid "Moderate New Listings"
677
  msgstr ""
678
 
679
- #: includes/admin/class-wp-job-manager-settings.php:334
680
  msgid "Require admin approval of all new listing submissions"
681
  msgstr ""
682
 
683
- #: includes/admin/class-wp-job-manager-settings.php:335
684
  msgid "Sets all new submissions to \"pending.\" They will not appear on your site until an admin approves them."
685
  msgstr ""
686
 
687
- #: includes/admin/class-wp-job-manager-settings.php:342
688
  msgid "Allow Pending Edits"
689
  msgstr ""
690
 
691
- #: includes/admin/class-wp-job-manager-settings.php:343
692
  msgid "Allow editing of pending listings"
693
  msgstr ""
694
 
695
- #: includes/admin/class-wp-job-manager-settings.php:344
696
  msgid "Users can continue to edit pending listings until they are approved by an admin."
697
  msgstr ""
698
 
699
- #: includes/admin/class-wp-job-manager-settings.php:351
700
  msgid "Allow Published Edits"
701
  msgstr ""
702
 
703
- #: includes/admin/class-wp-job-manager-settings.php:352
704
  msgid "Allow editing of published listings"
705
  msgstr ""
706
 
707
- #: includes/admin/class-wp-job-manager-settings.php:353
708
  msgid "Choose whether published job listings can be edited and if edits require admin approval. When moderation is required, the original job listings will be unpublished while edits await admin approval."
709
  msgstr ""
710
 
711
- #: includes/admin/class-wp-job-manager-settings.php:356
712
  msgid "Users cannot edit"
713
  msgstr ""
714
 
715
- #: includes/admin/class-wp-job-manager-settings.php:357
716
  msgid "Users can edit without admin approval"
717
  msgstr ""
718
 
719
- #: includes/admin/class-wp-job-manager-settings.php:358
720
  msgid "Users can edit, but edits require admin approval"
721
  msgstr ""
722
 
723
- #: includes/admin/class-wp-job-manager-settings.php:365
724
  msgid "Listing Duration"
725
  msgstr ""
726
 
727
- #: includes/admin/class-wp-job-manager-settings.php:366
728
  msgid "Listings will display for the set number of days, then expire. Leave this field blank if you don't want listings to have an expiration date."
729
  msgstr ""
730
 
731
- #: includes/admin/class-wp-job-manager-settings.php:372
732
  msgid "Listing Limit"
733
  msgstr ""
734
 
735
- #: includes/admin/class-wp-job-manager-settings.php:373
736
  msgid "How many listings are users allowed to post. Can be left blank to allow unlimited listings per account."
737
  msgstr ""
738
 
739
- #: includes/admin/class-wp-job-manager-settings.php:375
740
  msgid "No limit"
741
  msgstr ""
742
 
743
- #: includes/admin/class-wp-job-manager-settings.php:380
744
  msgid "Application Method"
745
  msgstr ""
746
 
747
- #: includes/admin/class-wp-job-manager-settings.php:381
748
  msgid "Choose the application method job listers will need to provide. Specify URL or email address only, or allow listers to choose which they prefer."
749
  msgstr ""
750
 
751
- #: includes/admin/class-wp-job-manager-settings.php:384
752
  msgid "Email address or website URL"
753
  msgstr ""
754
 
755
- #: includes/admin/class-wp-job-manager-settings.php:385
756
  msgid "Email addresses only"
757
  msgstr ""
758
 
759
- #: includes/admin/class-wp-job-manager-settings.php:386
760
  msgid "Website URLs only"
761
  msgstr ""
762
 
763
- #: includes/admin/class-wp-job-manager-settings.php:392
764
  msgid "Terms and Conditions Checkbox"
765
  msgstr ""
766
 
767
- #: includes/admin/class-wp-job-manager-settings.php:393
768
  msgid "Enable required Terms and Conditions checkbox on the form"
769
  msgstr ""
770
 
771
- #: includes/admin/class-wp-job-manager-settings.php:394
772
  msgid "Require a Terms and Conditions checkbox to be marked before a job can be submitted. The linked page can be set from the <a href=\"#settings-job_pages\" class=\"nav-internal\">Pages</a> settings tab."
773
  msgstr ""
774
 
775
- #: includes/admin/class-wp-job-manager-settings.php:401
776
  msgid "reCAPTCHA"
777
  msgstr ""
778
 
779
- #: includes/admin/class-wp-job-manager-settings.php:405
780
  msgid "Are you human?"
781
  msgstr ""
782
 
783
- #: includes/admin/class-wp-job-manager-settings.php:407
784
  msgid "Field Label"
785
  msgstr ""
786
 
787
- #: includes/admin/class-wp-job-manager-settings.php:408
788
  msgid "The label used for the reCAPTCHA field on forms."
789
  msgstr ""
790
 
791
- #: includes/admin/class-wp-job-manager-settings.php:415
792
  msgid "Site Key"
793
  msgstr ""
794
 
795
  #. translators: Placeholder %s is URL to set up Google reCAPTCHA API key.
796
- #: includes/admin/class-wp-job-manager-settings.php:417
797
  msgid "You can retrieve your reCAPTCHA v2 \"I'm not a robot\" Checkbox site key from <a href=\"%s\">Google's reCAPTCHA admin dashboard</a>."
798
  msgstr ""
799
 
800
- #: includes/admin/class-wp-job-manager-settings.php:424
801
  msgid "Secret Key"
802
  msgstr ""
803
 
804
  #. translators: Placeholder %s is URL to set up Google reCAPTCHA API key.
805
- #: includes/admin/class-wp-job-manager-settings.php:426
806
  msgid "You can retrieve your reCAPTCHA v2 \"I'm not a robot\" Checkbox secret key from <a href=\"%s\">Google's reCAPTCHA admin dashboard</a>."
807
  msgstr ""
808
 
809
- #: includes/admin/class-wp-job-manager-settings.php:432
810
  msgid "Job Submission Form"
811
  msgstr ""
812
 
813
- #: includes/admin/class-wp-job-manager-settings.php:433
814
  msgid "Display a reCAPTCHA field on job submission form."
815
  msgstr ""
816
 
817
- #: includes/admin/class-wp-job-manager-settings.php:434
818
  msgid "This will help prevent bots from submitting job listings. You must have entered a valid site key and secret key above."
819
  msgstr ""
820
 
821
- #: includes/admin/class-wp-job-manager-settings.php:441
822
  msgid "Pages"
823
  msgstr ""
824
 
825
- #: includes/admin/class-wp-job-manager-settings.php:446
826
  msgid "Submit Job Form Page"
827
  msgstr ""
828
 
829
- #: includes/admin/class-wp-job-manager-settings.php:447
830
  msgid "Select the page where you've used the [submit_job_form] shortcode. This lets the plugin know the location of the form."
831
  msgstr ""
832
 
833
- #: includes/admin/class-wp-job-manager-settings.php:453
834
  msgid "Job Dashboard Page"
835
  msgstr ""
836
 
837
- #: includes/admin/class-wp-job-manager-settings.php:454
838
  msgid "Select the page where you've used the [job_dashboard] shortcode. This lets the plugin know the location of the dashboard."
839
  msgstr ""
840
 
841
- #: includes/admin/class-wp-job-manager-settings.php:460
842
  msgid "Job Listings Page"
843
  msgstr ""
844
 
845
- #: includes/admin/class-wp-job-manager-settings.php:461
846
  msgid "Select the page where you've used the [jobs] shortcode. This lets the plugin know the location of the job listings page."
847
  msgstr ""
848
 
849
- #: includes/admin/class-wp-job-manager-settings.php:467
850
  msgid "Terms and Conditions Page"
851
  msgstr ""
852
 
853
- #: includes/admin/class-wp-job-manager-settings.php:468
854
  msgid "Select the page to link when \"Terms and Conditions Checkbox\" is enabled. See setting in \"Job Submission\" tab."
855
  msgstr ""
856
 
857
- #: includes/admin/class-wp-job-manager-settings.php:474
858
  msgid "Job Visibility"
859
  msgstr ""
860
 
861
- #: includes/admin/class-wp-job-manager-settings.php:479
862
  msgid "Browse Job Capability"
863
  msgstr ""
864
 
865
  #. translators: Placeholder %s is the url to the WordPress core documentation for capabilities and roles.
866
- #: includes/admin/class-wp-job-manager-settings.php:483
867
  msgid "Enter which <a href=\"%s\">roles or capabilities</a> allow visitors to browse job listings. If no value is selected, everyone (including logged out guests) will be able to browse job listings."
868
  msgstr ""
869
 
870
- #: includes/admin/class-wp-job-manager-settings.php:488
871
  msgid "View Job Capability"
872
  msgstr ""
873
 
874
  #. translators: Placeholder %s is the url to the WordPress core documentation for capabilities and roles.
875
- #: includes/admin/class-wp-job-manager-settings.php:492
876
  msgid "Enter which <a href=\"%s\">roles or capabilities</a> allow visitors to view a single job listing. If no value is selected, everyone (including logged out guests) will be able to view job listings."
877
  msgstr ""
878
 
879
- #: includes/admin/class-wp-job-manager-settings.php:543
880
  msgid "Settings successfully saved"
881
  msgstr ""
882
 
883
- #: includes/admin/class-wp-job-manager-settings.php:568
884
  msgid "Save Changes"
885
  msgstr ""
886
 
887
- #: includes/admin/class-wp-job-manager-settings.php:807
888
  msgid "--no page--"
889
  msgstr ""
890
 
891
- #: includes/admin/class-wp-job-manager-settings.php:813
892
  msgid "Select a page&hellip;"
893
  msgstr ""
894
 
895
- #: includes/admin/class-wp-job-manager-settings.php:1053
896
  msgid "Everyone (Public)"
897
  msgstr ""
898
 
@@ -937,7 +952,7 @@ msgstr ""
937
 
938
  #. translators: Used in user select. %1$s is the user's display name; #%2$s is the user ID; %3$s is the user email.
939
  #: includes/admin/class-wp-job-manager-writepanels.php:532
940
- #: includes/class-wp-job-manager-ajax.php:419
941
  msgid "%1$s (#%2$s – %3$s)"
942
  msgstr ""
943
 
@@ -1074,6 +1089,10 @@ msgstr ""
1074
  msgid "Creates a page where visitors can browse, search, and filter job listings."
1075
  msgstr ""
1076
 
 
 
 
 
1077
  #: includes/admin/views/html-admin-setup-step-2.php:72
1078
  msgid "Skip this step"
1079
  msgstr ""
@@ -1151,13 +1170,13 @@ msgid "Help other users on the forums"
1151
  msgstr ""
1152
 
1153
  #. translators: Placeholder %d is the number of found search results.
1154
- #: includes/class-wp-job-manager-ajax.php:186
1155
  msgid "Search completed. Found %d matching record."
1156
  msgid_plural "Search completed. Found %d matching records."
1157
  msgstr[0] ""
1158
  msgstr[1] ""
1159
 
1160
- #: includes/class-wp-job-manager-ajax.php:284
1161
  msgid "You must be logged in to upload files using this method."
1162
  msgstr ""
1163
 
@@ -1528,11 +1547,6 @@ msgstr ""
1528
  msgid "Listing Expiry Date"
1529
  msgstr ""
1530
 
1531
- #: includes/class-wp-job-manager-post-types.php:1591
1532
- #: includes/forms/class-wp-job-manager-form-submit-job.php:230
1533
- msgid "Remote Position"
1534
- msgstr ""
1535
-
1536
  #: includes/class-wp-job-manager-post-types.php:1592
1537
  #: includes/forms/class-wp-job-manager-form-submit-job.php:231
1538
  msgid "Select if this is a remote position."
@@ -1620,8 +1634,8 @@ msgstr ""
1620
  msgid "Continue Submission"
1621
  msgstr ""
1622
 
1623
- #: includes/class-wp-job-manager-shortcodes.php:682
1624
- #: includes/class-wp-job-manager-shortcodes.php:720
1625
  msgid "Load more listings"
1626
  msgstr ""
1627
 
@@ -1666,7 +1680,7 @@ msgstr ""
1666
 
1667
  #. translators: Placeholder %d is the number of files to that users are limited to.
1668
  #: includes/class-wp-job-manager.php:523
1669
- #: includes/forms/class-wp-job-manager-form-submit-job.php:502
1670
  msgid "You are only allowed to upload a maximum of %d files."
1671
  msgstr ""
1672
 
@@ -1762,7 +1776,7 @@ msgid "Submit Details"
1762
  msgstr ""
1763
 
1764
  #: includes/forms/class-wp-job-manager-form-submit-job.php:93
1765
- #: includes/forms/class-wp-job-manager-form-submit-job.php:692
1766
  #: templates/job-preview.php:30
1767
  msgid "Preview"
1768
  msgstr ""
@@ -1829,73 +1843,73 @@ msgid "Logo"
1829
  msgstr ""
1830
 
1831
  #. translators: Placeholder %s is the label for the required field.
1832
- #: includes/forms/class-wp-job-manager-form-submit-job.php:423
1833
  msgid "%s is a required field"
1834
  msgstr ""
1835
 
1836
  #. translators: Placeholder %s is the field label that is did not validate.
1837
- #: includes/forms/class-wp-job-manager-form-submit-job.php:434
1838
  msgid "%s is invalid"
1839
  msgstr ""
1840
 
1841
- #: includes/forms/class-wp-job-manager-form-submit-job.php:464
1842
  msgid "Invalid image path."
1843
  msgstr ""
1844
 
1845
  #. translators: Placeholder %1$s is field label; %2$s is the file mime type; %3$s is the allowed mime-types.
1846
  #. translators: %1$s is the file field label; %2$s is the file type; %3$s is the list of allowed file types.
1847
- #: includes/forms/class-wp-job-manager-form-submit-job.php:475
1848
  #: wp-job-manager-functions.php:1393
1849
  msgid "\"%1$s\" (filetype %2$s) needs to be one of the following file types: %3$s"
1850
  msgstr ""
1851
 
1852
- #: includes/forms/class-wp-job-manager-form-submit-job.php:485
1853
  msgid "Invalid attachment provided."
1854
  msgstr ""
1855
 
1856
- #: includes/forms/class-wp-job-manager-form-submit-job.php:529
1857
  msgid "Please enter a valid application email address"
1858
  msgstr ""
1859
 
1860
- #: includes/forms/class-wp-job-manager-form-submit-job.php:534
1861
  msgid "Please enter a valid application URL"
1862
  msgstr ""
1863
 
1864
- #: includes/forms/class-wp-job-manager-form-submit-job.php:540
1865
  msgid "Please enter a valid application email address or URL"
1866
  msgstr ""
1867
 
1868
- #: includes/forms/class-wp-job-manager-form-submit-job.php:751
1869
  msgid "Please enter a username."
1870
  msgstr ""
1871
 
1872
- #: includes/forms/class-wp-job-manager-form-submit-job.php:755
1873
  msgid "Please enter a password."
1874
  msgstr ""
1875
 
1876
- #: includes/forms/class-wp-job-manager-form-submit-job.php:759
1877
  msgid "Please enter your email address."
1878
  msgstr ""
1879
 
1880
- #: includes/forms/class-wp-job-manager-form-submit-job.php:765
1881
  msgid "Passwords must match."
1882
  msgstr ""
1883
 
1884
  #. translators: Placeholder %s is the password hint.
1885
- #: includes/forms/class-wp-job-manager-form-submit-job.php:771
1886
  msgid "Invalid Password: %s"
1887
  msgstr ""
1888
 
1889
- #: includes/forms/class-wp-job-manager-form-submit-job.php:773
1890
  msgid "Password is not valid."
1891
  msgstr ""
1892
 
1893
- #: includes/forms/class-wp-job-manager-form-submit-job.php:805
1894
  msgid "You must be signed in to post a new listing."
1895
  msgstr ""
1896
 
1897
  #. translators: placeholder is the URL to the job dashboard page.
1898
- #: includes/forms/class-wp-job-manager-form-submit-job.php:831
1899
  msgid "Draft was saved. Job listing drafts can be resumed from the <a href=\"%s\">job dashboard</a>."
1900
  msgstr ""
1901
 
@@ -1992,7 +2006,7 @@ msgid "Display a list of featured listings on your site."
1992
  msgstr ""
1993
 
1994
  #: includes/widgets/class-wp-job-manager-widget-featured-jobs.php:44
1995
- #: includes/widgets/class-wp-job-manager-widget-recent-jobs.php:54
1996
  msgid "Number of listings to show"
1997
  msgstr ""
1998
 
@@ -2025,7 +2039,7 @@ msgid "Descending"
2025
  msgstr ""
2026
 
2027
  #: includes/widgets/class-wp-job-manager-widget-featured-jobs.php:69
2028
- #: includes/widgets/class-wp-job-manager-widget-recent-jobs.php:59
2029
  msgid "Show Company Logo"
2030
  msgstr ""
2031
 
@@ -2043,6 +2057,22 @@ msgstr ""
2043
  msgid "Keyword"
2044
  msgstr ""
2045
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2046
  #: templates/access-denied-browse-job_listings.php:19
2047
  msgid "Sorry, you do not have permission to browse job listings."
2048
  msgstr ""
@@ -2278,19 +2308,23 @@ msgstr ""
2278
  msgid "Keywords"
2279
  msgstr ""
2280
 
2281
- #: templates/job-filters.php:47
 
 
 
 
2282
  msgid "Category"
2283
  msgstr ""
2284
 
2285
- #: templates/job-filters.php:51
2286
  msgid "Any category"
2287
  msgstr ""
2288
 
2289
- #: templates/job-filters.php:68
2290
  msgid "Search Jobs"
2291
  msgstr ""
2292
 
2293
- #: templates/job-filters.php:80
2294
  msgid "Your browser does not support JavaScript, or it is disabled. JavaScript must be enabled in order to view listings."
2295
  msgstr ""
2296
 
@@ -2337,11 +2371,6 @@ msgstr ""
2337
  msgid " <a href=\"%s\"> %s</a>"
2338
  msgstr ""
2339
 
2340
- #. translators: This one is used to determine if the user is searching for remote work type.
2341
- #: wp-job-manager-functions.php:78
2342
- msgid "remote"
2343
- msgstr ""
2344
-
2345
  #: wp-job-manager-functions.php:359
2346
  msgctxt "post status"
2347
  msgid "Draft"
1
  # Copyright (C) 2022 Automattic
2
+ # This file is distributed under the GPL2+.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: WP Job Manager 1.38.0\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wp-job-manager/\n"
7
  "Last-Translator: \n"
8
  "Language-Team: \n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
+ "POT-Creation-Date: 2022-08-26T17:27:21+00:00\n"
13
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
14
+ "X-Generator: WP-CLI 2.6.0\n"
15
  "X-Domain: wp-job-manager\n"
16
 
17
  #. Plugin Name of the plugin
251
  #: includes/widgets/class-wp-job-manager-widget-recent-jobs.php:46
252
  #: templates/job-filters.php:35
253
  #: templates/job-filters.php:36
254
+ #: templates/job-filters.php:41
255
  msgid "Location"
256
  msgstr ""
257
 
533
  msgstr ""
534
 
535
  #: includes/admin/class-wp-job-manager-settings.php:229
536
+ #: includes/class-wp-job-manager-post-types.php:1591
537
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:230
538
+ msgid "Remote Position"
539
+ msgstr ""
540
+
541
+ #: includes/admin/class-wp-job-manager-settings.php:230
542
+ msgid "Enable Remote Position"
543
+ msgstr ""
544
+
545
+ #: includes/admin/class-wp-job-manager-settings.php:231
546
+ msgid "This lets users select if the listing is a remote position when submitting a job."
547
+ msgstr ""
548
+
549
+ #: includes/admin/class-wp-job-manager-settings.php:238
550
  #: includes/class-wp-job-manager-post-types.php:1600
551
  #: includes/forms/class-wp-job-manager-form-submit-job.php:269
552
  msgid "Salary"
553
  msgstr ""
554
 
555
+ #: includes/admin/class-wp-job-manager-settings.php:239
556
  msgid "Enable Job Salary"
557
  msgstr ""
558
 
559
+ #: includes/admin/class-wp-job-manager-settings.php:240
560
  msgid "This lets users add a salary when submitting a job."
561
  msgstr ""
562
 
563
+ #: includes/admin/class-wp-job-manager-settings.php:247
564
  #: includes/class-wp-job-manager-post-types.php:1610
565
  #: includes/forms/class-wp-job-manager-form-submit-job.php:276
566
  msgid "Salary Currency"
567
  msgstr ""
568
 
569
+ #: includes/admin/class-wp-job-manager-settings.php:248
570
  msgid "Enable Job Salary Currency Customization"
571
  msgstr ""
572
 
573
+ #: includes/admin/class-wp-job-manager-settings.php:249
574
+ #: includes/admin/class-wp-job-manager-settings.php:268
575
  msgid "This lets users add a salary currency when submitting a job."
576
  msgstr ""
577
 
578
+ #: includes/admin/class-wp-job-manager-settings.php:256
579
  msgid "Default Salary Currency"
580
  msgstr ""
581
 
582
+ #: includes/admin/class-wp-job-manager-settings.php:257
583
  msgid "Default Currency used by salaries"
584
  msgstr ""
585
 
586
+ #: includes/admin/class-wp-job-manager-settings.php:258
587
  msgid "Sets the default currency used by salaries"
588
  msgstr ""
589
 
590
+ #: includes/admin/class-wp-job-manager-settings.php:260
591
  #: includes/class-wp-job-manager-post-types.php:1613
592
  #: includes/forms/class-wp-job-manager-form-submit-job.php:279
593
  msgid "e.g. USD"
594
  msgstr ""
595
 
596
+ #: includes/admin/class-wp-job-manager-settings.php:266
597
  #: includes/class-wp-job-manager-post-types.php:1621
598
  #: includes/forms/class-wp-job-manager-form-submit-job.php:284
599
  msgid "Salary Unit"
600
  msgstr ""
601
 
602
+ #: includes/admin/class-wp-job-manager-settings.php:267
603
  msgid "Enable Job Salary Unit Customization"
604
  msgstr ""
605
 
606
+ #: includes/admin/class-wp-job-manager-settings.php:275
607
  msgid "Default Salary Unit"
608
  msgstr ""
609
 
610
+ #: includes/admin/class-wp-job-manager-settings.php:276
611
  msgid "Default Unit used by salaries"
612
  msgstr ""
613
 
614
+ #: includes/admin/class-wp-job-manager-settings.php:277
615
  msgid "Sets the default period unit used by salaries"
616
  msgstr ""
617
 
618
+ #: includes/admin/class-wp-job-manager-settings.php:285
619
  msgid "Location Display"
620
  msgstr ""
621
 
622
+ #: includes/admin/class-wp-job-manager-settings.php:286
623
  msgid "Display Location Address"
624
  msgstr ""
625
 
626
+ #: includes/admin/class-wp-job-manager-settings.php:287
627
  msgid "Display the full address of the job listing location if it is detected by Google Maps Geocoding API. If full address is not available then it will display whatever text the user submitted for the location."
628
  msgstr ""
629
 
630
+ #: includes/admin/class-wp-job-manager-settings.php:293
631
  msgid "Job Submission"
632
  msgstr ""
633
 
634
+ #: includes/admin/class-wp-job-manager-settings.php:298
635
  msgid "Account Required"
636
  msgstr ""
637
 
638
+ #: includes/admin/class-wp-job-manager-settings.php:299
639
  msgid "Require an account to submit listings"
640
  msgstr ""
641
 
642
+ #: includes/admin/class-wp-job-manager-settings.php:300
643
  msgid "Limits job listing submissions to registered, logged-in users."
644
  msgstr ""
645
 
646
+ #: includes/admin/class-wp-job-manager-settings.php:307
647
  msgid "Account Creation"
648
  msgstr ""
649
 
650
+ #: includes/admin/class-wp-job-manager-settings.php:308
651
  msgid "Enable account creation during submission"
652
  msgstr ""
653
 
654
+ #: includes/admin/class-wp-job-manager-settings.php:309
655
  msgid "Includes account creation on the listing submission form, to allow non-registered users to create an account and submit a job listing simultaneously."
656
  msgstr ""
657
 
658
+ #: includes/admin/class-wp-job-manager-settings.php:316
659
  msgid "Account Username"
660
  msgstr ""
661
 
662
+ #: includes/admin/class-wp-job-manager-settings.php:317
663
  msgid "Generate usernames from email addresses"
664
  msgstr ""
665
 
666
+ #: includes/admin/class-wp-job-manager-settings.php:318
667
  msgid "Automatically generates usernames for new accounts from the registrant's email address. If this is not enabled, a \"username\" field will display instead."
668
  msgstr ""
669
 
670
+ #: includes/admin/class-wp-job-manager-settings.php:325
671
  msgid "Account Password"
672
  msgstr ""
673
 
674
+ #: includes/admin/class-wp-job-manager-settings.php:326
675
  msgid "Email new users a link to set a password"
676
  msgstr ""
677
 
678
+ #: includes/admin/class-wp-job-manager-settings.php:327
679
  msgid "Sends an email to the user with their username and a link to set their password. If this is not enabled, a \"password\" field will display instead, and their email address won't be verified."
680
  msgstr ""
681
 
682
+ #: includes/admin/class-wp-job-manager-settings.php:334
683
  msgid "Account Role"
684
  msgstr ""
685
 
686
+ #: includes/admin/class-wp-job-manager-settings.php:335
687
  msgid "Any new accounts created during submission will have this role. If you haven't enabled account creation during submission in the options above, your own method of assigning roles will apply."
688
  msgstr ""
689
 
690
+ #: includes/admin/class-wp-job-manager-settings.php:342
691
  msgid "Moderate New Listings"
692
  msgstr ""
693
 
694
+ #: includes/admin/class-wp-job-manager-settings.php:343
695
  msgid "Require admin approval of all new listing submissions"
696
  msgstr ""
697
 
698
+ #: includes/admin/class-wp-job-manager-settings.php:344
699
  msgid "Sets all new submissions to \"pending.\" They will not appear on your site until an admin approves them."
700
  msgstr ""
701
 
702
+ #: includes/admin/class-wp-job-manager-settings.php:351
703
  msgid "Allow Pending Edits"
704
  msgstr ""
705
 
706
+ #: includes/admin/class-wp-job-manager-settings.php:352
707
  msgid "Allow editing of pending listings"
708
  msgstr ""
709
 
710
+ #: includes/admin/class-wp-job-manager-settings.php:353
711
  msgid "Users can continue to edit pending listings until they are approved by an admin."
712
  msgstr ""
713
 
714
+ #: includes/admin/class-wp-job-manager-settings.php:360
715
  msgid "Allow Published Edits"
716
  msgstr ""
717
 
718
+ #: includes/admin/class-wp-job-manager-settings.php:361
719
  msgid "Allow editing of published listings"
720
  msgstr ""
721
 
722
+ #: includes/admin/class-wp-job-manager-settings.php:362
723
  msgid "Choose whether published job listings can be edited and if edits require admin approval. When moderation is required, the original job listings will be unpublished while edits await admin approval."
724
  msgstr ""
725
 
726
+ #: includes/admin/class-wp-job-manager-settings.php:365
727
  msgid "Users cannot edit"
728
  msgstr ""
729
 
730
+ #: includes/admin/class-wp-job-manager-settings.php:366
731
  msgid "Users can edit without admin approval"
732
  msgstr ""
733
 
734
+ #: includes/admin/class-wp-job-manager-settings.php:367
735
  msgid "Users can edit, but edits require admin approval"
736
  msgstr ""
737
 
738
+ #: includes/admin/class-wp-job-manager-settings.php:374
739
  msgid "Listing Duration"
740
  msgstr ""
741
 
742
+ #: includes/admin/class-wp-job-manager-settings.php:375
743
  msgid "Listings will display for the set number of days, then expire. Leave this field blank if you don't want listings to have an expiration date."
744
  msgstr ""
745
 
746
+ #: includes/admin/class-wp-job-manager-settings.php:381
747
  msgid "Listing Limit"
748
  msgstr ""
749
 
750
+ #: includes/admin/class-wp-job-manager-settings.php:382
751
  msgid "How many listings are users allowed to post. Can be left blank to allow unlimited listings per account."
752
  msgstr ""
753
 
754
+ #: includes/admin/class-wp-job-manager-settings.php:384
755
  msgid "No limit"
756
  msgstr ""
757
 
758
+ #: includes/admin/class-wp-job-manager-settings.php:389
759
  msgid "Application Method"
760
  msgstr ""
761
 
762
+ #: includes/admin/class-wp-job-manager-settings.php:390
763
  msgid "Choose the application method job listers will need to provide. Specify URL or email address only, or allow listers to choose which they prefer."
764
  msgstr ""
765
 
766
+ #: includes/admin/class-wp-job-manager-settings.php:393
767
  msgid "Email address or website URL"
768
  msgstr ""
769
 
770
+ #: includes/admin/class-wp-job-manager-settings.php:394
771
  msgid "Email addresses only"
772
  msgstr ""
773
 
774
+ #: includes/admin/class-wp-job-manager-settings.php:395
775
  msgid "Website URLs only"
776
  msgstr ""
777
 
778
+ #: includes/admin/class-wp-job-manager-settings.php:401
779
  msgid "Terms and Conditions Checkbox"
780
  msgstr ""
781
 
782
+ #: includes/admin/class-wp-job-manager-settings.php:402
783
  msgid "Enable required Terms and Conditions checkbox on the form"
784
  msgstr ""
785
 
786
+ #: includes/admin/class-wp-job-manager-settings.php:403
787
  msgid "Require a Terms and Conditions checkbox to be marked before a job can be submitted. The linked page can be set from the <a href=\"#settings-job_pages\" class=\"nav-internal\">Pages</a> settings tab."
788
  msgstr ""
789
 
790
+ #: includes/admin/class-wp-job-manager-settings.php:410
791
  msgid "reCAPTCHA"
792
  msgstr ""
793
 
794
+ #: includes/admin/class-wp-job-manager-settings.php:414
795
  msgid "Are you human?"
796
  msgstr ""
797
 
798
+ #: includes/admin/class-wp-job-manager-settings.php:416
799
  msgid "Field Label"
800
  msgstr ""
801
 
802
+ #: includes/admin/class-wp-job-manager-settings.php:417
803
  msgid "The label used for the reCAPTCHA field on forms."
804
  msgstr ""
805
 
806
+ #: includes/admin/class-wp-job-manager-settings.php:424
807
  msgid "Site Key"
808
  msgstr ""
809
 
810
  #. translators: Placeholder %s is URL to set up Google reCAPTCHA API key.
811
+ #: includes/admin/class-wp-job-manager-settings.php:426
812
  msgid "You can retrieve your reCAPTCHA v2 \"I'm not a robot\" Checkbox site key from <a href=\"%s\">Google's reCAPTCHA admin dashboard</a>."
813
  msgstr ""
814
 
815
+ #: includes/admin/class-wp-job-manager-settings.php:433
816
  msgid "Secret Key"
817
  msgstr ""
818
 
819
  #. translators: Placeholder %s is URL to set up Google reCAPTCHA API key.
820
+ #: includes/admin/class-wp-job-manager-settings.php:435
821
  msgid "You can retrieve your reCAPTCHA v2 \"I'm not a robot\" Checkbox secret key from <a href=\"%s\">Google's reCAPTCHA admin dashboard</a>."
822
  msgstr ""
823
 
824
+ #: includes/admin/class-wp-job-manager-settings.php:441
825
  msgid "Job Submission Form"
826
  msgstr ""
827
 
828
+ #: includes/admin/class-wp-job-manager-settings.php:442
829
  msgid "Display a reCAPTCHA field on job submission form."
830
  msgstr ""
831
 
832
+ #: includes/admin/class-wp-job-manager-settings.php:443
833
  msgid "This will help prevent bots from submitting job listings. You must have entered a valid site key and secret key above."
834
  msgstr ""
835
 
836
+ #: includes/admin/class-wp-job-manager-settings.php:450
837
  msgid "Pages"
838
  msgstr ""
839
 
840
+ #: includes/admin/class-wp-job-manager-settings.php:455
841
  msgid "Submit Job Form Page"
842
  msgstr ""
843
 
844
+ #: includes/admin/class-wp-job-manager-settings.php:456
845
  msgid "Select the page where you've used the [submit_job_form] shortcode. This lets the plugin know the location of the form."
846
  msgstr ""
847
 
848
+ #: includes/admin/class-wp-job-manager-settings.php:462
849
  msgid "Job Dashboard Page"
850
  msgstr ""
851
 
852
+ #: includes/admin/class-wp-job-manager-settings.php:463
853
  msgid "Select the page where you've used the [job_dashboard] shortcode. This lets the plugin know the location of the dashboard."
854
  msgstr ""
855
 
856
+ #: includes/admin/class-wp-job-manager-settings.php:469
857
  msgid "Job Listings Page"
858
  msgstr ""
859
 
860
+ #: includes/admin/class-wp-job-manager-settings.php:470
861
  msgid "Select the page where you've used the [jobs] shortcode. This lets the plugin know the location of the job listings page."
862
  msgstr ""
863
 
864
+ #: includes/admin/class-wp-job-manager-settings.php:476
865
  msgid "Terms and Conditions Page"
866
  msgstr ""
867
 
868
+ #: includes/admin/class-wp-job-manager-settings.php:477
869
  msgid "Select the page to link when \"Terms and Conditions Checkbox\" is enabled. See setting in \"Job Submission\" tab."
870
  msgstr ""
871
 
872
+ #: includes/admin/class-wp-job-manager-settings.php:483
873
  msgid "Job Visibility"
874
  msgstr ""
875
 
876
+ #: includes/admin/class-wp-job-manager-settings.php:488
877
  msgid "Browse Job Capability"
878
  msgstr ""
879
 
880
  #. translators: Placeholder %s is the url to the WordPress core documentation for capabilities and roles.
881
+ #: includes/admin/class-wp-job-manager-settings.php:492
882
  msgid "Enter which <a href=\"%s\">roles or capabilities</a> allow visitors to browse job listings. If no value is selected, everyone (including logged out guests) will be able to browse job listings."
883
  msgstr ""
884
 
885
+ #: includes/admin/class-wp-job-manager-settings.php:497
886
  msgid "View Job Capability"
887
  msgstr ""
888
 
889
  #. translators: Placeholder %s is the url to the WordPress core documentation for capabilities and roles.
890
+ #: includes/admin/class-wp-job-manager-settings.php:501
891
  msgid "Enter which <a href=\"%s\">roles or capabilities</a> allow visitors to view a single job listing. If no value is selected, everyone (including logged out guests) will be able to view job listings."
892
  msgstr ""
893
 
894
+ #: includes/admin/class-wp-job-manager-settings.php:552
895
  msgid "Settings successfully saved"
896
  msgstr ""
897
 
898
+ #: includes/admin/class-wp-job-manager-settings.php:577
899
  msgid "Save Changes"
900
  msgstr ""
901
 
902
+ #: includes/admin/class-wp-job-manager-settings.php:816
903
  msgid "--no page--"
904
  msgstr ""
905
 
906
+ #: includes/admin/class-wp-job-manager-settings.php:822
907
  msgid "Select a page&hellip;"
908
  msgstr ""
909
 
910
+ #: includes/admin/class-wp-job-manager-settings.php:1062
911
  msgid "Everyone (Public)"
912
  msgstr ""
913
 
952
 
953
  #. translators: Used in user select. %1$s is the user's display name; #%2$s is the user ID; %3$s is the user email.
954
  #: includes/admin/class-wp-job-manager-writepanels.php:532
955
+ #: includes/class-wp-job-manager-ajax.php:424
956
  msgid "%1$s (#%2$s – %3$s)"
957
  msgstr ""
958
 
1089
  msgid "Creates a page where visitors can browse, search, and filter job listings."
1090
  msgstr ""
1091
 
1092
+ #: includes/admin/views/html-admin-setup-step-2.php:71
1093
+ msgid "Create selected pages"
1094
+ msgstr ""
1095
+
1096
  #: includes/admin/views/html-admin-setup-step-2.php:72
1097
  msgid "Skip this step"
1098
  msgstr ""
1170
  msgstr ""
1171
 
1172
  #. translators: Placeholder %d is the number of found search results.
1173
+ #: includes/class-wp-job-manager-ajax.php:191
1174
  msgid "Search completed. Found %d matching record."
1175
  msgid_plural "Search completed. Found %d matching records."
1176
  msgstr[0] ""
1177
  msgstr[1] ""
1178
 
1179
+ #: includes/class-wp-job-manager-ajax.php:289
1180
  msgid "You must be logged in to upload files using this method."
1181
  msgstr ""
1182
 
1547
  msgid "Listing Expiry Date"
1548
  msgstr ""
1549
 
 
 
 
 
 
1550
  #: includes/class-wp-job-manager-post-types.php:1592
1551
  #: includes/forms/class-wp-job-manager-form-submit-job.php:231
1552
  msgid "Select if this is a remote position."
1634
  msgid "Continue Submission"
1635
  msgstr ""
1636
 
1637
+ #: includes/class-wp-job-manager-shortcodes.php:688
1638
+ #: includes/class-wp-job-manager-shortcodes.php:727
1639
  msgid "Load more listings"
1640
  msgstr ""
1641
 
1680
 
1681
  #. translators: Placeholder %d is the number of files to that users are limited to.
1682
  #: includes/class-wp-job-manager.php:523
1683
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:504
1684
  msgid "You are only allowed to upload a maximum of %d files."
1685
  msgstr ""
1686
 
1776
  msgstr ""
1777
 
1778
  #: includes/forms/class-wp-job-manager-form-submit-job.php:93
1779
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:667
1780
  #: templates/job-preview.php:30
1781
  msgid "Preview"
1782
  msgstr ""
1843
  msgstr ""
1844
 
1845
  #. translators: Placeholder %s is the label for the required field.
1846
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:425
1847
  msgid "%s is a required field"
1848
  msgstr ""
1849
 
1850
  #. translators: Placeholder %s is the field label that is did not validate.
1851
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:436
1852
  msgid "%s is invalid"
1853
  msgstr ""
1854
 
1855
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:466
1856
  msgid "Invalid image path."
1857
  msgstr ""
1858
 
1859
  #. translators: Placeholder %1$s is field label; %2$s is the file mime type; %3$s is the allowed mime-types.
1860
  #. translators: %1$s is the file field label; %2$s is the file type; %3$s is the list of allowed file types.
1861
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:477
1862
  #: wp-job-manager-functions.php:1393
1863
  msgid "\"%1$s\" (filetype %2$s) needs to be one of the following file types: %3$s"
1864
  msgstr ""
1865
 
1866
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:487
1867
  msgid "Invalid attachment provided."
1868
  msgstr ""
1869
 
1870
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:531
1871
  msgid "Please enter a valid application email address"
1872
  msgstr ""
1873
 
1874
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:536
1875
  msgid "Please enter a valid application URL"
1876
  msgstr ""
1877
 
1878
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:542
1879
  msgid "Please enter a valid application email address or URL"
1880
  msgstr ""
1881
 
1882
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:726
1883
  msgid "Please enter a username."
1884
  msgstr ""
1885
 
1886
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:730
1887
  msgid "Please enter a password."
1888
  msgstr ""
1889
 
1890
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:734
1891
  msgid "Please enter your email address."
1892
  msgstr ""
1893
 
1894
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:740
1895
  msgid "Passwords must match."
1896
  msgstr ""
1897
 
1898
  #. translators: Placeholder %s is the password hint.
1899
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:746
1900
  msgid "Invalid Password: %s"
1901
  msgstr ""
1902
 
1903
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:748
1904
  msgid "Password is not valid."
1905
  msgstr ""
1906
 
1907
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:780
1908
  msgid "You must be signed in to post a new listing."
1909
  msgstr ""
1910
 
1911
  #. translators: placeholder is the URL to the job dashboard page.
1912
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:806
1913
  msgid "Draft was saved. Job listing drafts can be resumed from the <a href=\"%s\">job dashboard</a>."
1914
  msgstr ""
1915
 
2006
  msgstr ""
2007
 
2008
  #: includes/widgets/class-wp-job-manager-widget-featured-jobs.php:44
2009
+ #: includes/widgets/class-wp-job-manager-widget-recent-jobs.php:64
2010
  msgid "Number of listings to show"
2011
  msgstr ""
2012
 
2039
  msgstr ""
2040
 
2041
  #: includes/widgets/class-wp-job-manager-widget-featured-jobs.php:69
2042
+ #: includes/widgets/class-wp-job-manager-widget-recent-jobs.php:69
2043
  msgid "Show Company Logo"
2044
  msgstr ""
2045
 
2057
  msgid "Keyword"
2058
  msgstr ""
2059
 
2060
+ #: includes/widgets/class-wp-job-manager-widget-recent-jobs.php:51
2061
+ msgid "Remote Positions"
2062
+ msgstr ""
2063
+
2064
+ #: includes/widgets/class-wp-job-manager-widget-recent-jobs.php:53
2065
+ msgid "Show all"
2066
+ msgstr ""
2067
+
2068
+ #: includes/widgets/class-wp-job-manager-widget-recent-jobs.php:54
2069
+ msgid "Show only remote positions"
2070
+ msgstr ""
2071
+
2072
+ #: includes/widgets/class-wp-job-manager-widget-recent-jobs.php:55
2073
+ msgid "Show only non-remote positions"
2074
+ msgstr ""
2075
+
2076
  #: templates/access-denied-browse-job_listings.php:19
2077
  msgid "Sorry, you do not have permission to browse job listings."
2078
  msgstr ""
2308
  msgid "Keywords"
2309
  msgstr ""
2310
 
2311
+ #: templates/job-filters.php:42
2312
+ msgid "Remote positions only"
2313
+ msgstr ""
2314
+
2315
+ #: templates/job-filters.php:54
2316
  msgid "Category"
2317
  msgstr ""
2318
 
2319
+ #: templates/job-filters.php:58
2320
  msgid "Any category"
2321
  msgstr ""
2322
 
2323
+ #: templates/job-filters.php:75
2324
  msgid "Search Jobs"
2325
  msgstr ""
2326
 
2327
+ #: templates/job-filters.php:87
2328
  msgid "Your browser does not support JavaScript, or it is disabled. JavaScript must be enabled in order to view listings."
2329
  msgstr ""
2330
 
2371
  msgid " <a href=\"%s\"> %s</a>"
2372
  msgstr ""
2373
 
 
 
 
 
 
2374
  #: wp-job-manager-functions.php:359
2375
  msgctxt "post status"
2376
  msgid "Draft"
readme.txt CHANGED
@@ -1,10 +1,10 @@
1
  === WP Job Manager ===
2
  Contributors: mikejolley, automattic, adamkheckler, alexsanford1, annezazu, cena, chaselivingston, csonnek, davor.altman, donnapep, donncha, drawmyface, erania-pinnera, fjorgemota, jacobshere, jakeom, jeherve, jenhooks, jgs, jonryan, kraftbj, lamdayap, lschuyler, macmanx, nancythanki, orangesareorange, rachelsquirrel, renathoc, 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: 5.7
5
  Tested up to: 6.0
6
- Requires PHP: 7.0
7
- Stable tag: 1.37.0
8
  License: GPLv3
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
@@ -139,7 +139,7 @@ Developers who would like to run the existing tests or add their tests to the te
139
  2. Run the install script(you will need to have `wget` installed) - `bash tests/bin/install-wp-tests.sh <db-name> <db-user> <db-pass> <db-host> <wp-version>`.
140
  3. Run the plugin tests - `phpunit`
141
 
142
- The install script installs a copy of WordPress in the `/tmp` directory along with the WordPress unit testing tools.
143
  It then creates a database based on the parameters passed to it.
144
 
145
  == Screenshots ==
@@ -153,6 +153,14 @@ It then creates a database based on the parameters passed to it.
153
 
154
  == Changelog ==
155
 
 
 
 
 
 
 
 
 
156
  = 1.37.0 =
157
  * Enhancement: Job Visibility Settings
158
  * Enhancement: New settings for Salary fields
@@ -211,7 +219,7 @@ It then creates a database based on the parameters passed to it.
211
  * Fix: Missing variable error with cached widgets.
212
  * Tweak: reCAPTCHA setting has more clear language. (@tripflex)
213
  * Dev: Added filter `submit_job_form_create_account_role` for user role when created on job submission. (@tripflex)
214
- * Dev: Added filter `job_manager_should_run_shortcode_action_handler` for if a job dashboard action should run.
215
  * Dev: Added filter `job_manager_get_form_action` to modify the action of a frontend form. (@tripflex)
216
 
217
  = 1.34.5 =
@@ -253,7 +261,7 @@ It then creates a database based on the parameters passed to it.
253
  * Fix: Resuming job listing submission at a particular step is now fixed.
254
  * Fix: Issue with some permalink structures and WPMU would cause issues on `[jobs]` page.
255
  * Dev: Adds the ability to block some jobs from being edited in the frontend.
256
- * Dev: Adds ability to force some email notifications to be enabled.
257
  * Dev: Allows email notifications to be sent immediately.
258
  * Dev: Adds ability for settings to reference other settings tabs.
259
  * 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.
@@ -277,7 +285,7 @@ It then creates a database based on the parameters passed to it.
277
  * Third Party: Fix issue with Polylang where translations get overwritten on save of another language.
278
  * Dev: Adds the ability to completely disable the state saving functionality of `[jobs]` results.
279
  * Dev: Allows custom calls to `get_job_listings()` to just get `ids` and `id=>parent`. (@manzoorwanijk)
280
- * Dev: Switched to short-array syntax across plugin.
281
  * Dev: Updated `jquery-fileupload` library to 10.2.0.
282
  * Dev: Updated `select2` library to 4.0.10.
283
 
@@ -290,7 +298,7 @@ It then creates a database based on the parameters passed to it.
290
  * Fix: Checking typeof undefined should be in quotes in job_submission.js.
291
  * Fix: Plugin activation issue that didn't set up roles correctly.
292
  * Fix: Escaped HTML issue in expiring jobs email notice.
293
- * Change: Added additional unslashing and sanitization of input variables from forms.
294
  * Change: Limited direct database access within the plugin and migrated to WordPress core functions when possible.
295
  * Removed: Transient garbage collection. WordPress 4.9 and up handle this automatically.
296
 
@@ -346,7 +354,7 @@ It then creates a database based on the parameters passed to it.
346
  = 1.32.0 =
347
  * Enhancement: Switched from Chosen to Select2 for enhanced dropdown handling and better mobile support. May require theme update.
348
  * Enhancement: Draft and unsubmitted job listings now appear in `[job_dashboard]`, allowing users to complete their submission.
349
- * Enhancement: [REVERTED IN 1.32.1] Filled and expired positions are now hidden from WordPress search. (@felipeelia)
350
  * Enhancement: Adds additional support for the new block editor. Restricted to classic block for compatibility with frontend editor.
351
  * Enhancement: Job types can be preselected in `[jobs]` shortcode with `?search_job_type=term-slug`. (@felipeelia)
352
  * Enhancement: Author selection in WP admin now uses a searchable dropdown.
@@ -366,7 +374,7 @@ It then creates a database based on the parameters passed to it.
366
  * Fix: Escape the attachment URL. (Props to karimeo)
367
  * Fix: Custom job field priority fix when using decimals. (@tripflex)
368
  * Fix: Fix issue with empty mutli-select in WP admin jobs page. (@felipeelia)
369
- * Fix: Issue with data export when email doesn't have any job listings.
370
  * Third Party: Improved WPML support. (@vukvukovich)
371
 
372
  = 1.31.2 =
@@ -381,7 +389,7 @@ It then creates a database based on the parameters passed to it.
381
  * Fix: No longer auto-expire job listings in Draft status.
382
  * Fix: Issue with undefined index error in WP admin. (@albionselimaj)
383
  * Fix: Issue with duplicate usernames preventing submission of job listings. (@timothyjensen)
384
- * Dev: Widespread code formatting cleanup throughout the plugin.
385
 
386
  = 1.31.0 =
387
  * Change: Minimum WordPress version is now 4.7.0.
@@ -389,7 +397,7 @@ It then creates a database based on the parameters passed to it.
389
  * Enhancement: For GDPR, scrub WPJM data from database on uninstall if option is enabled.
390
  * Enhancement: Filter by Filled and Featured status in WP admin.
391
  * Enhancement: Simplify the display of application URLs.
392
- * Enhancement: When using WPML, prevent changes to page options when on a non-default language. (@vukvukovich)
393
  * Enhancement: Include company logo in structured data. (@RajeebTheGreat)
394
  * Enhancement: Use more efficient jQuery selectors in scripts. (@RajeebTheGreat)
395
  * Enhancement: Use proper `<h2>` tag in `content-summary-job_listing.php` template for the job title. (@abdullah1908)
@@ -404,7 +412,7 @@ It then creates a database based on the parameters passed to it.
404
 
405
  = 1.30.2 =
406
  * Enhancement: Show notice when user is using an older version of WordPress.
407
- * Enhancement: Hide unnecessary view mode in WP Admin's Job Listings page. (@RajeebTheGreat)
408
  * Enhancement: Add support for the `paged` parameter in the RSS feed. (@RajeebTheGreat)
409
  * Fix: Minor PHP 7.2 compatibility fixes.
410
  * Dev: Allow `parent` attribute to be passed to `job_manager_dropdown_categories()`. (@RajeebTheGreat)
@@ -485,7 +493,7 @@ It then creates a database based on the parameters passed to it.
485
  * Fix: Make sure cron jobs for checking/cleaning expired listings are always in place.
486
  * Fix: Better handling of multiple job types. (@spencerfinnell)
487
  * Fix: Issue with deleting company logos from job listings submission form.
488
- * Fix: Warning thrown on job submission form when user not logged in. (@piersb)
489
  * Fix: Issue with WPML not syncing some meta fields.
490
  * Fix: Better handling of AJAX upload errors. (@tripflex)
491
  * Fix: Remove job posting cookies on logout.
@@ -493,7 +501,7 @@ It then creates a database based on the parameters passed to it.
493
  * Fix: Issue with Safari and expiration datepicker.
494
 
495
  = 1.26.2 =
496
- * Fix: Prevents use of Ajax file upload endpoint for visitors who aren't logged in. Themes should check with `job_manager_user_can_upload_file_via_ajax()` if using endpoint in templates.
497
  * Fix: Escape post title in WP Admin's Job Listings page and template segments. (Props to @EhsanCod3r)
498
 
499
  = 1.26.1 =
1
  === WP Job Manager ===
2
  Contributors: mikejolley, automattic, adamkheckler, alexsanford1, annezazu, cena, chaselivingston, csonnek, davor.altman, donnapep, donncha, drawmyface, erania-pinnera, fjorgemota, jacobshere, jakeom, jeherve, jenhooks, jgs, jonryan, kraftbj, lamdayap, lschuyler, macmanx, nancythanki, orangesareorange, rachelsquirrel, renathoc, 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: 5.8
5
  Tested up to: 6.0
6
+ Requires PHP: 7.2
7
+ Stable tag: 1.38.0
8
  License: GPLv3
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
139
  2. Run the install script(you will need to have `wget` installed) - `bash tests/bin/install-wp-tests.sh <db-name> <db-user> <db-pass> <db-host> <wp-version>`.
140
  3. Run the plugin tests - `phpunit`
141
 
142
+ The install script installs a copy of WordPress in the `/tmp` directory along with the WordPress unit testing tools.
143
  It then creates a database based on the parameters passed to it.
144
 
145
  == Screenshots ==
153
 
154
  == Changelog ==
155
 
156
+ = 1.38.0 =
157
+ * Enhancement: Add remote position to filtering (@tripflex)
158
+ * Enhancement: Add setting to enable/disable remote position field (@tripflex)
159
+ * Enhancement: Add mobile support for keyword and location fields (@tripflex)
160
+ * Fix: Remove multiple location search, revert back to original handling prior to 1.36 (@tripflex)
161
+ * Fix: Translation issue in onboarding wizard. (@NekoJonez)
162
+ * Fix: Better support for jobs submissions with `0` as input
163
+
164
  = 1.37.0 =
165
  * Enhancement: Job Visibility Settings
166
  * Enhancement: New settings for Salary fields
219
  * Fix: Missing variable error with cached widgets.
220
  * Tweak: reCAPTCHA setting has more clear language. (@tripflex)
221
  * Dev: Added filter `submit_job_form_create_account_role` for user role when created on job submission. (@tripflex)
222
+ * Dev: Added filter `job_manager_should_run_shortcode_action_handler` for if a job dashboard action should run.
223
  * Dev: Added filter `job_manager_get_form_action` to modify the action of a frontend form. (@tripflex)
224
 
225
  = 1.34.5 =
261
  * Fix: Resuming job listing submission at a particular step is now fixed.
262
  * Fix: Issue with some permalink structures and WPMU would cause issues on `[jobs]` page.
263
  * Dev: Adds the ability to block some jobs from being edited in the frontend.
264
+ * Dev: Adds ability to force some email notifications to be enabled.
265
  * Dev: Allows email notifications to be sent immediately.
266
  * Dev: Adds ability for settings to reference other settings tabs.
267
  * 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.
285
  * Third Party: Fix issue with Polylang where translations get overwritten on save of another language.
286
  * Dev: Adds the ability to completely disable the state saving functionality of `[jobs]` results.
287
  * Dev: Allows custom calls to `get_job_listings()` to just get `ids` and `id=>parent`. (@manzoorwanijk)
288
+ * Dev: Switched to short-array syntax across plugin.
289
  * Dev: Updated `jquery-fileupload` library to 10.2.0.
290
  * Dev: Updated `select2` library to 4.0.10.
291
 
298
  * Fix: Checking typeof undefined should be in quotes in job_submission.js.
299
  * Fix: Plugin activation issue that didn't set up roles correctly.
300
  * Fix: Escaped HTML issue in expiring jobs email notice.
301
+ * Change: Added additional unslashing and sanitization of input variables from forms.
302
  * Change: Limited direct database access within the plugin and migrated to WordPress core functions when possible.
303
  * Removed: Transient garbage collection. WordPress 4.9 and up handle this automatically.
304
 
354
  = 1.32.0 =
355
  * Enhancement: Switched from Chosen to Select2 for enhanced dropdown handling and better mobile support. May require theme update.
356
  * Enhancement: Draft and unsubmitted job listings now appear in `[job_dashboard]`, allowing users to complete their submission.
357
+ * Enhancement: [REVERTED IN 1.32.1] Filled and expired positions are now hidden from WordPress search. (@felipeelia)
358
  * Enhancement: Adds additional support for the new block editor. Restricted to classic block for compatibility with frontend editor.
359
  * Enhancement: Job types can be preselected in `[jobs]` shortcode with `?search_job_type=term-slug`. (@felipeelia)
360
  * Enhancement: Author selection in WP admin now uses a searchable dropdown.
374
  * Fix: Escape the attachment URL. (Props to karimeo)
375
  * Fix: Custom job field priority fix when using decimals. (@tripflex)
376
  * Fix: Fix issue with empty mutli-select in WP admin jobs page. (@felipeelia)
377
+ * Fix: Issue with data export when email doesn't have any job listings.
378
  * Third Party: Improved WPML support. (@vukvukovich)
379
 
380
  = 1.31.2 =
389
  * Fix: No longer auto-expire job listings in Draft status.
390
  * Fix: Issue with undefined index error in WP admin. (@albionselimaj)
391
  * Fix: Issue with duplicate usernames preventing submission of job listings. (@timothyjensen)
392
+ * Dev: Widespread code formatting cleanup throughout the plugin.
393
 
394
  = 1.31.0 =
395
  * Change: Minimum WordPress version is now 4.7.0.
397
  * Enhancement: For GDPR, scrub WPJM data from database on uninstall if option is enabled.
398
  * Enhancement: Filter by Filled and Featured status in WP admin.
399
  * Enhancement: Simplify the display of application URLs.
400
+ * Enhancement: When using WPML, prevent changes to page options when on a non-default language. (@vukvukovich)
401
  * Enhancement: Include company logo in structured data. (@RajeebTheGreat)
402
  * Enhancement: Use more efficient jQuery selectors in scripts. (@RajeebTheGreat)
403
  * Enhancement: Use proper `<h2>` tag in `content-summary-job_listing.php` template for the job title. (@abdullah1908)
412
 
413
  = 1.30.2 =
414
  * Enhancement: Show notice when user is using an older version of WordPress.
415
+ * Enhancement: Hide unnecessary view mode in WP Admin's Job Listings page. (@RajeebTheGreat)
416
  * Enhancement: Add support for the `paged` parameter in the RSS feed. (@RajeebTheGreat)
417
  * Fix: Minor PHP 7.2 compatibility fixes.
418
  * Dev: Allow `parent` attribute to be passed to `job_manager_dropdown_categories()`. (@RajeebTheGreat)
493
  * Fix: Make sure cron jobs for checking/cleaning expired listings are always in place.
494
  * Fix: Better handling of multiple job types. (@spencerfinnell)
495
  * Fix: Issue with deleting company logos from job listings submission form.
496
+ * Fix: Warning thrown on job submission form when user not logged in. (@piersb)
497
  * Fix: Issue with WPML not syncing some meta fields.
498
  * Fix: Better handling of AJAX upload errors. (@tripflex)
499
  * Fix: Remove job posting cookies on logout.
501
  * Fix: Issue with Safari and expiration datepicker.
502
 
503
  = 1.26.2 =
504
+ * Fix: Prevents use of Ajax file upload endpoint for visitors who aren't logged in. Themes should check with `job_manager_user_can_upload_file_via_ajax()` if using endpoint in templates.
505
  * Fix: Escape post title in WP Admin's Job Listings page and template segments. (Props to @EhsanCod3r)
506
 
507
  = 1.26.1 =
templates/job-filters.php CHANGED
@@ -8,7 +8,7 @@
8
  * @author Automattic
9
  * @package wp-job-manager
10
  * @category Template
11
- * @version 1.33.0
12
  */
13
 
14
  if ( ! defined( 'ABSPATH' ) ) {
@@ -36,6 +36,13 @@ do_action( 'job_manager_job_filters_before', $atts );
36
  <input type="text" name="search_location" id="search_location" placeholder="<?php esc_attr_e( 'Location', 'wp-job-manager' ); ?>" value="<?php echo esc_attr( $location ); ?>" />
37
  </div>
38
 
 
 
 
 
 
 
 
39
  <div style="clear: both"></div>
40
 
41
  <?php if ( $categories ) : ?>
8
  * @author Automattic
9
  * @package wp-job-manager
10
  * @category Template
11
+ * @version 1.38.0
12
  */
13
 
14
  if ( ! defined( 'ABSPATH' ) ) {
36
  <input type="text" name="search_location" id="search_location" placeholder="<?php esc_attr_e( 'Location', 'wp-job-manager' ); ?>" value="<?php echo esc_attr( $location ); ?>" />
37
  </div>
38
 
39
+ <?php if( apply_filters( 'job_manager_job_filters_show_remote_position', get_option('job_manager_enable_remote_position', true ), $atts ) ) : ?>
40
+ <div class="search_remote_position">
41
+ <input type="checkbox" class="input-checkbox" name="remote_position" id="remote_position" placeholder="<?php esc_attr_e( 'Location', 'wp-job-manager' ); ?>" value="1" <?php checked(! empty( $remote_position ) ); ?> />
42
+ <label for="remote_position" id="remote_position_label"><?php esc_html_e( 'Remote positions only', 'wp-job-manager' ); ?></label>
43
+ </div>
44
+ <?php endif; ?>
45
+
46
  <div style="clear: both"></div>
47
 
48
  <?php if ( $categories ) : ?>
wp-job-manager-functions.php CHANGED
@@ -32,6 +32,7 @@ if ( ! function_exists( 'get_job_listings' ) ) :
32
  'order' => 'DESC',
33
  'featured' => null,
34
  'filled' => null,
 
35
  'fields' => 'all',
36
  ]
37
  );
@@ -73,51 +74,50 @@ if ( ! function_exists( 'get_job_listings' ) ) :
73
  $query_args['no_found_rows'] = true;
74
  }
75
 
76
- if ( ! empty( $args['search_location'] ) ) {
77
- // translators: This one is used to determine if the user is searching for remote work type.
78
- $remote_keyword = __( 'remote', 'wp-job-manager' );
79
- $search_terms = mb_split( '[,\s]+', $args['search_location'] );
80
- $search_locations = [];
81
- $location_query = [];
82
- $is_remote_location = false;
83
-
84
- // Check if user is looking for a remote work.
85
- foreach ( $search_terms as $search_term ) {
86
- $levenshtein_distance = levenshtein( strtolower( $remote_keyword ), strtolower( $search_term ) );
87
- if ( -1 < $levenshtein_distance && $levenshtein_distance < 3 ) {
88
- $is_remote_location = true;
89
- } else {
90
- $search_locations[] = $search_term;
91
- }
 
 
92
  }
 
93
 
 
94
  $location_meta_keys = [ 'geolocation_formatted_address', '_job_location', 'geolocation_state_long' ];
 
95
  foreach ( $location_meta_keys as $meta_key ) {
96
- foreach ( $search_locations as $search_location ) {
97
- $location_query[] = [
98
- 'key' => $meta_key,
99
- 'value' => $search_location,
100
- 'compare' => 'like',
101
- ];
102
- }
103
- }
104
- if ( count( $location_query ) > 0 ) {
105
- $location_query['relation'] = 'OR';
106
- $query_args['meta_query'][] = $location_query;
107
  }
108
 
109
- if ( $is_remote_location ) {
110
- $remote_work_query = [
111
  'relation' => 'AND',
112
- [
113
- 'key' => '_remote_position',
114
- 'value' => '1',
115
- 'compare' => '=',
116
- ],
117
-
118
  ];
119
- $query_args['meta_query'][] = $remote_work_query;
120
  }
 
 
 
 
 
121
  }
122
 
123
  if ( ! is_null( $args['featured'] ) ) {
32
  'order' => 'DESC',
33
  'featured' => null,
34
  'filled' => null,
35
+ 'remote_position' => null,
36
  'fields' => 'all',
37
  ]
38
  );
74
  $query_args['no_found_rows'] = true;
75
  }
76
 
77
+ $remote_position_search = false;
78
+
79
+ if ( ! is_null( $args['remote_position'] ) ) {
80
+ $remote_position_search = [
81
+ 'key' => '_remote_position',
82
+ 'value' => '1',
83
+ 'compare' => $args['remote_position'] ? '=' : '!=',
84
+ ];
85
+
86
+ if ( '!=' === $remote_position_search['compare'] && apply_filters( 'job_manager_get_job_listings_remote_position_check_not_exists', true, $args ) ) {
87
+ $remote_position_search = [
88
+ 'relation' => 'OR',
89
+ $remote_position_search,
90
+ [
91
+ 'key' => '_remote_position',
92
+ 'compare' => 'NOT EXISTS',
93
+ ],
94
+ ];
95
  }
96
+ }
97
 
98
+ if ( ! empty( $args['search_location'] ) ) {
99
  $location_meta_keys = [ 'geolocation_formatted_address', '_job_location', 'geolocation_state_long' ];
100
+ $location_search = [ 'relation' => 'OR' ];
101
  foreach ( $location_meta_keys as $meta_key ) {
102
+ $location_search[] = [
103
+ 'key' => $meta_key,
104
+ 'value' => $args['search_location'],
105
+ 'compare' => 'like',
106
+ ];
 
 
 
 
 
 
107
  }
108
 
109
+ if ( $remote_position_search ) {
110
+ $location_search = [
111
  'relation' => 'AND',
112
+ $remote_position_search,
113
+ $location_search,
 
 
 
 
114
  ];
 
115
  }
116
+
117
+ $query_args['meta_query'][] = $location_search;
118
+
119
+ } elseif ( $remote_position_search ) {
120
+ $query_args['meta_query'][] = $remote_position_search;
121
  }
122
 
123
  if ( ! is_null( $args['featured'] ) ) {
wp-job-manager.php CHANGED
@@ -3,12 +3,12 @@
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.37.0
7
  * Author: Automattic
8
  * Author URI: https://wpjobmanager.com/
9
- * Requires at least: 5.7
10
  * Tested up to: 6.0
11
- * Requires PHP: 7.0
12
  * Text Domain: wp-job-manager
13
  * Domain Path: /languages/
14
  * License: GPL2+
@@ -21,7 +21,7 @@ if ( ! defined( 'ABSPATH' ) ) {
21
  }
22
 
23
  // Define constants.
24
- define( 'JOB_MANAGER_VERSION', '1.37.0' );
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.38.0
7
  * Author: Automattic
8
  * Author URI: https://wpjobmanager.com/
9
+ * Requires at least: 5.8
10
  * Tested up to: 6.0
11
+ * Requires PHP: 7.2
12
  * Text Domain: wp-job-manager
13
  * Domain Path: /languages/
14
  * License: GPL2+
21
  }
22
 
23
  // Define constants.
24
+ define( 'JOB_MANAGER_VERSION', '1.38.0' );
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__ ) );