WP Job Manager - Version 1.33.1

Version Description

  • Fix: reCAPTCHA is checked when saving draft job listings.
  • Fix: Fix for fatal error encountered when importing jobs with WP All Import.
  • Fix: Maximum file upload limit is now not set for multiple file upload fields.
  • Fix: Theme compatibility fix when job listings are shown outside of the [jobs] shortcode.
  • Fix: Custom rich text fields no longer have their HTML tags removed.
Download this release

Release Info

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

Code changes from version 1.33.0 to 1.33.1

assets/js/ajax-filters.min.js CHANGED
@@ -1 +1 @@
1
- jQuery(document).ready(function(e){function t(){return window.sessionStorage&&"function"==typeof window.sessionStorage.setItem}function i(t){var i=e("div.job_listings").index(t);return c+t.data("post_id")+"_"+i}function n(e,n){if(!t())return!1;"object"!=typeof n&&(n={});var a=e.find(".job_filters");n.form=a.serialize();var o=i(e);try{return window.sessionStorage.setItem(o,JSON.stringify(n))}catch(e){}return!1}function a(e){if(!t())return!1;var n=i(e);try{var a=window.sessionStorage.getItem(n);if(a)return JSON.parse(a)}catch(e){}return!1}function o(e,i){if(!t()||!e)return!1;var o=a(e);return!!o&&(o.persist_results=i,n(e,o))}function r(e,i){if(!t())return!1;var o=a(e);o||(o={persist_results:!1});var r=e.find(".job_listings");return i.html=r.html(),o.results=i,n(e,o)}function s(e){if(!t())return!1;var n=i(e);try{window.sessionStorage.removeItem(n)}catch(e){return!1}return!0}function l(e){if(!t())return!1;var i=a(e);return i||(i={}),i.results=null,n(e,i)}function d(t,i,n){var a=t.find(".job_listings"),o=t.find(".showing_jobs");if("boolean"!=typeof n&&(n=!1),"string"==typeof i.showing&&i.showing){var r=jQuery("<span>").html(i.showing);o.show().html("").html(i.showing_links).prepend(r)}else o.hide();return i.showing_all?o.addClass("wp-job-manager-showing-all"):o.removeClass("wp-job-manager-showing-all"),i.html&&(n?a.append(i.html):a.html(i.html)),!0===t.data("show_pagination")?(t.find(".job-manager-pagination").remove(),i.pagination&&t.append(i.pagination)):(!i.found_jobs||i.max_num_pages<=i.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",i.data.page),e("li.job_listing",a).css("visibility","visible")),!0}var c="job_listing_",g=[];if(e("div.job_listings").on("click","li.job_listing a",function(){o(e(this).closest("div.job_listings"),!0)}).on("click",".job-manager-pagination a",function(){var t=e(this).closest("div.job_listings"),i=e(this).data("page");return t.triggerHandler("update_results",[i,!1]),e("body, html").animate({scrollTop:t.offset().top},600),!1}).on("update_results",function(t,i,n){var a,o,l,c="",u=e(this),_=u.find(".job_filters"),p=u.find(".job_listings"),f=u.data("per_page"),h=u.data("orderby"),b=u.data("order"),m=u.data("featured"),j=u.data("filled"),v=u.data("job_types"),w=u.data("post_status"),y=e("div.job_listings").index(this);if(!(y<0)){if(s(u),g[y]&&g[y].abort(),n&&1!==i||(e("li.job_listing, li.no_job_listings_found",p).css("visibility","hidden"),p.addClass("loading")),u.find(".load_more_jobs").data("page",i),!0===u.data("show_filters")){var k=[];e(':input[name="filter_job_type[]"]:checked, :input[name="filter_job_type[]"][type="hidden"], :input[name="filter_job_type"]',_).each(function(){k.push(e(this).val())}),a=_.find(':input[name^="search_categories"]').map(function(){return e(this).val()}).get(),o="",l="";var S=_.find(':input[name="search_keywords"]'),x=_.find(':input[name="search_location"]');S.val()!==S.attr("placeholder")&&(o=S.val()),x.val()!==x.attr("placeholder")&&(l=x.val()),c={lang:job_manager_ajax_filters.lang,search_keywords:o,search_location:l,search_categories:a,filter_job_type:k,filter_post_status:w,per_page:f,orderby:h,order:b,page:i,featured:m,filled:j,show_pagination:u.data("show_pagination"),$form_data:_.serialize()}}else a=u.data("categories"),o=u.data("keywords"),l=u.data("location"),a&&("string"!=typeof a&&(a=String(a)),a=a.split(",")),c={lang:job_manager_ajax_filters.lang,search_categories:a,search_keywords:o,search_location:l,filter_post_status:w,filter_job_type:v,per_page:f,orderby:h,order:b,page:i,featured:m,filled:j,show_pagination:u.data("show_pagination")};g[y]=e.ajax({type:"POST",url:job_manager_ajax_filters.ajax_url.toString().replace("%%endpoint%%","get_listings"),data:c,success:function(e){if(e)try{e.data=c,d(u,e,n),p.removeClass("loading"),u.triggerHandler("updated_results",e),r(u,e)}catch(e){window.console&&window.console.log(e)}},error:function(e,t,i){window.console&&"abort"!==t&&window.console.log(t+": "+i)},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]),n(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"),i=e(this).closest("form");return i.find(':input[name="search_keywords"], :input[name="search_location"], .job-manager-filter').not(':input[type="hidden"]').val("").trigger("change.select2"),i.find(':input[name^="search_categories"]').not(':input[type="hidden"]').val("").trigger("change.select2"),e(':input[name="filter_job_type[]"]',i).not(':input[type="hidden"]').attr("checked","checked"),t.triggerHandler("reset"),t.triggerHandler("update_results",[1,!1]),n(t),!1}).on("submit",function(){return!1}),e(document.body).on("click",".load_more_jobs",function(){var t=e(this).closest("div.job_listings"),i=parseInt(e(this).data("page")||1,10);return e(this).addClass("loading"),i+=1,e(this).data("page",i),t.triggerHandler("update_results",[i,!0]),!1}),e.isFunction(e.fn.select2)&&"undefined"!=typeof job_manager_select2_args){var u=job_manager_select2_args;u.allowClear=!0,u.minimumResultsForSearch=10,e('select[name^="search_categories"]:visible').select2(u)}e(window).on("load",function(){e("div.job_listings").each(function(){var t=e(this),i=t.find(".job_filters"),n=!1,r=a(t);r&&(r.results&&(n=d(t,r.results),o(t,!1)),"string"==typeof r.form&&(i.find("input[type=checkbox]").prop("checked",!1),i.deserialize(r.form),i.find(':input[name^="search_categories"]').not(':input[type="hidden"]').trigger("change.select2"))),n||t.triggerHandler("update_results",[1,!1])})}),e(window).on("unload",function(){return e("div.job_listings").each(function(){var t=a(e(this));t&&!t.persist_results&&l(e(this))}),!0})});
1
+ jQuery(document).ready(function(e){function t(){return window.sessionStorage&&"function"==typeof window.sessionStorage.setItem}function i(t){var i=e("div.job_listings").index(t),n=t.data("post_id");return void 0!==n&&n||(n=window.location.href.replace(location.hash,"")),c+n+"_"+i}function n(e,n){if(!t())return!1;"object"!=typeof n&&(n={});var a=e.find(".job_filters");n.form=a.serialize();var o=i(e);try{return window.sessionStorage.setItem(o,JSON.stringify(n))}catch(e){}return!1}function a(e){if(!t())return!1;var n=i(e);try{var a=window.sessionStorage.getItem(n);if(a)return JSON.parse(a)}catch(e){}return!1}function o(e,i){if(!t()||!e)return!1;var o=a(e);return!!o&&(o.persist_results=i,n(e,o))}function r(e,i){if(!t())return!1;var o=a(e);o||(o={persist_results:!1});var r=e.find(".job_listings");return i.html=r.html(),o.results=i,n(e,o)}function s(e){if(!t())return!1;var n=i(e);try{window.sessionStorage.removeItem(n)}catch(e){return!1}return!0}function l(e){if(!t())return!1;var i=a(e);return i||(i={}),i.results=null,n(e,i)}function d(t,i,n){var a=t.find(".job_listings"),o=t.find(".showing_jobs");if("boolean"!=typeof n&&(n=!1),"string"==typeof i.showing&&i.showing){var r=jQuery("<span>").html(i.showing);o.show().html("").html(i.showing_links).prepend(r)}else o.hide();return i.showing_all?o.addClass("wp-job-manager-showing-all"):o.removeClass("wp-job-manager-showing-all"),i.html&&(n?a.append(i.html):a.html(i.html)),!0===t.data("show_pagination")?(t.find(".job-manager-pagination").remove(),i.pagination&&t.append(i.pagination)):(!i.found_jobs||i.max_num_pages<=i.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",i.data.page),e("li.job_listing",a).css("visibility","visible")),!0}var c="job_listing_",g=[];if(e("div.job_listings").on("click","li.job_listing a",function(){o(e(this).closest("div.job_listings"),!0)}).on("click",".job-manager-pagination a",function(){var t=e(this).closest("div.job_listings"),i=e(this).data("page");return t.triggerHandler("update_results",[i,!1]),e("body, html").animate({scrollTop:t.offset().top},600),!1}).on("update_results",function(t,i,n){var a,o,l,c="",u=e(this),_=u.find(".job_filters"),p=u.find(".job_listings"),f=u.data("per_page"),h=u.data("orderby"),b=u.data("order"),m=u.data("featured"),j=u.data("filled"),v=u.data("job_types"),w=u.data("post_status"),y=e("div.job_listings").index(this);if(!(y<0)){if(s(u),g[y]&&g[y].abort(),n&&1!==i||(e("li.job_listing, li.no_job_listings_found",p).css("visibility","hidden"),p.addClass("loading")),u.find(".load_more_jobs").data("page",i),!0===u.data("show_filters")){var k=[];e(':input[name="filter_job_type[]"]:checked, :input[name="filter_job_type[]"][type="hidden"], :input[name="filter_job_type"]',_).each(function(){k.push(e(this).val())}),a=_.find(':input[name^="search_categories"]').map(function(){return e(this).val()}).get(),o="",l="";var S=_.find(':input[name="search_keywords"]'),x=_.find(':input[name="search_location"]');S.val()!==S.attr("placeholder")&&(o=S.val()),x.val()!==x.attr("placeholder")&&(l=x.val()),c={lang:job_manager_ajax_filters.lang,search_keywords:o,search_location:l,search_categories:a,filter_job_type:k,filter_post_status:w,per_page:f,orderby:h,order:b,page:i,featured:m,filled:j,show_pagination:u.data("show_pagination"),$form_data:_.serialize()}}else a=u.data("categories"),o=u.data("keywords"),l=u.data("location"),a&&("string"!=typeof a&&(a=String(a)),a=a.split(",")),c={lang:job_manager_ajax_filters.lang,search_categories:a,search_keywords:o,search_location:l,filter_post_status:w,filter_job_type:v,per_page:f,orderby:h,order:b,page:i,featured:m,filled:j,show_pagination:u.data("show_pagination")};g[y]=e.ajax({type:"POST",url:job_manager_ajax_filters.ajax_url.toString().replace("%%endpoint%%","get_listings"),data:c,success:function(e){if(e)try{e.data=c,d(u,e,n),p.removeClass("loading"),u.triggerHandler("updated_results",e),r(u,e)}catch(e){window.console&&window.console.log(e)}},error:function(e,t,i){window.console&&"abort"!==t&&window.console.log(t+": "+i)},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]),n(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"),i=e(this).closest("form");return i.find(':input[name="search_keywords"], :input[name="search_location"], .job-manager-filter').not(':input[type="hidden"]').val("").trigger("change.select2"),i.find(':input[name^="search_categories"]').not(':input[type="hidden"]').val("").trigger("change.select2"),e(':input[name="filter_job_type[]"]',i).not(':input[type="hidden"]').attr("checked","checked"),t.triggerHandler("reset"),t.triggerHandler("update_results",[1,!1]),n(t),!1}).on("submit",function(){return!1}),e(document.body).on("click",".load_more_jobs",function(){var t=e(this).closest("div.job_listings"),i=parseInt(e(this).data("page")||1,10);return e(this).addClass("loading"),i+=1,e(this).data("page",i),t.triggerHandler("update_results",[i,!0]),!1}),e.isFunction(e.fn.select2)&&"undefined"!=typeof job_manager_select2_args){var u=job_manager_select2_args;u.allowClear=!0,u.minimumResultsForSearch=10,e('select[name^="search_categories"]:visible').select2(u)}e(window).on("load",function(){e("div.job_listings").each(function(){var t=e(this),i=t.find(".job_filters"),n=!1,r=a(t);r&&(r.results&&(n=d(t,r.results),o(t,!1)),"string"==typeof r.form&&""!==r.form&&(i.find("input[type=checkbox]").prop("checked",!1),i.deserialize(r.form),i.find(':input[name^="search_categories"]').not(':input[type="hidden"]').trigger("change.select2"))),!n&&i.length>0&&t.triggerHandler("update_results",[1,!1])})}),e(window).on("unload",function(){return e("div.job_listings").each(function(){var t=a(e(this));t&&!t.persist_results&&l(e(this))}),!0})});
changelog.txt CHANGED
@@ -1,3 +1,10 @@
 
 
 
 
 
 
 
1
  = 1.33.0 =
2
  * Enhancement: Allow registered users to save drafts of job listings to be continued later from job dashboard.
3
  * Enhancement: Allow access to job listing fields in REST API.
1
+ = 1.33.1 =
2
+ * Fix: reCAPTCHA is checked when saving draft job listings.
3
+ * Fix: Fix for fatal error encountered when importing jobs with WP All Import.
4
+ * Fix: Maximum file upload limit is now not set for multiple file upload fields.
5
+ * Fix: Theme compatibility fix when job listings are shown outside of the `[jobs]` shortcode.
6
+ * Fix: Custom rich text fields no longer have their HTML tags removed.
7
+
8
  = 1.33.0 =
9
  * Enhancement: Allow registered users to save drafts of job listings to be continued later from job dashboard.
10
  * Enhancement: Allow access to job listing fields in REST API.
includes/3rd-party/wp-all-import.php CHANGED
@@ -14,7 +14,7 @@ add_action( 'pmxi_saved_post', 'wpjm_pmxi_saved_post', 10, 1 );
14
  */
15
  function wpjm_pmxi_saved_post( $post_id ) {
16
  if ( 'job_listing' === get_post_type( $post_id ) ) {
17
- WP_Job_Manager_Post_Types::instance()->maybe_add_default_meta_data( $post_id );
18
  if ( ! WP_Job_Manager_Geocode::has_location_data( $post_id ) ) {
19
  $location = get_post_meta( $post_id, '_job_location', true );
20
  if ( $location ) {
14
  */
15
  function wpjm_pmxi_saved_post( $post_id ) {
16
  if ( 'job_listing' === get_post_type( $post_id ) ) {
17
+ WP_Job_Manager_Post_Types::instance()->maybe_add_default_meta_data( $post_id, get_post( $post_id ) );
18
  if ( ! WP_Job_Manager_Geocode::has_location_data( $post_id ) ) {
19
  $location = get_post_meta( $post_id, '_job_location', true );
20
  if ( $location ) {
includes/class-wp-job-manager-post-types.php CHANGED
@@ -1377,7 +1377,7 @@ class WP_Job_Manager_Post_Types {
1377
  $type = $fields[ $meta_key ]['type'];
1378
  }
1379
 
1380
- if ( 'textarea' === $type ) {
1381
  return wp_kses_post( stripslashes( $meta_value ) );
1382
  }
1383
 
1377
  $type = $fields[ $meta_key ]['type'];
1378
  }
1379
 
1380
+ if ( 'textarea' === $type || 'wp_editor' === $type ) {
1381
  return wp_kses_post( stripslashes( $meta_value ) );
1382
  }
1383
 
includes/forms/class-wp-job-manager-form-submit-job.php CHANGED
@@ -71,7 +71,8 @@ class WP_Job_Manager_Form_Submit_Job extends WP_Job_Manager_Form {
71
 
72
  if ( $this->use_recaptcha_field() ) {
73
  add_action( 'submit_job_form_end', array( $this, 'display_recaptcha_field' ) );
74
- add_action( 'submit_job_form_validate_fields', array( $this, 'validate_recaptcha_field' ) );
 
75
  }
76
 
77
  $this->steps = (array) apply_filters(
@@ -374,7 +375,7 @@ class WP_Job_Manager_Form_Submit_Job extends WP_Job_Manager_Form {
374
  }
375
  }
376
  }
377
- if ( empty( $field['file_limit'] ) && ! empty( $field['multiple'] ) ) {
378
  $field['file_limit'] = 1;
379
  }
380
  if ( 'file' === $field['type'] && ! empty( $field['file_limit'] ) ) {
@@ -430,6 +431,15 @@ class WP_Job_Manager_Form_Submit_Job extends WP_Job_Manager_Form {
430
  }
431
  }
432
 
 
 
 
 
 
 
 
 
 
433
  return apply_filters( 'submit_job_form_validate_fields', true, $this->fields, $values );
434
  }
435
 
@@ -575,12 +585,24 @@ class WP_Job_Manager_Form_Submit_Job extends WP_Job_Manager_Form {
575
 
576
  $this->check_submit_form_nonce_field();
577
 
578
- if ( ! $is_saving_draft ) {
579
- // Validate required.
 
 
 
 
 
 
 
 
 
 
 
580
  $validation_status = $this->validate_fields( $values );
581
- if ( is_wp_error( $validation_status ) ) {
582
- throw new Exception( $validation_status->get_error_message() );
583
- }
 
584
  }
585
 
586
  // Account creation.
71
 
72
  if ( $this->use_recaptcha_field() ) {
73
  add_action( 'submit_job_form_end', array( $this, 'display_recaptcha_field' ) );
74
+ add_filter( 'submit_job_form_validate_fields', array( $this, 'validate_recaptcha_field' ) );
75
+ add_filter( 'submit_draft_job_form_validate_fields', array( $this, 'validate_recaptcha_field' ) );
76
  }
77
 
78
  $this->steps = (array) apply_filters(
375
  }
376
  }
377
  }
378
+ if ( empty( $field['file_limit'] ) && empty( $field['multiple'] ) ) {
379
  $field['file_limit'] = 1;
380
  }
381
  if ( 'file' === $field['type'] && ! empty( $field['file_limit'] ) ) {
431
  }
432
  }
433
 
434
+ /**
435
+ * Perform additional validation on the job submission fields.
436
+ *
437
+ * @since 1.0.4
438
+ *
439
+ * @param bool $is_valid Whether the fields are valid.
440
+ * @param array $fields Array of all fields being validated.
441
+ * @param array $values Submitted input values.
442
+ */
443
  return apply_filters( 'submit_job_form_validate_fields', true, $this->fields, $values );
444
  }
445
 
585
 
586
  $this->check_submit_form_nonce_field();
587
 
588
+ // Validate fields.
589
+ if ( $is_saving_draft ) {
590
+ /**
591
+ * Perform additional validation on the job submission fields when saving drafts.
592
+ *
593
+ * @since 1.33.1
594
+ *
595
+ * @param bool $is_valid Whether the fields are valid.
596
+ * @param array $fields Array of all fields being validated.
597
+ * @param array $values Submitted input values.
598
+ */
599
+ $validation_status = apply_filters( 'submit_draft_job_form_validate_fields', true, $this->fields, $values );
600
+ } else {
601
  $validation_status = $this->validate_fields( $values );
602
+ }
603
+
604
+ if ( is_wp_error( $validation_status ) ) {
605
+ throw new Exception( $validation_status->get_error_message() );
606
  }
607
 
608
  // Account creation.
languages/wp-job-manager.pot CHANGED
@@ -2,9 +2,9 @@
2
  # This file is distributed under the GPL2+.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: WP Job Manager 1.33.0\n"
6
  "Report-Msgid-Bugs-To: https://github.com/Automattic/WP-Job-Manager/issues\n"
7
- "POT-Creation-Date: 2019-06-04 10:34:23+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
@@ -202,7 +202,7 @@ msgstr ""
202
  #: includes/admin/class-wp-job-manager-cpt.php:478
203
  #: includes/class-wp-job-manager-email-notifications.php:238
204
  #: includes/class-wp-job-manager-post-types.php:1175
205
- #: includes/forms/class-wp-job-manager-form-submit-job.php:196
206
  #: includes/widgets/class-wp-job-manager-widget-recent-jobs.php:46
207
  #: templates/job-filters.php:35 templates/job-filters.php:36
208
  msgid "Location"
@@ -1075,18 +1075,18 @@ msgstr ""
1075
 
1076
  #: includes/class-wp-job-manager-email-notifications.php:247
1077
  #: includes/class-wp-job-manager-post-types.php:218
1078
- #: includes/forms/class-wp-job-manager-form-submit-job.php:204
1079
  msgid "Job type"
1080
  msgstr ""
1081
 
1082
  #: includes/class-wp-job-manager-email-notifications.php:257
1083
  #: includes/class-wp-job-manager-post-types.php:154
1084
- #: includes/forms/class-wp-job-manager-form-submit-job.php:213
1085
  msgid "Job category"
1086
  msgstr ""
1087
 
1088
  #: includes/class-wp-job-manager-email-notifications.php:266
1089
- #: includes/forms/class-wp-job-manager-form-submit-job.php:238
1090
  msgid "Company name"
1091
  msgstr ""
1092
 
@@ -1303,37 +1303,37 @@ msgstr[0] ""
1303
  msgstr[1] ""
1304
 
1305
  #: includes/class-wp-job-manager-post-types.php:1162
1306
- #: includes/forms/class-wp-job-manager-form-submit-job.php:173
1307
  msgid "Application email/URL"
1308
  msgstr ""
1309
 
1310
  #: includes/class-wp-job-manager-post-types.php:1163
1311
- #: includes/forms/class-wp-job-manager-form-submit-job.php:174
1312
  msgid "Enter an email address or website URL"
1313
  msgstr ""
1314
 
1315
  #: includes/class-wp-job-manager-post-types.php:1166
1316
- #: includes/forms/class-wp-job-manager-form-submit-job.php:163
1317
  msgid "Application email"
1318
  msgstr ""
1319
 
1320
  #: includes/class-wp-job-manager-post-types.php:1167
1321
- #: includes/forms/class-wp-job-manager-form-submit-job.php:164
1322
  msgid "you@example.com"
1323
  msgstr ""
1324
 
1325
  #: includes/class-wp-job-manager-post-types.php:1169
1326
- #: includes/forms/class-wp-job-manager-form-submit-job.php:168
1327
  msgid "Application URL"
1328
  msgstr ""
1329
 
1330
  #: includes/class-wp-job-manager-post-types.php:1170
1331
- #: includes/forms/class-wp-job-manager-form-submit-job.php:169
1332
  msgid "https://"
1333
  msgstr ""
1334
 
1335
  #: includes/class-wp-job-manager-post-types.php:1176
1336
- #: includes/forms/class-wp-job-manager-form-submit-job.php:200
1337
  msgid "e.g. \"London\""
1338
  msgstr ""
1339
 
@@ -1471,7 +1471,7 @@ msgid "Invalid file type. Accepted types:"
1471
  msgstr ""
1472
 
1473
  #: includes/class-wp-job-manager.php:425
1474
- #: includes/forms/class-wp-job-manager-form-submit-job.php:389
1475
  #. translators: Placeholder %d is the number of files to that users are limited
1476
  #. to.
1477
  msgid "You are only allowed to upload a maximum of %d files."
@@ -1570,92 +1570,92 @@ msgid ""
1570
  "once approved."
1571
  msgstr ""
1572
 
1573
- #: includes/forms/class-wp-job-manager-form-submit-job.php:81
1574
  msgid "Submit Details"
1575
  msgstr ""
1576
 
1577
- #: includes/forms/class-wp-job-manager-form-submit-job.php:87
1578
- #: includes/forms/class-wp-job-manager-form-submit-job.php:552
1579
  #: templates/job-preview.php:30
1580
  msgid "Preview"
1581
  msgstr ""
1582
 
1583
- #: includes/forms/class-wp-job-manager-form-submit-job.php:93
1584
  msgid "Done"
1585
  msgstr ""
1586
 
1587
- #: includes/forms/class-wp-job-manager-form-submit-job.php:189
1588
  msgid "Job Title"
1589
  msgstr ""
1590
 
1591
- #: includes/forms/class-wp-job-manager-form-submit-job.php:197
1592
  msgid "Leave this blank if the location is not important"
1593
  msgstr ""
1594
 
1595
- #: includes/forms/class-wp-job-manager-form-submit-job.php:207
1596
  msgid "Choose job type&hellip;"
1597
  msgstr ""
1598
 
1599
- #: includes/forms/class-wp-job-manager-form-submit-job.php:222
1600
  msgid "Description"
1601
  msgstr ""
1602
 
1603
- #: includes/forms/class-wp-job-manager-form-submit-job.php:241
1604
  msgid "Enter the name of the company"
1605
  msgstr ""
1606
 
1607
- #: includes/forms/class-wp-job-manager-form-submit-job.php:245
1608
  #: templates/content-single-job_listing-company.php:30
1609
  msgid "Website"
1610
  msgstr ""
1611
 
1612
- #: includes/forms/class-wp-job-manager-form-submit-job.php:249
1613
  msgid "http://"
1614
  msgstr ""
1615
 
1616
- #: includes/forms/class-wp-job-manager-form-submit-job.php:253
1617
  msgid "Tagline"
1618
  msgstr ""
1619
 
1620
- #: includes/forms/class-wp-job-manager-form-submit-job.php:256
1621
  msgid "Briefly describe your company"
1622
  msgstr ""
1623
 
1624
- #: includes/forms/class-wp-job-manager-form-submit-job.php:261
1625
  msgid "Video"
1626
  msgstr ""
1627
 
1628
- #: includes/forms/class-wp-job-manager-form-submit-job.php:265
1629
  msgid "A link to a video about your company"
1630
  msgstr ""
1631
 
1632
- #: includes/forms/class-wp-job-manager-form-submit-job.php:269
1633
  msgid "Twitter username"
1634
  msgstr ""
1635
 
1636
- #: includes/forms/class-wp-job-manager-form-submit-job.php:272
1637
  msgid "@yourcompany"
1638
  msgstr ""
1639
 
1640
- #: includes/forms/class-wp-job-manager-form-submit-job.php:276
1641
  msgid "Logo"
1642
  msgstr ""
1643
 
1644
- #: includes/forms/class-wp-job-manager-form-submit-job.php:326
1645
  #. translators: Placeholder %s is the label for the required field.
1646
  msgid "%s is a required field"
1647
  msgstr ""
1648
 
1649
- #: includes/forms/class-wp-job-manager-form-submit-job.php:337
1650
  #. translators: Placeholder %s is the field label that is did not validate.
1651
  msgid "%s is invalid"
1652
  msgstr ""
1653
 
1654
- #: includes/forms/class-wp-job-manager-form-submit-job.php:354
1655
  msgid "Invalid attachment provided."
1656
  msgstr ""
1657
 
1658
- #: includes/forms/class-wp-job-manager-form-submit-job.php:372
1659
  #: wp-job-manager-functions.php:1291
1660
  #. translators: Placeholder %1$s is field label; %2$s is the file mime type;
1661
  #. %3$s is the allowed mime-types.
@@ -1664,48 +1664,48 @@ msgstr ""
1664
  msgid "\"%1$s\" (filetype %2$s) needs to be one of the following file types: %3$s"
1665
  msgstr ""
1666
 
1667
- #: includes/forms/class-wp-job-manager-form-submit-job.php:407
1668
  msgid "Please enter a valid application email address"
1669
  msgstr ""
1670
 
1671
- #: includes/forms/class-wp-job-manager-form-submit-job.php:416
1672
  msgid "Please enter a valid application URL"
1673
  msgstr ""
1674
 
1675
- #: includes/forms/class-wp-job-manager-form-submit-job.php:426
1676
  msgid "Please enter a valid application email address or URL"
1677
  msgstr ""
1678
 
1679
- #: includes/forms/class-wp-job-manager-form-submit-job.php:593
1680
  msgid "Please enter a username."
1681
  msgstr ""
1682
 
1683
- #: includes/forms/class-wp-job-manager-form-submit-job.php:597
1684
  msgid "Please enter a password."
1685
  msgstr ""
1686
 
1687
- #: includes/forms/class-wp-job-manager-form-submit-job.php:601
1688
  msgid "Please enter your email address."
1689
  msgstr ""
1690
 
1691
- #: includes/forms/class-wp-job-manager-form-submit-job.php:607
1692
  msgid "Passwords must match."
1693
  msgstr ""
1694
 
1695
- #: includes/forms/class-wp-job-manager-form-submit-job.php:613
1696
  #. translators: Placeholder %s is the password hint.
1697
  msgid "Invalid Password: %s"
1698
  msgstr ""
1699
 
1700
- #: includes/forms/class-wp-job-manager-form-submit-job.php:615
1701
  msgid "Password is not valid."
1702
  msgstr ""
1703
 
1704
- #: includes/forms/class-wp-job-manager-form-submit-job.php:638
1705
  msgid "You must be signed in to post a new listing."
1706
  msgstr ""
1707
 
1708
- #: includes/forms/class-wp-job-manager-form-submit-job.php:656
1709
  #. translators: placeholder is the URL to the job dashboard page.
1710
  msgid ""
1711
  "Draft was saved. Job listing drafts can be resumed from the <a "
@@ -2284,7 +2284,7 @@ msgid "Searching&hellip;"
2284
  msgstr ""
2285
 
2286
  #: includes/admin/class-wp-job-manager-admin.php:123
2287
- #: includes/forms/class-wp-job-manager-form-submit-job.php:464
2288
  #. translators: jQuery date format, see
2289
  #. http:api.jqueryui.com/datepicker/#utility-formatDate
2290
  msgctxt "Date format for jQuery datepicker."
2
  # This file is distributed under the GPL2+.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: WP Job Manager 1.33.1\n"
6
  "Report-Msgid-Bugs-To: https://github.com/Automattic/WP-Job-Manager/issues\n"
7
+ "POT-Creation-Date: 2019-06-10 10:21:32+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
202
  #: includes/admin/class-wp-job-manager-cpt.php:478
203
  #: includes/class-wp-job-manager-email-notifications.php:238
204
  #: includes/class-wp-job-manager-post-types.php:1175
205
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:197
206
  #: includes/widgets/class-wp-job-manager-widget-recent-jobs.php:46
207
  #: templates/job-filters.php:35 templates/job-filters.php:36
208
  msgid "Location"
1075
 
1076
  #: includes/class-wp-job-manager-email-notifications.php:247
1077
  #: includes/class-wp-job-manager-post-types.php:218
1078
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:205
1079
  msgid "Job type"
1080
  msgstr ""
1081
 
1082
  #: includes/class-wp-job-manager-email-notifications.php:257
1083
  #: includes/class-wp-job-manager-post-types.php:154
1084
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:214
1085
  msgid "Job category"
1086
  msgstr ""
1087
 
1088
  #: includes/class-wp-job-manager-email-notifications.php:266
1089
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:239
1090
  msgid "Company name"
1091
  msgstr ""
1092
 
1303
  msgstr[1] ""
1304
 
1305
  #: includes/class-wp-job-manager-post-types.php:1162
1306
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:174
1307
  msgid "Application email/URL"
1308
  msgstr ""
1309
 
1310
  #: includes/class-wp-job-manager-post-types.php:1163
1311
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:175
1312
  msgid "Enter an email address or website URL"
1313
  msgstr ""
1314
 
1315
  #: includes/class-wp-job-manager-post-types.php:1166
1316
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:164
1317
  msgid "Application email"
1318
  msgstr ""
1319
 
1320
  #: includes/class-wp-job-manager-post-types.php:1167
1321
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:165
1322
  msgid "you@example.com"
1323
  msgstr ""
1324
 
1325
  #: includes/class-wp-job-manager-post-types.php:1169
1326
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:169
1327
  msgid "Application URL"
1328
  msgstr ""
1329
 
1330
  #: includes/class-wp-job-manager-post-types.php:1170
1331
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:170
1332
  msgid "https://"
1333
  msgstr ""
1334
 
1335
  #: includes/class-wp-job-manager-post-types.php:1176
1336
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:201
1337
  msgid "e.g. \"London\""
1338
  msgstr ""
1339
 
1471
  msgstr ""
1472
 
1473
  #: includes/class-wp-job-manager.php:425
1474
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:390
1475
  #. translators: Placeholder %d is the number of files to that users are limited
1476
  #. to.
1477
  msgid "You are only allowed to upload a maximum of %d files."
1570
  "once approved."
1571
  msgstr ""
1572
 
1573
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:82
1574
  msgid "Submit Details"
1575
  msgstr ""
1576
 
1577
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:88
1578
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:562
1579
  #: templates/job-preview.php:30
1580
  msgid "Preview"
1581
  msgstr ""
1582
 
1583
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:94
1584
  msgid "Done"
1585
  msgstr ""
1586
 
1587
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:190
1588
  msgid "Job Title"
1589
  msgstr ""
1590
 
1591
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:198
1592
  msgid "Leave this blank if the location is not important"
1593
  msgstr ""
1594
 
1595
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:208
1596
  msgid "Choose job type&hellip;"
1597
  msgstr ""
1598
 
1599
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:223
1600
  msgid "Description"
1601
  msgstr ""
1602
 
1603
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:242
1604
  msgid "Enter the name of the company"
1605
  msgstr ""
1606
 
1607
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:246
1608
  #: templates/content-single-job_listing-company.php:30
1609
  msgid "Website"
1610
  msgstr ""
1611
 
1612
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:250
1613
  msgid "http://"
1614
  msgstr ""
1615
 
1616
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:254
1617
  msgid "Tagline"
1618
  msgstr ""
1619
 
1620
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:257
1621
  msgid "Briefly describe your company"
1622
  msgstr ""
1623
 
1624
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:262
1625
  msgid "Video"
1626
  msgstr ""
1627
 
1628
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:266
1629
  msgid "A link to a video about your company"
1630
  msgstr ""
1631
 
1632
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:270
1633
  msgid "Twitter username"
1634
  msgstr ""
1635
 
1636
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:273
1637
  msgid "@yourcompany"
1638
  msgstr ""
1639
 
1640
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:277
1641
  msgid "Logo"
1642
  msgstr ""
1643
 
1644
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:327
1645
  #. translators: Placeholder %s is the label for the required field.
1646
  msgid "%s is a required field"
1647
  msgstr ""
1648
 
1649
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:338
1650
  #. translators: Placeholder %s is the field label that is did not validate.
1651
  msgid "%s is invalid"
1652
  msgstr ""
1653
 
1654
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:355
1655
  msgid "Invalid attachment provided."
1656
  msgstr ""
1657
 
1658
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:373
1659
  #: wp-job-manager-functions.php:1291
1660
  #. translators: Placeholder %1$s is field label; %2$s is the file mime type;
1661
  #. %3$s is the allowed mime-types.
1664
  msgid "\"%1$s\" (filetype %2$s) needs to be one of the following file types: %3$s"
1665
  msgstr ""
1666
 
1667
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:408
1668
  msgid "Please enter a valid application email address"
1669
  msgstr ""
1670
 
1671
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:417
1672
  msgid "Please enter a valid application URL"
1673
  msgstr ""
1674
 
1675
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:427
1676
  msgid "Please enter a valid application email address or URL"
1677
  msgstr ""
1678
 
1679
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:615
1680
  msgid "Please enter a username."
1681
  msgstr ""
1682
 
1683
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:619
1684
  msgid "Please enter a password."
1685
  msgstr ""
1686
 
1687
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:623
1688
  msgid "Please enter your email address."
1689
  msgstr ""
1690
 
1691
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:629
1692
  msgid "Passwords must match."
1693
  msgstr ""
1694
 
1695
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:635
1696
  #. translators: Placeholder %s is the password hint.
1697
  msgid "Invalid Password: %s"
1698
  msgstr ""
1699
 
1700
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:637
1701
  msgid "Password is not valid."
1702
  msgstr ""
1703
 
1704
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:660
1705
  msgid "You must be signed in to post a new listing."
1706
  msgstr ""
1707
 
1708
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:678
1709
  #. translators: placeholder is the URL to the job dashboard page.
1710
  msgid ""
1711
  "Draft was saved. Job listing drafts can be resumed from the <a "
2284
  msgstr ""
2285
 
2286
  #: includes/admin/class-wp-job-manager-admin.php:123
2287
+ #: includes/forms/class-wp-job-manager-form-submit-job.php:474
2288
  #. translators: jQuery date format, see
2289
  #. http:api.jqueryui.com/datepicker/#utility-formatDate
2290
  msgctxt "Date format for jQuery datepicker."
readme.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: mikejolley, automattic, adamkheckler, alexsanford1, annezazu, cena
3
  Tags: job manager, job listing, job board, job management, job lists, job list, job, jobs, company, hiring, employment, employer, employees, candidate, freelance, internship, job listings, positions, board, application, hiring, listing, manager, recruiting, recruitment, talent
4
  Requires at least: 4.7.0
5
  Tested up to: 5.2
6
- Stable tag: 1.33.0
7
  License: GPLv3
8
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
9
 
@@ -152,6 +152,13 @@ It then creates a database based on the parameters passed to it.
152
 
153
  == Changelog ==
154
 
 
 
 
 
 
 
 
155
  = 1.33.0 =
156
  * Enhancement: Allow registered users to save drafts of job listings to be continued later from job dashboard.
157
  * Enhancement: Allow access to job listing fields in REST API.
3
  Tags: job manager, job listing, job board, job management, job lists, job list, job, jobs, company, hiring, employment, employer, employees, candidate, freelance, internship, job listings, positions, board, application, hiring, listing, manager, recruiting, recruitment, talent
4
  Requires at least: 4.7.0
5
  Tested up to: 5.2
6
+ Stable tag: 1.33.1
7
  License: GPLv3
8
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
9
 
152
 
153
  == Changelog ==
154
 
155
+ = 1.33.1 =
156
+ * Fix: reCAPTCHA is checked when saving draft job listings.
157
+ * Fix: Fix for fatal error encountered when importing jobs with WP All Import.
158
+ * Fix: Maximum file upload limit is now not set for multiple file upload fields.
159
+ * Fix: Theme compatibility fix when job listings are shown outside of the `[jobs]` shortcode.
160
+ * Fix: Custom rich text fields no longer have their HTML tags removed.
161
+
162
  = 1.33.0 =
163
  * Enhancement: Allow registered users to save drafts of job listings to be continued later from job dashboard.
164
  * Enhancement: Allow access to job listing fields in REST API.
templates/job-submit.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' ) ) {
@@ -75,7 +75,7 @@ global $job_manager;
75
  <input type="hidden" name="step" value="<?php echo esc_attr( $step ); ?>" />
76
  <input type="submit" name="submit_job" class="button" value="<?php echo esc_attr( $submit_button_text ); ?>" />
77
  <?php
78
- if ( $can_continue_later ) {
79
  echo '<input type="submit" name="save_draft" class="button secondary save_draft" value="' . esc_attr__( 'Save Draft', 'wp-job-manager' ) . '" formnovalidate />';
80
  }
81
  ?>
8
  * @author Automattic
9
  * @package wp-job-manager
10
  * @category Template
11
+ * @version 1.33.1
12
  */
13
 
14
  if ( ! defined( 'ABSPATH' ) ) {
75
  <input type="hidden" name="step" value="<?php echo esc_attr( $step ); ?>" />
76
  <input type="submit" name="submit_job" class="button" value="<?php echo esc_attr( $submit_button_text ); ?>" />
77
  <?php
78
+ if ( isset( $can_continue_later ) && $can_continue_later ) {
79
  echo '<input type="submit" name="save_draft" class="button secondary save_draft" value="' . esc_attr__( 'Save Draft', 'wp-job-manager' ) . '" formnovalidate />';
80
  }
81
  ?>
wp-job-manager.php CHANGED
@@ -3,7 +3,7 @@
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.33.0
7
  * Author: Automattic
8
  * Author URI: https://wpjobmanager.com/
9
  * Requires at least: 4.7.0
@@ -20,7 +20,7 @@ if ( ! defined( 'ABSPATH' ) ) {
20
  }
21
 
22
  // Define constants.
23
- define( 'JOB_MANAGER_VERSION', '1.33.0' );
24
  define( 'JOB_MANAGER_PLUGIN_DIR', untrailingslashit( plugin_dir_path( __FILE__ ) ) );
25
  define( 'JOB_MANAGER_PLUGIN_URL', untrailingslashit( plugins_url( basename( plugin_dir_path( __FILE__ ) ), basename( __FILE__ ) ) ) );
26
  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.33.1
7
  * Author: Automattic
8
  * Author URI: https://wpjobmanager.com/
9
  * Requires at least: 4.7.0
20
  }
21
 
22
  // Define constants.
23
+ define( 'JOB_MANAGER_VERSION', '1.33.1' );
24
  define( 'JOB_MANAGER_PLUGIN_DIR', untrailingslashit( plugin_dir_path( __FILE__ ) ) );
25
  define( 'JOB_MANAGER_PLUGIN_URL', untrailingslashit( plugins_url( basename( plugin_dir_path( __FILE__ ) ), basename( __FILE__ ) ) ) );
26
  define( 'JOB_MANAGER_PLUGIN_BASENAME', plugin_basename( __FILE__ ) );