Version Description
- Enhancement: New filter to skip validation for application field.
- Enhancement: New method for clearing fields.
- Fix: Improve TwentyTwenty theme compatibility (@JuanchoPestana)
- Fix: Issue in RSS feed with empty query parameters.
- Fix: Issue on Jobs page with empty query parameters.
- Fix: Conflict with search query parameters on Jobs page.
- Fix: Ensuring hidden jobs do not display in RSS feed.
- Fix: Image validation when posting a job.
- Fix: JS error in file upload.
- Fix: Removed extra whitespace in textarea settings fields.
- Fix: Several untranslatable strings are now translatable.
- Fix: CC header in emails.
- Fix: Search category query sanitization.
- Fix: Remove PHP notices. (@truongwp)
Download this release
Release Info
| Developer | alexsanford1 |
| Plugin | |
| Version | 1.34.2 |
| Comparing to | |
| See all releases | |
Code changes from version 1.34.1 to 1.34.2
- assets/js/ajax-file-upload.min.js +1 -1
- changelog.txt +16 -0
- includes/abstracts/abstract-wp-job-manager-form.php +7 -0
- includes/admin/class-wp-job-manager-cpt.php +1 -1
- includes/admin/class-wp-job-manager-settings.php +1 -3
- includes/admin/class-wp-job-manager-setup.php +1 -1
- includes/admin/views/html-admin-setup-step-3.php +1 -1
- includes/class-wp-job-manager-dependency-checker.php +1 -1
- includes/class-wp-job-manager-email-notifications.php +6 -3
- includes/class-wp-job-manager-geocode.php +1 -1
- includes/class-wp-job-manager-post-types.php +25 -4
- includes/class-wp-job-manager-shortcodes.php +18 -10
- includes/class-wp-job-manager-widget.php +1 -1
- includes/forms/class-wp-job-manager-form-submit-job.php +35 -19
- includes/helper/views/html-licence-key-error.php +2 -1
- includes/helper/views/html-licence-key-notice.php +2 -1
- includes/helper/views/html-licences.php +4 -3
- languages/wp-job-manager.pot +171 -99
- readme.txt +18 -2
- templates/account-signin.php +2 -0
- templates/emails/admin-new-job.php +2 -0
- templates/emails/admin-updated-job.php +2 -0
- templates/emails/employer-expiring-job.php +3 -0
- templates/emails/plain/admin-expiring-job.php +5 -2
- templates/emails/plain/admin-new-job.php +3 -1
- templates/emails/plain/admin-updated-job.php +3 -1
- templates/emails/plain/employer-expiring-job.php +5 -2
- templates/form-fields/wp-editor-field.php +25 -20
- templates/job-application-email.php +1 -0
- templates/job-submitted.php +3 -1
- templates/pagination.php +9 -0
- wp-job-manager-functions.php +67 -12
- wp-job-manager.php +2 -2
assets/js/ajax-file-upload.min.js
CHANGED
|
@@ -1 +1 @@
|
|
| 1 |
-
jQuery(function(e){e(".wp-job-manager-file-upload").each(function(){e(this).fileupload({dataType:"json",dropZone:e(this),url:job_manager_ajax_file_upload.ajax_url.toString().replace("%%endpoint%%","upload_file"),formData:{script:!0},change:function(){this.validation_errors=[]},add:function(a,i){var t=e(this),r=t.closest("form"),n=t.parent().find(".job-manager-uploaded-files"),o=[],l=!1,s=parseInt(t.data("file_limit"),10);if(void 0!==t.data("file_limit_left")?l=parseInt(t.data("file_limit_left"),10):void 0!==s&&(l=s-parseInt(n.children(".job-manager-uploaded-file").length,10),t.data("file_limit_left",l)),!1!==l&&l<=0){var d="Exceeded upload limit";t.data("file_limit_message")?d=t.data("file_limit_message"):"undefined"!=typeof job_manager_job_submission&&(d=job_manager_job_submission.i18n_over_upload_limit),d=d.replace("%d",s),o.push(d)}var _=e(this).data("file_types");if(_){var p=new RegExp("(.|/)("+_+")$","i");i.originalFiles[0].name.length&&!p.test(i.originalFiles[0].name)&&o.push(job_manager_ajax_file_upload.i18n_invalid_file_type+" "+_)}o.length>0?this.validation_errors=this.validation_errors.concat(o):(!1!==l&&t.data("file_limit_left",l-1),r.find(':input[type="submit"]').attr("disabled","disabled"),i.context=e('<progress value="" max="100"></progress>').appendTo(n),i.submit())},progress:function(e,a){var i=parseInt(a.loaded/a.total*100,10);a.context.val(i)},fail:function(a,i){var t=e(this),r=t.closest("form");i.errorThrown&&window.alert(i.errorThrown),i.context.remove(),r.find(':input[type="submit"]').removeAttr("disabled"),t.trigger("update_status")},done:function(a,i){var t=e(this),r=t.closest("form"),n=t.parent().find(".job-manager-uploaded-files"),o=t.attr("multiple")?1:0,l=["jpg","gif","png","jpeg","jpe"];i.context.remove(),void 0===i.result.success||i.result.success||this.validation_errors.push(i.result.data)
|
| 1 |
+
jQuery(function(e){e(".wp-job-manager-file-upload").each(function(){e(this).fileupload({dataType:"json",dropZone:e(this),url:job_manager_ajax_file_upload.ajax_url.toString().replace("%%endpoint%%","upload_file"),formData:{script:!0},change:function(){this.validation_errors=[]},add:function(a,i){var t=e(this),r=t.closest("form"),n=t.parent().find(".job-manager-uploaded-files"),o=[],l=!1,s=parseInt(t.data("file_limit"),10);if(void 0!==t.data("file_limit_left")?l=parseInt(t.data("file_limit_left"),10):void 0!==s&&(l=s-parseInt(n.children(".job-manager-uploaded-file").length,10),t.data("file_limit_left",l)),!1!==l&&l<=0){var d="Exceeded upload limit";t.data("file_limit_message")?d=t.data("file_limit_message"):"undefined"!=typeof job_manager_job_submission&&(d=job_manager_job_submission.i18n_over_upload_limit),d=d.replace("%d",s),o.push(d)}var _=e(this).data("file_types");if(_){var p=new RegExp("(.|/)("+_+")$","i");i.originalFiles[0].name.length&&!p.test(i.originalFiles[0].name)&&o.push(job_manager_ajax_file_upload.i18n_invalid_file_type+" "+_)}o.length>0?this.validation_errors=this.validation_errors.concat(o):(!1!==l&&t.data("file_limit_left",l-1),r.find(':input[type="submit"]').attr("disabled","disabled"),i.context=e('<progress value="" max="100"></progress>').appendTo(n),i.submit())},progress:function(e,a){var i=parseInt(a.loaded/a.total*100,10);a.context.val(i)},fail:function(a,i){var t=e(this),r=t.closest("form");i.errorThrown&&window.alert(i.errorThrown),i.context.remove(),r.find(':input[type="submit"]').removeAttr("disabled"),t.trigger("update_status")},done:function(a,i){var t=e(this),r=t.closest("form"),n=t.parent().find(".job-manager-uploaded-files"),o=t.attr("multiple")?1:0,l=["jpg","gif","png","jpeg","jpe"];i.context.remove(),void 0===i.result.success||i.result.success||this.validation_errors.push(i.result.data);var s=this;e.each(i.result.files,function(a,i){if(i.error)s.validation_errors.push(i.error);else{var r;e.inArray(i.extension,l)>=0?(r=e.parseHTML(job_manager_ajax_file_upload.js_field_html_img),e(r).find(".job-manager-uploaded-file-preview img").attr("src",i.url)):(r=e.parseHTML(job_manager_ajax_file_upload.js_field_html),e(r).find(".job-manager-uploaded-file-name code").text(i.name)),e(r).find(".input-text").val(i.url),e(r).find(".input-text").attr("name","current_"+t.attr("name")),o?n.append(r):n.html(r)}}),this.validation_errors.length>0&&(this.validation_errors=this.validation_errors.filter(function(e,a,i){return i.indexOf(e)===a}),window.alert(this.validation_errors.join("\n"))),r.find(':input[type="submit"]').removeAttr("disabled"),t.trigger("update_status")}})})});
|
changelog.txt
CHANGED
|
@@ -1,3 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
= 1.34.1 =
|
| 2 |
* Templates Updated: `job-submitted.php`, `job-dashboard.php`.
|
| 3 |
* Enhancement: Email notifications are sent separately if multiple recipients are listed.
|
| 1 |
+
= 1.34.2 =
|
| 2 |
+
* Enhancement: New filter to skip validation for application field.
|
| 3 |
+
* Enhancement: New method for clearing fields.
|
| 4 |
+
* Fix: Improve TwentyTwenty theme compatibility (@JuanchoPestana)
|
| 5 |
+
* Fix: Issue in RSS feed with empty query parameters.
|
| 6 |
+
* Fix: Issue on Jobs page with empty query parameters.
|
| 7 |
+
* Fix: Conflict with search query parameters on Jobs page.
|
| 8 |
+
* Fix: Ensuring hidden jobs do not display in RSS feed.
|
| 9 |
+
* Fix: Image validation when posting a job.
|
| 10 |
+
* Fix: JS error in file upload.
|
| 11 |
+
* Fix: Removed extra whitespace in textarea settings fields.
|
| 12 |
+
* Fix: Several untranslatable strings are now translatable.
|
| 13 |
+
* Fix: CC header in emails.
|
| 14 |
+
* Fix: Search category query sanitization.
|
| 15 |
+
* Fix: Remove PHP notices. (@truongwp)
|
| 16 |
+
|
| 17 |
= 1.34.1 =
|
| 18 |
* Templates Updated: `job-submitted.php`, `job-dashboard.php`.
|
| 19 |
* Enhancement: Email notifications are sent separately if multiple recipients are listed.
|
includes/abstracts/abstract-wp-job-manager-form.php
CHANGED
|
@@ -298,6 +298,13 @@ abstract class WP_Job_Manager_Form {
|
|
| 298 |
$this->fields = [];
|
| 299 |
}
|
| 300 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 301 |
/**
|
| 302 |
* Enqueue the scripts for the form.
|
| 303 |
*/
|
| 298 |
$this->fields = [];
|
| 299 |
}
|
| 300 |
|
| 301 |
+
/**
|
| 302 |
+
* Clears form fields (resets to empty array)
|
| 303 |
+
*/
|
| 304 |
+
public function clear_fields() {
|
| 305 |
+
$this->fields = [];
|
| 306 |
+
}
|
| 307 |
+
|
| 308 |
/**
|
| 309 |
* Enqueue the scripts for the form.
|
| 310 |
*/
|
includes/admin/class-wp-job-manager-cpt.php
CHANGED
|
@@ -580,7 +580,7 @@ class WP_Job_Manager_CPT {
|
|
| 580 |
|
| 581 |
the_company_logo();
|
| 582 |
echo '</div>';
|
| 583 |
-
echo '<button type="button" class="toggle-row"><span class="screen-reader-text">Show more details</span></button>';
|
| 584 |
break;
|
| 585 |
case 'job_location':
|
| 586 |
the_job_location( true, $post );
|
| 580 |
|
| 581 |
the_company_logo();
|
| 582 |
echo '</div>';
|
| 583 |
+
echo '<button type="button" class="toggle-row"><span class="screen-reader-text">' . esc_html__( 'Show more details', 'wp-job-manager' ) . '</span></button>';
|
| 584 |
break;
|
| 585 |
case 'job_location':
|
| 586 |
the_job_location( true, $post );
|
includes/admin/class-wp-job-manager-settings.php
CHANGED
|
@@ -558,9 +558,7 @@ class WP_Job_Manager_Settings {
|
|
| 558 |
echo implode( ' ', $attributes ) . ' '; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
| 559 |
echo $placeholder; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
| 560 |
?>
|
| 561 |
-
>
|
| 562 |
-
<?php echo esc_textarea( $value ); ?>
|
| 563 |
-
</textarea>
|
| 564 |
<?php
|
| 565 |
|
| 566 |
if ( ! empty( $option['desc'] ) ) {
|
| 558 |
echo implode( ' ', $attributes ) . ' '; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
| 559 |
echo $placeholder; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
| 560 |
?>
|
| 561 |
+
><?php echo esc_textarea( $value ); ?></textarea>
|
|
|
|
|
|
|
| 562 |
<?php
|
| 563 |
|
| 564 |
if ( ! empty( $option['desc'] ) ) {
|
includes/admin/class-wp-job-manager-setup.php
CHANGED
|
@@ -123,7 +123,7 @@ class WP_Job_Manager_Setup {
|
|
| 123 |
! isset( $_REQUEST['setup_wizard'] )
|
| 124 |
|| false === wp_verify_nonce( wp_unslash( $_REQUEST['setup_wizard'] ), 'step_3' ) // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- Nonce should not be modified.
|
| 125 |
) {
|
| 126 |
-
wp_die( 'Error in nonce. Try again.', 'wp-job-manager' );
|
| 127 |
}
|
| 128 |
$create_pages = isset( $_POST['wp-job-manager-create-page'] ) ? array_map( 'sanitize_text_field', wp_unslash( $_POST['wp-job-manager-create-page'] ) ) : [];
|
| 129 |
$page_titles = isset( $_POST['wp-job-manager-page-title'] ) ? array_map( 'sanitize_text_field', wp_unslash( $_POST['wp-job-manager-page-title'] ) ) : [];
|
| 123 |
! isset( $_REQUEST['setup_wizard'] )
|
| 124 |
|| false === wp_verify_nonce( wp_unslash( $_REQUEST['setup_wizard'] ), 'step_3' ) // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- Nonce should not be modified.
|
| 125 |
) {
|
| 126 |
+
wp_die( esc_html__( 'Error in nonce. Try again.', 'wp-job-manager' ), 'wp-job-manager' );
|
| 127 |
}
|
| 128 |
$create_pages = isset( $_POST['wp-job-manager-create-page'] ) ? array_map( 'sanitize_text_field', wp_unslash( $_POST['wp-job-manager-create-page'] ) ) : [];
|
| 129 |
$page_titles = isset( $_POST['wp-job-manager-page-title'] ) ? array_map( 'sanitize_text_field', wp_unslash( $_POST['wp-job-manager-page-title'] ) ) : [];
|
includes/admin/views/html-admin-setup-step-3.php
CHANGED
|
@@ -68,7 +68,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
| 68 |
<ul>
|
| 69 |
<li class="icon-review"><a href="https://wordpress.org/support/view/plugin-reviews/wp-job-manager#postform"><?php esc_html_e( 'Leave a positive review', 'wp-job-manager' ); ?></a></li>
|
| 70 |
<li class="icon-localization"><a href="https://translate.wordpress.org/projects/wp-plugins/wp-job-manager"><?php esc_html_e( 'Contribute a localization', 'wp-job-manager' ); ?></a></li>
|
| 71 |
-
<li class="icon-code"><a href="https://github.com/
|
| 72 |
<li class="icon-forum"><a href="https://wordpress.org/support/plugin/wp-job-manager"><?php esc_html_e( 'Help other users on the forums', 'wp-job-manager' ); ?></a></li>
|
| 73 |
</ul>
|
| 74 |
</div>
|
| 68 |
<ul>
|
| 69 |
<li class="icon-review"><a href="https://wordpress.org/support/view/plugin-reviews/wp-job-manager#postform"><?php esc_html_e( 'Leave a positive review', 'wp-job-manager' ); ?></a></li>
|
| 70 |
<li class="icon-localization"><a href="https://translate.wordpress.org/projects/wp-plugins/wp-job-manager"><?php esc_html_e( 'Contribute a localization', 'wp-job-manager' ); ?></a></li>
|
| 71 |
+
<li class="icon-code"><a href="https://github.com/Automattic/WP-Job-Manager/"><?php esc_html_e( 'Contribute code or report a bug', 'wp-job-manager' ); ?></a></li>
|
| 72 |
<li class="icon-forum"><a href="https://wordpress.org/support/plugin/wp-job-manager"><?php esc_html_e( 'Help other users on the forums', 'wp-job-manager' ); ?></a></li>
|
| 73 |
</ul>
|
| 74 |
</div>
|
includes/class-wp-job-manager-dependency-checker.php
CHANGED
|
@@ -115,7 +115,7 @@ class WP_Job_Manager_Dependency_Checker {
|
|
| 115 |
$update_action_link = '';
|
| 116 |
if ( current_user_can( 'update_core' ) ) {
|
| 117 |
// translators: %s is the URL for the page where users can go to update WordPress.
|
| 118 |
-
$update_action_link = ' ' . sprintf( 'Please <a href="%s">update WordPress</a> to avoid issues.', esc_url( self_admin_url( 'update-core.php' ) ) );
|
| 119 |
}
|
| 120 |
|
| 121 |
echo '<div class="error">';
|
| 115 |
$update_action_link = '';
|
| 116 |
if ( current_user_can( 'update_core' ) ) {
|
| 117 |
// translators: %s is the URL for the page where users can go to update WordPress.
|
| 118 |
+
$update_action_link = ' ' . sprintf( __( 'Please <a href="%s">update WordPress</a> to avoid issues.', 'wp-job-manager' ), esc_url( self_admin_url( 'update-core.php' ) ) );
|
| 119 |
}
|
| 120 |
|
| 121 |
echo '<div class="error">';
|
includes/class-wp-job-manager-email-notifications.php
CHANGED
|
@@ -770,7 +770,7 @@ final class WP_Job_Manager_Email_Notifications {
|
|
| 770 |
}
|
| 771 |
|
| 772 |
$args['headers'] = is_array( $args['headers'] ) ? $args['headers'] : [];
|
| 773 |
-
$send_to
|
| 774 |
if ( ! is_array( $send_to ) ) {
|
| 775 |
$send_to = array_filter( array_map( 'sanitize_email', preg_split( '/[,|;]\s?/', $send_to ) ) );
|
| 776 |
}
|
|
@@ -790,11 +790,15 @@ final class WP_Job_Manager_Email_Notifications {
|
|
| 790 |
*/
|
| 791 |
$args = apply_filters( "job_manager_email_{$email_notification_key}_args", $args, $email );
|
| 792 |
|
| 793 |
-
$headers
|
| 794 |
if ( ! empty( $args['from'] ) ) {
|
| 795 |
$headers[] = 'From: ' . $args['from'];
|
| 796 |
}
|
| 797 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 798 |
if ( ! self::send_as_plain_text( $email_notification_key, $args ) ) {
|
| 799 |
$headers[] = 'Content-Type: text/html';
|
| 800 |
}
|
|
@@ -809,7 +813,6 @@ final class WP_Job_Manager_Email_Notifications {
|
|
| 809 |
* @param array $args Email arguments for generating email.
|
| 810 |
* @param string $content Email content.
|
| 811 |
* @param array $headers Email headers.
|
| 812 |
-
* @param
|
| 813 |
*/
|
| 814 |
if ( ! apply_filters( 'job_manager_email_do_send_notification', true, $email, $args, $content, $headers ) ) {
|
| 815 |
continue;
|
| 770 |
}
|
| 771 |
|
| 772 |
$args['headers'] = is_array( $args['headers'] ) ? $args['headers'] : [];
|
| 773 |
+
$send_to = $args['to'];
|
| 774 |
if ( ! is_array( $send_to ) ) {
|
| 775 |
$send_to = array_filter( array_map( 'sanitize_email', preg_split( '/[,|;]\s?/', $send_to ) ) );
|
| 776 |
}
|
| 790 |
*/
|
| 791 |
$args = apply_filters( "job_manager_email_{$email_notification_key}_args", $args, $email );
|
| 792 |
|
| 793 |
+
$headers = $args['headers'];
|
| 794 |
if ( ! empty( $args['from'] ) ) {
|
| 795 |
$headers[] = 'From: ' . $args['from'];
|
| 796 |
}
|
| 797 |
|
| 798 |
+
if ( ! empty( $args['cc'] ) ) {
|
| 799 |
+
$headers[] = 'CC: ' . $args['cc'];
|
| 800 |
+
}
|
| 801 |
+
|
| 802 |
if ( ! self::send_as_plain_text( $email_notification_key, $args ) ) {
|
| 803 |
$headers[] = 'Content-Type: text/html';
|
| 804 |
}
|
| 813 |
* @param array $args Email arguments for generating email.
|
| 814 |
* @param string $content Email content.
|
| 815 |
* @param array $headers Email headers.
|
|
|
|
| 816 |
*/
|
| 817 |
if ( ! apply_filters( 'job_manager_email_do_send_notification', true, $email, $args, $content, $headers ) ) {
|
| 818 |
continue;
|
includes/class-wp-job-manager-geocode.php
CHANGED
|
@@ -229,7 +229,7 @@ class WP_Job_Manager_Geocode {
|
|
| 229 |
$result = wp_remote_retrieve_body( $result );
|
| 230 |
$geocoded_address = json_decode( $result );
|
| 231 |
|
| 232 |
-
if ( $geocoded_address->status ) {
|
| 233 |
if ( 'ZERO_RESULTS' === $geocoded_address->status ) {
|
| 234 |
throw new Exception( __( 'No results found', 'wp-job-manager' ) );
|
| 235 |
} elseif ( 'OVER_QUERY_LIMIT' === $geocoded_address->status ) {
|
| 229 |
$result = wp_remote_retrieve_body( $result );
|
| 230 |
$geocoded_address = json_decode( $result );
|
| 231 |
|
| 232 |
+
if ( isset( $geocoded_address->status ) ) {
|
| 233 |
if ( 'ZERO_RESULTS' === $geocoded_address->status ) {
|
| 234 |
throw new Exception( __( 'No results found', 'wp-job-manager' ) );
|
| 235 |
} elseif ( 'OVER_QUERY_LIMIT' === $geocoded_address->status ) {
|
includes/class-wp-job-manager-post-types.php
CHANGED
|
@@ -549,9 +549,22 @@ class WP_Job_Manager_Post_Types {
|
|
| 549 |
// phpcs:disable WordPress.Security.NonceVerification.Recommended -- Input used to filter public data in feed.
|
| 550 |
$input_posts_per_page = isset( $_GET['posts_per_page'] ) ? absint( $_GET['posts_per_page'] ) : 10;
|
| 551 |
$input_search_location = isset( $_GET['search_location'] ) ? sanitize_text_field( wp_unslash( $_GET['search_location'] ) ) : false;
|
| 552 |
-
|
| 553 |
-
|
| 554 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 555 |
// phpcs:enable WordPress.Security.NonceVerification.Recommended
|
| 556 |
|
| 557 |
$query_args = [
|
|
@@ -577,6 +590,14 @@ class WP_Job_Manager_Post_Types {
|
|
| 577 |
$query_args['meta_query'][] = $location_search;
|
| 578 |
}
|
| 579 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 580 |
if ( ! empty( $input_job_types ) ) {
|
| 581 |
$query_args['tax_query'][] = [
|
| 582 |
'taxonomy' => 'job_listing_type',
|
|
@@ -873,7 +894,7 @@ class WP_Job_Manager_Post_Types {
|
|
| 873 |
*
|
| 874 |
* @since 1.34.1
|
| 875 |
*
|
| 876 |
-
* @param int
|
| 877 |
* @return bool
|
| 878 |
*/
|
| 879 |
public static function job_is_editable( $job_id ) {
|
| 549 |
// phpcs:disable WordPress.Security.NonceVerification.Recommended -- Input used to filter public data in feed.
|
| 550 |
$input_posts_per_page = isset( $_GET['posts_per_page'] ) ? absint( $_GET['posts_per_page'] ) : 10;
|
| 551 |
$input_search_location = isset( $_GET['search_location'] ) ? sanitize_text_field( wp_unslash( $_GET['search_location'] ) ) : false;
|
| 552 |
+
|
| 553 |
+
if ( isset( $_GET['job_types'] ) ) {
|
| 554 |
+
$sanitized_job_types = sanitize_text_field( wp_unslash( $_GET['job_types'] ) );
|
| 555 |
+
$input_job_types = empty( $sanitized_job_types ) ? false : explode( ',', $sanitized_job_types );
|
| 556 |
+
} else {
|
| 557 |
+
$input_job_types = false;
|
| 558 |
+
}
|
| 559 |
+
|
| 560 |
+
if ( isset( $_GET['job_categories'] ) ) {
|
| 561 |
+
$sanitized_job_categories = sanitize_text_field( wp_unslash( $_GET['job_categories'] ) );
|
| 562 |
+
$input_job_categories = empty( $sanitized_job_categories ) ? false : explode( ',', $sanitized_job_categories );
|
| 563 |
+
} else {
|
| 564 |
+
$input_job_categories = false;
|
| 565 |
+
}
|
| 566 |
+
|
| 567 |
+
$job_manager_keyword = isset( $_GET['search_keywords'] ) ? sanitize_text_field( wp_unslash( $_GET['search_keywords'] ) ) : '';
|
| 568 |
// phpcs:enable WordPress.Security.NonceVerification.Recommended
|
| 569 |
|
| 570 |
$query_args = [
|
| 590 |
$query_args['meta_query'][] = $location_search;
|
| 591 |
}
|
| 592 |
|
| 593 |
+
// Hide filled positions from the job feed.
|
| 594 |
+
if ( 1 === absint( get_option( 'job_manager_hide_filled_positions' ) ) ) {
|
| 595 |
+
$query_args['meta_query'][] = [
|
| 596 |
+
'key' => '_filled',
|
| 597 |
+
'value' => '0',
|
| 598 |
+
];
|
| 599 |
+
}
|
| 600 |
+
|
| 601 |
if ( ! empty( $input_job_types ) ) {
|
| 602 |
$query_args['tax_query'][] = [
|
| 603 |
'taxonomy' => 'job_listing_type',
|
| 894 |
*
|
| 895 |
* @since 1.34.1
|
| 896 |
*
|
| 897 |
+
* @param int $job_id Job ID to check.
|
| 898 |
* @return bool
|
| 899 |
*/
|
| 900 |
public static function job_is_editable( $job_id ) {
|
includes/class-wp-job-manager-shortcodes.php
CHANGED
|
@@ -342,19 +342,26 @@ class WP_Job_Manager_Shortcodes {
|
|
| 342 |
$atts['filled'] = ( is_bool( $atts['filled'] ) && $atts['filled'] ) || in_array( $atts['filled'], [ 1, '1', 'true', 'yes' ], true );
|
| 343 |
}
|
| 344 |
|
|
|
|
|
|
|
|
|
|
| 345 |
// Get keywords, location, category and type from querystring if set.
|
| 346 |
// phpcs:disable WordPress.Security.NonceVerification.Recommended -- Input is used safely.
|
| 347 |
if ( ! empty( $_GET['search_keywords'] ) ) {
|
| 348 |
-
$atts['keywords']
|
|
|
|
| 349 |
}
|
| 350 |
if ( ! empty( $_GET['search_location'] ) ) {
|
| 351 |
-
$atts['location']
|
|
|
|
| 352 |
}
|
| 353 |
if ( ! empty( $_GET['search_category'] ) ) {
|
| 354 |
$atts['selected_category'] = sanitize_text_field( wp_unslash( $_GET['search_category'] ) );
|
|
|
|
| 355 |
}
|
| 356 |
if ( ! empty( $_GET['search_job_type'] ) ) {
|
| 357 |
$atts['selected_job_types'] = sanitize_text_field( wp_unslash( $_GET['search_job_type'] ) );
|
|
|
|
| 358 |
}
|
| 359 |
// phpcs:enable WordPress.Security.NonceVerification.Recommended
|
| 360 |
|
|
@@ -379,14 +386,15 @@ class WP_Job_Manager_Shortcodes {
|
|
| 379 |
}
|
| 380 |
|
| 381 |
$data_attributes = [
|
| 382 |
-
'location'
|
| 383 |
-
'keywords'
|
| 384 |
-
'show_filters'
|
| 385 |
-
'show_pagination'
|
| 386 |
-
'per_page'
|
| 387 |
-
'orderby'
|
| 388 |
-
'order'
|
| 389 |
-
'categories'
|
|
|
|
| 390 |
];
|
| 391 |
|
| 392 |
if ( $atts['show_filters'] ) {
|
| 342 |
$atts['filled'] = ( is_bool( $atts['filled'] ) && $atts['filled'] ) || in_array( $atts['filled'], [ 1, '1', 'true', 'yes' ], true );
|
| 343 |
}
|
| 344 |
|
| 345 |
+
// By default, use client-side state to populate form fields.
|
| 346 |
+
$disable_client_state = false;
|
| 347 |
+
|
| 348 |
// Get keywords, location, category and type from querystring if set.
|
| 349 |
// phpcs:disable WordPress.Security.NonceVerification.Recommended -- Input is used safely.
|
| 350 |
if ( ! empty( $_GET['search_keywords'] ) ) {
|
| 351 |
+
$atts['keywords'] = sanitize_text_field( wp_unslash( $_GET['search_keywords'] ) );
|
| 352 |
+
$disable_client_state = true;
|
| 353 |
}
|
| 354 |
if ( ! empty( $_GET['search_location'] ) ) {
|
| 355 |
+
$atts['location'] = sanitize_text_field( wp_unslash( $_GET['search_location'] ) );
|
| 356 |
+
$disable_client_state = true;
|
| 357 |
}
|
| 358 |
if ( ! empty( $_GET['search_category'] ) ) {
|
| 359 |
$atts['selected_category'] = sanitize_text_field( wp_unslash( $_GET['search_category'] ) );
|
| 360 |
+
$disable_client_state = true;
|
| 361 |
}
|
| 362 |
if ( ! empty( $_GET['search_job_type'] ) ) {
|
| 363 |
$atts['selected_job_types'] = sanitize_text_field( wp_unslash( $_GET['search_job_type'] ) );
|
| 364 |
+
$disable_client_state = true;
|
| 365 |
}
|
| 366 |
// phpcs:enable WordPress.Security.NonceVerification.Recommended
|
| 367 |
|
| 386 |
}
|
| 387 |
|
| 388 |
$data_attributes = [
|
| 389 |
+
'location' => $atts['location'],
|
| 390 |
+
'keywords' => $atts['keywords'],
|
| 391 |
+
'show_filters' => $atts['show_filters'] ? 'true' : 'false',
|
| 392 |
+
'show_pagination' => $atts['show_pagination'] ? 'true' : 'false',
|
| 393 |
+
'per_page' => $atts['per_page'],
|
| 394 |
+
'orderby' => $atts['orderby'],
|
| 395 |
+
'order' => $atts['order'],
|
| 396 |
+
'categories' => implode( ',', $atts['categories'] ),
|
| 397 |
+
'disable-form-state-storage' => $disable_client_state,
|
| 398 |
];
|
| 399 |
|
| 400 |
if ( $atts['show_filters'] ) {
|
includes/class-wp-job-manager-widget.php
CHANGED
|
@@ -130,7 +130,7 @@ class WP_Job_Manager_Widget extends WP_Widget {
|
|
| 130 |
}
|
| 131 |
|
| 132 |
foreach ( $this->settings as $key => $setting ) {
|
| 133 |
-
$instance[ $key ] = sanitize_text_field( $new_instance[ $key ] );
|
| 134 |
}
|
| 135 |
|
| 136 |
$this->flush_widget_cache();
|
| 130 |
}
|
| 131 |
|
| 132 |
foreach ( $this->settings as $key => $setting ) {
|
| 133 |
+
$instance[ $key ] = isset( $new_instance[ $key ] ) ? sanitize_text_field( $new_instance[ $key ] ) : '';
|
| 134 |
}
|
| 135 |
|
| 136 |
$this->flush_widget_cache();
|
includes/forms/class-wp-job-manager-form-submit-job.php
CHANGED
|
@@ -328,6 +328,22 @@ class WP_Job_Manager_Form_Submit_Job extends WP_Job_Manager_Form {
|
|
| 328 |
return 1 === absint( get_option( 'job_manager_enable_recaptcha_job_submission' ) );
|
| 329 |
}
|
| 330 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 331 |
/**
|
| 332 |
* Validates the posted fields.
|
| 333 |
*
|
|
@@ -363,6 +379,24 @@ class WP_Job_Manager_Form_Submit_Job extends WP_Job_Manager_Form {
|
|
| 363 |
}
|
| 364 |
if ( ! empty( $check_value ) ) {
|
| 365 |
foreach ( $check_value as $file_url ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 366 |
if ( is_numeric( $file_url ) ) {
|
| 367 |
continue;
|
| 368 |
}
|
|
@@ -373,24 +407,6 @@ class WP_Job_Manager_Form_Submit_Job extends WP_Job_Manager_Form {
|
|
| 373 |
}
|
| 374 |
}
|
| 375 |
}
|
| 376 |
-
if ( 'file' === $field['type'] && ! empty( $field['allowed_mime_types'] ) ) {
|
| 377 |
-
if ( is_array( $values[ $group_key ][ $key ] ) ) {
|
| 378 |
-
$check_value = array_filter( $values[ $group_key ][ $key ] );
|
| 379 |
-
} else {
|
| 380 |
-
$check_value = array_filter( [ $values[ $group_key ][ $key ] ] );
|
| 381 |
-
}
|
| 382 |
-
if ( ! empty( $check_value ) ) {
|
| 383 |
-
foreach ( $check_value as $file_url ) {
|
| 384 |
-
$file_url = current( explode( '?', $file_url ) );
|
| 385 |
-
$file_info = wp_check_filetype( $file_url );
|
| 386 |
-
|
| 387 |
-
if ( ! is_numeric( $file_url ) && $file_info && ! in_array( $file_info['type'], $field['allowed_mime_types'], true ) ) {
|
| 388 |
-
// translators: Placeholder %1$s is field label; %2$s is the file mime type; %3$s is the allowed mime-types.
|
| 389 |
-
throw new Exception( sprintf( __( '"%1$s" (filetype %2$s) needs to be one of the following file types: %3$s', 'wp-job-manager' ), $field['label'], $file_info['ext'], implode( ', ', array_keys( $field['allowed_mime_types'] ) ) ) );
|
| 390 |
-
}
|
| 391 |
-
}
|
| 392 |
-
}
|
| 393 |
-
}
|
| 394 |
if ( empty( $field['file_limit'] ) && empty( $field['multiple'] ) ) {
|
| 395 |
$field['file_limit'] = 1;
|
| 396 |
}
|
|
@@ -415,7 +431,7 @@ class WP_Job_Manager_Form_Submit_Job extends WP_Job_Manager_Form {
|
|
| 415 |
}
|
| 416 |
|
| 417 |
// Application method.
|
| 418 |
-
if ( isset( $values['job']['application'] ) && ! empty( $values['job']['application'] ) ) {
|
| 419 |
$allowed_application_method = get_option( 'job_manager_allowed_application_method', '' );
|
| 420 |
$values['job']['application'] = str_replace( ' ', '+', $values['job']['application'] );
|
| 421 |
switch ( $allowed_application_method ) {
|
| 328 |
return 1 === absint( get_option( 'job_manager_enable_recaptcha_job_submission' ) );
|
| 329 |
}
|
| 330 |
|
| 331 |
+
/**
|
| 332 |
+
* Checks if application field should use skip email / URL validation.
|
| 333 |
+
*
|
| 334 |
+
* @return bool
|
| 335 |
+
*/
|
| 336 |
+
protected function should_application_field_skip_email_url_validation() {
|
| 337 |
+
/**
|
| 338 |
+
* Force application field to skip email / URL validation.
|
| 339 |
+
*
|
| 340 |
+
* @since 1.x.x
|
| 341 |
+
*
|
| 342 |
+
* @param bool $is_forced Whether the application field is forced to skip email / URL validation.
|
| 343 |
+
*/
|
| 344 |
+
return apply_filters( 'job_manager_application_field_skip_email_url_validation', false );
|
| 345 |
+
}
|
| 346 |
+
|
| 347 |
/**
|
| 348 |
* Validates the posted fields.
|
| 349 |
*
|
| 379 |
}
|
| 380 |
if ( ! empty( $check_value ) ) {
|
| 381 |
foreach ( $check_value as $file_url ) {
|
| 382 |
+
// Check image path.
|
| 383 |
+
$baseurl = wp_upload_dir()['baseurl'];
|
| 384 |
+
if ( ! is_numeric( $file_url ) && 0 !== strpos( $file_url, $baseurl ) ) {
|
| 385 |
+
throw new Exception( __( 'Invalid image path.', 'wp-job-manager' ) );
|
| 386 |
+
}
|
| 387 |
+
|
| 388 |
+
// Check mime types.
|
| 389 |
+
if ( ! empty( $field['allowed_mime_types'] ) ) {
|
| 390 |
+
$file_url = current( explode( '?', $file_url ) );
|
| 391 |
+
$file_info = wp_check_filetype( $file_url );
|
| 392 |
+
|
| 393 |
+
if ( ! is_numeric( $file_url ) && $file_info && ! in_array( $file_info['type'], $field['allowed_mime_types'], true ) ) {
|
| 394 |
+
// translators: Placeholder %1$s is field label; %2$s is the file mime type; %3$s is the allowed mime-types.
|
| 395 |
+
throw new Exception( sprintf( __( '"%1$s" (filetype %2$s) needs to be one of the following file types: %3$s', 'wp-job-manager' ), $field['label'], $file_info['ext'], implode( ', ', array_keys( $field['allowed_mime_types'] ) ) ) );
|
| 396 |
+
}
|
| 397 |
+
}
|
| 398 |
+
|
| 399 |
+
// Check if attachment is valid.
|
| 400 |
if ( is_numeric( $file_url ) ) {
|
| 401 |
continue;
|
| 402 |
}
|
| 407 |
}
|
| 408 |
}
|
| 409 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 410 |
if ( empty( $field['file_limit'] ) && empty( $field['multiple'] ) ) {
|
| 411 |
$field['file_limit'] = 1;
|
| 412 |
}
|
| 431 |
}
|
| 432 |
|
| 433 |
// Application method.
|
| 434 |
+
if ( ! $this->should_application_field_skip_email_url_validation() && isset( $values['job']['application'] ) && ! empty( $values['job']['application'] ) ) {
|
| 435 |
$allowed_application_method = get_option( 'job_manager_allowed_application_method', '' );
|
| 436 |
$values['job']['application'] = str_replace( ' ', '+', $values['job']['application'] );
|
| 437 |
switch ( $allowed_application_method ) {
|
includes/helper/views/html-licence-key-error.php
CHANGED
|
@@ -11,5 +11,6 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
| 11 |
?>
|
| 12 |
<div class="error">
|
| 13 |
<p class="wpjm-updater-dismiss" style="float:right;"><a href="<?php echo esc_url( wp_nonce_url( add_query_arg( 'dismiss-wpjm-licence-notice', $product_slug ), 'dismiss-wpjm-licence-notice', '_wpjm_nonce' ) ); ?>"><?php esc_html_e( 'Hide notice', 'wp-job-manager' ); ?></a></p>
|
| 14 |
-
|
|
|
|
| 15 |
</div>
|
| 11 |
?>
|
| 12 |
<div class="error">
|
| 13 |
<p class="wpjm-updater-dismiss" style="float:right;"><a href="<?php echo esc_url( wp_nonce_url( add_query_arg( 'dismiss-wpjm-licence-notice', $product_slug ), 'dismiss-wpjm-licence-notice', '_wpjm_nonce' ) ); ?>"><?php esc_html_e( 'Hide notice', 'wp-job-manager' ); ?></a></p>
|
| 14 |
+
<?php // translators: %1$s is the plugin name, %2$s is the license setting page URL. ?>
|
| 15 |
+
<p><?php printf( wp_kses_post( __( 'There is a problem with the license for "%1$s". Please <a href="%2$s">manage the license</a> to check for a solution and continue receiving updates.', 'wp-job-manager' ) ), esc_html( $plugin_data['Name'] ), esc_url( admin_url( 'edit.php?post_type=job_listing&page=job-manager-addons§ion=helper#' . sanitize_title( $product_slug . '_row' ) ) ) ); ?></p>
|
| 16 |
</div>
|
includes/helper/views/html-licence-key-notice.php
CHANGED
|
@@ -11,5 +11,6 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
| 11 |
?>
|
| 12 |
<div class="updated">
|
| 13 |
<p class="wpjm-updater-dismiss" style="float:right;"><a href="<?php echo esc_url( wp_nonce_url( add_query_arg( 'dismiss-wpjm-licence-notice', $product_slug ), 'dismiss-wpjm-licence-notice', '_wpjm_nonce' ) ); ?>"><?php esc_html_e( 'Hide notice', 'wp-job-manager' ); ?></a></p>
|
| 14 |
-
|
|
|
|
| 15 |
</div>
|
| 11 |
?>
|
| 12 |
<div class="updated">
|
| 13 |
<p class="wpjm-updater-dismiss" style="float:right;"><a href="<?php echo esc_url( wp_nonce_url( add_query_arg( 'dismiss-wpjm-licence-notice', $product_slug ), 'dismiss-wpjm-licence-notice', '_wpjm_nonce' ) ); ?>"><?php esc_html_e( 'Hide notice', 'wp-job-manager' ); ?></a></p>
|
| 14 |
+
<?php // translators: %1$s is the license setting page URL, %2$s is the plugin name. ?>
|
| 15 |
+
<p><?php printf( wp_kses_post( __( '<a href="%1$s">Please enter your license key</a> to get updates for "%2$s".', 'wp-job-manager' ) ), esc_url( admin_url( 'edit.php?post_type=job_listing&page=job-manager-addons§ion=helper#' . sanitize_title( $product_slug . '_row' ) ) ), esc_html( $plugin_data['Name'] ) ); ?></p>
|
| 16 |
</div>
|
includes/helper/views/html-licences.php
CHANGED
|
@@ -57,7 +57,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
| 57 |
<input type="text" disabled="disabled" id="<?php echo esc_attr( sanitize_title( $product_slug ) ); ?>_licence_key" name="licence_key" placeholder="XXXX-XXXX-XXXX-XXXX" value="<?php echo esc_attr( $licence['licence_key'] ); ?>"/>
|
| 58 |
</label>
|
| 59 |
<label for="<?php echo esc_attr( sanitize_title( $product_slug ) ); ?>_email"><?php esc_html_e( 'Email', 'wp-job-manager' ); ?>:
|
| 60 |
-
<input type="email" disabled="disabled" id="<?php echo esc_attr( sanitize_title( $product_slug ) ); ?>_email" name="email" placeholder="Email address" value="<?php echo esc_attr( $licence['email'] ); ?>"/>
|
| 61 |
</label>
|
| 62 |
|
| 63 |
<input type="submit" class="button" name="submit" value="<?php esc_attr_e( 'Deactivate License', 'wp-job-manager' ); ?>" />
|
|
@@ -70,7 +70,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
| 70 |
<input type="text" id="<?php echo esc_attr( sanitize_title( $product_slug ) ); ?>_licence_key" name="licence_key" placeholder="XXXX-XXXX-XXXX-XXXX"/>
|
| 71 |
</label>
|
| 72 |
<label for="<?php echo esc_attr( sanitize_title( $product_slug ) ); ?>_email"><?php esc_html_e( 'Email', 'wp-job-manager' ); ?>:
|
| 73 |
-
<input type="email" id="<?php echo esc_attr( sanitize_title( $product_slug ) ); ?>_email" name="email" placeholder="Email address" value="<?php echo esc_attr( get_option( 'admin_email' ) ); ?>"/>
|
| 74 |
</label>
|
| 75 |
<input type="submit" class="button" name="submit" value="<?php esc_attr_e( 'Activate License', 'wp-job-manager' ); ?>" />
|
| 76 |
<?php
|
|
@@ -80,7 +80,8 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
| 80 |
</div>
|
| 81 |
</div>
|
| 82 |
<?php endforeach; ?>
|
| 83 |
-
|
|
|
|
| 84 |
<?php else : ?>
|
| 85 |
<div class="notice notice-warning inline"><p><?php esc_html_e( 'No plugins are activated that have licenses managed by WP Job Manager.', 'wp-job-manager' ); ?></p></div>
|
| 86 |
<?php endif; ?>
|
| 57 |
<input type="text" disabled="disabled" id="<?php echo esc_attr( sanitize_title( $product_slug ) ); ?>_licence_key" name="licence_key" placeholder="XXXX-XXXX-XXXX-XXXX" value="<?php echo esc_attr( $licence['licence_key'] ); ?>"/>
|
| 58 |
</label>
|
| 59 |
<label for="<?php echo esc_attr( sanitize_title( $product_slug ) ); ?>_email"><?php esc_html_e( 'Email', 'wp-job-manager' ); ?>:
|
| 60 |
+
<input type="email" disabled="disabled" id="<?php echo esc_attr( sanitize_title( $product_slug ) ); ?>_email" name="email" placeholder="<?php esc_attr_e( 'Email address', 'wp-job-manager' ); ?>" value="<?php echo esc_attr( $licence['email'] ); ?>"/>
|
| 61 |
</label>
|
| 62 |
|
| 63 |
<input type="submit" class="button" name="submit" value="<?php esc_attr_e( 'Deactivate License', 'wp-job-manager' ); ?>" />
|
| 70 |
<input type="text" id="<?php echo esc_attr( sanitize_title( $product_slug ) ); ?>_licence_key" name="licence_key" placeholder="XXXX-XXXX-XXXX-XXXX"/>
|
| 71 |
</label>
|
| 72 |
<label for="<?php echo esc_attr( sanitize_title( $product_slug ) ); ?>_email"><?php esc_html_e( 'Email', 'wp-job-manager' ); ?>:
|
| 73 |
+
<input type="email" id="<?php echo esc_attr( sanitize_title( $product_slug ) ); ?>_email" name="email" placeholder="<?php esc_attr_e( 'Email address', 'wp-job-manager' ); ?>" value="<?php echo esc_attr( get_option( 'admin_email' ) ); ?>"/>
|
| 74 |
</label>
|
| 75 |
<input type="submit" class="button" name="submit" value="<?php esc_attr_e( 'Activate License', 'wp-job-manager' ); ?>" />
|
| 76 |
<?php
|
| 80 |
</div>
|
| 81 |
</div>
|
| 82 |
<?php endforeach; ?>
|
| 83 |
+
<?php // translators: Placeholder %s is the lost license key URL. ?>
|
| 84 |
+
<div class="notice notice-info inline"><p><?php printf( wp_kses_post( __( 'Lost your license key? <a href="%s">Retrieve it here</a>.', 'wp-job-manager' ) ), 'https://wpjobmanager.com/lost-licence-key/' ); ?></p></div>
|
| 85 |
<?php else : ?>
|
| 86 |
<div class="notice notice-warning inline"><p><?php esc_html_e( 'No plugins are activated that have licenses managed by WP Job Manager.', 'wp-job-manager' ); ?></p></div>
|
| 87 |
<?php endif; ?>
|
languages/wp-job-manager.pot
CHANGED
|
@@ -1,14 +1,14 @@
|
|
| 1 |
-
# Copyright (C)
|
| 2 |
# This file is distributed under the GPL2+.
|
| 3 |
msgid ""
|
| 4 |
msgstr ""
|
| 5 |
-
"Project-Id-Version: WP Job Manager 1.34.
|
| 6 |
"Report-Msgid-Bugs-To: https://github.com/Automattic/WP-Job-Manager/issues\n"
|
| 7 |
-
"POT-Creation-Date:
|
| 8 |
"MIME-Version: 1.0\n"
|
| 9 |
"Content-Type: text/plain; charset=utf-8\n"
|
| 10 |
"Content-Transfer-Encoding: 8bit\n"
|
| 11 |
-
"PO-Revision-Date:
|
| 12 |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
| 13 |
"Language-Team: LANGUAGE <EMAIL@ADDRESS>\n"
|
| 14 |
"X-Generator: grunt-wp-i18n 1.0.3\n"
|
|
@@ -23,8 +23,8 @@ msgstr ""
|
|
| 23 |
msgid "<a href=\"%s\">Switch to primary language</a> to edit this setting."
|
| 24 |
msgstr ""
|
| 25 |
|
| 26 |
-
#: includes/abstracts/abstract-wp-job-manager-form.php:
|
| 27 |
-
#: includes/abstracts/abstract-wp-job-manager-form.php:
|
| 28 |
#. translators: Placeholder is for the label of the reCAPTCHA field.
|
| 29 |
#. translators: %s is the name of the form validation that failed.
|
| 30 |
msgid "\"%s\" check failed. Please try again."
|
|
@@ -201,7 +201,7 @@ msgstr ""
|
|
| 201 |
|
| 202 |
#: includes/admin/class-wp-job-manager-cpt.php:497
|
| 203 |
#: includes/class-wp-job-manager-email-notifications.php:270
|
| 204 |
-
#: includes/class-wp-job-manager-post-types.php:
|
| 205 |
#: includes/forms/class-wp-job-manager-form-submit-job.php:213
|
| 206 |
#: includes/widgets/class-wp-job-manager-widget-recent-jobs.php:46
|
| 207 |
#: templates/job-filters.php:35 templates/job-filters.php:36
|
|
@@ -243,6 +243,10 @@ msgstr ""
|
|
| 243 |
msgid "ID: %d"
|
| 244 |
msgstr ""
|
| 245 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 246 |
#: includes/admin/class-wp-job-manager-cpt.php:613
|
| 247 |
#. translators: %s placeholder is the username of the user.
|
| 248 |
msgid "by a guest"
|
|
@@ -712,11 +716,11 @@ msgstr ""
|
|
| 712 |
msgid "Save Changes"
|
| 713 |
msgstr ""
|
| 714 |
|
| 715 |
-
#: includes/admin/class-wp-job-manager-settings.php:
|
| 716 |
msgid "--no page--"
|
| 717 |
msgstr ""
|
| 718 |
|
| 719 |
-
#: includes/admin/class-wp-job-manager-settings.php:
|
| 720 |
msgid "Select a page…"
|
| 721 |
msgstr ""
|
| 722 |
|
|
@@ -724,6 +728,10 @@ msgstr ""
|
|
| 724 |
msgid "Setup"
|
| 725 |
msgstr ""
|
| 726 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 727 |
#: includes/admin/class-wp-job-manager-taxonomy-meta.php:87
|
| 728 |
#: includes/admin/class-wp-job-manager-taxonomy-meta.php:110
|
| 729 |
#: includes/admin/class-wp-job-manager-taxonomy-meta.php:129
|
|
@@ -1012,27 +1020,27 @@ msgid "Company Logo"
|
|
| 1012 |
msgstr ""
|
| 1013 |
|
| 1014 |
#: includes/class-wp-job-manager-data-exporter.php:52
|
| 1015 |
-
#: includes/class-wp-job-manager-post-types.php:
|
| 1016 |
msgid "Company Name"
|
| 1017 |
msgstr ""
|
| 1018 |
|
| 1019 |
#: includes/class-wp-job-manager-data-exporter.php:53
|
| 1020 |
-
#: includes/class-wp-job-manager-post-types.php:
|
| 1021 |
msgid "Company Website"
|
| 1022 |
msgstr ""
|
| 1023 |
|
| 1024 |
#: includes/class-wp-job-manager-data-exporter.php:54
|
| 1025 |
-
#: includes/class-wp-job-manager-post-types.php:
|
| 1026 |
msgid "Company Tagline"
|
| 1027 |
msgstr ""
|
| 1028 |
|
| 1029 |
#: includes/class-wp-job-manager-data-exporter.php:55
|
| 1030 |
-
#: includes/class-wp-job-manager-post-types.php:
|
| 1031 |
msgid "Company Twitter"
|
| 1032 |
msgstr ""
|
| 1033 |
|
| 1034 |
#: includes/class-wp-job-manager-data-exporter.php:56
|
| 1035 |
-
#: includes/class-wp-job-manager-post-types.php:
|
| 1036 |
msgid "Company Video"
|
| 1037 |
msgstr ""
|
| 1038 |
|
|
@@ -1057,9 +1065,13 @@ msgstr ""
|
|
| 1057 |
msgid "(opens in a new tab)"
|
| 1058 |
msgstr ""
|
| 1059 |
|
| 1060 |
-
#: includes/class-wp-job-manager-dependency-checker.php:
|
| 1061 |
#. translators: %s is the URL for the page where users can go to update
|
| 1062 |
#. WordPress.
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1063 |
msgid "<strong>WP Job Manager</strong> requires a more recent version of WordPress."
|
| 1064 |
msgstr ""
|
| 1065 |
|
|
@@ -1301,78 +1313,78 @@ msgid_plural "Preview <span class=\"count\">(%s)</span>"
|
|
| 1301 |
msgstr[0] ""
|
| 1302 |
msgstr[1] ""
|
| 1303 |
|
| 1304 |
-
#: includes/class-wp-job-manager-post-types.php:
|
| 1305 |
#: includes/forms/class-wp-job-manager-form-submit-job.php:190
|
| 1306 |
msgid "Application email/URL"
|
| 1307 |
msgstr ""
|
| 1308 |
|
| 1309 |
-
#: includes/class-wp-job-manager-post-types.php:
|
| 1310 |
#: includes/forms/class-wp-job-manager-form-submit-job.php:191
|
| 1311 |
msgid "Enter an email address or website URL"
|
| 1312 |
msgstr ""
|
| 1313 |
|
| 1314 |
-
#: includes/class-wp-job-manager-post-types.php:
|
| 1315 |
#: includes/forms/class-wp-job-manager-form-submit-job.php:180
|
| 1316 |
msgid "Application email"
|
| 1317 |
msgstr ""
|
| 1318 |
|
| 1319 |
-
#: includes/class-wp-job-manager-post-types.php:
|
| 1320 |
#: includes/forms/class-wp-job-manager-form-submit-job.php:181
|
| 1321 |
msgid "you@example.com"
|
| 1322 |
msgstr ""
|
| 1323 |
|
| 1324 |
-
#: includes/class-wp-job-manager-post-types.php:
|
| 1325 |
#: includes/forms/class-wp-job-manager-form-submit-job.php:185
|
| 1326 |
msgid "Application URL"
|
| 1327 |
msgstr ""
|
| 1328 |
|
| 1329 |
-
#: includes/class-wp-job-manager-post-types.php:
|
| 1330 |
#: includes/forms/class-wp-job-manager-form-submit-job.php:186
|
| 1331 |
msgid "https://"
|
| 1332 |
msgstr ""
|
| 1333 |
|
| 1334 |
-
#: includes/class-wp-job-manager-post-types.php:
|
| 1335 |
#: includes/forms/class-wp-job-manager-form-submit-job.php:217
|
| 1336 |
msgid "e.g. \"London\""
|
| 1337 |
msgstr ""
|
| 1338 |
|
| 1339 |
-
#: includes/class-wp-job-manager-post-types.php:
|
| 1340 |
msgid "Leave this blank if the location is not important."
|
| 1341 |
msgstr ""
|
| 1342 |
|
| 1343 |
-
#: includes/class-wp-job-manager-post-types.php:
|
| 1344 |
msgid ""
|
| 1345 |
"This field is required for the \"application\" area to appear beneath the "
|
| 1346 |
"listing."
|
| 1347 |
msgstr ""
|
| 1348 |
|
| 1349 |
-
#: includes/class-wp-job-manager-post-types.php:
|
| 1350 |
msgid "Brief description about the company"
|
| 1351 |
msgstr ""
|
| 1352 |
|
| 1353 |
-
#: includes/class-wp-job-manager-post-types.php:
|
| 1354 |
msgid "URL to the company video"
|
| 1355 |
msgstr ""
|
| 1356 |
|
| 1357 |
-
#: includes/class-wp-job-manager-post-types.php:
|
| 1358 |
msgid "Position Filled"
|
| 1359 |
msgstr ""
|
| 1360 |
|
| 1361 |
-
#: includes/class-wp-job-manager-post-types.php:
|
| 1362 |
msgid "Filled listings will no longer accept applications."
|
| 1363 |
msgstr ""
|
| 1364 |
|
| 1365 |
-
#: includes/class-wp-job-manager-post-types.php:
|
| 1366 |
msgid "Featured Listing"
|
| 1367 |
msgstr ""
|
| 1368 |
|
| 1369 |
-
#: includes/class-wp-job-manager-post-types.php:
|
| 1370 |
msgid ""
|
| 1371 |
"Featured listings will be sticky during searches, and can be styled "
|
| 1372 |
"differently."
|
| 1373 |
msgstr ""
|
| 1374 |
|
| 1375 |
-
#: includes/class-wp-job-manager-post-types.php:
|
| 1376 |
msgid "Listing Expiry Date"
|
| 1377 |
msgstr ""
|
| 1378 |
|
|
@@ -1423,8 +1435,8 @@ msgstr ""
|
|
| 1423 |
msgid "Listing Expires"
|
| 1424 |
msgstr ""
|
| 1425 |
|
| 1426 |
-
#: includes/class-wp-job-manager-shortcodes.php:
|
| 1427 |
-
#: includes/class-wp-job-manager-shortcodes.php:
|
| 1428 |
msgid "Load more listings"
|
| 1429 |
msgstr ""
|
| 1430 |
|
|
@@ -1470,7 +1482,7 @@ msgid "Invalid file type. Accepted types:"
|
|
| 1470 |
msgstr ""
|
| 1471 |
|
| 1472 |
#: includes/class-wp-job-manager.php:439
|
| 1473 |
-
#: includes/forms/class-wp-job-manager-form-submit-job.php:
|
| 1474 |
#. translators: Placeholder %d is the number of files to that users are limited
|
| 1475 |
#. to.
|
| 1476 |
msgid "You are only allowed to upload a maximum of %d files."
|
|
@@ -1574,7 +1586,7 @@ msgid "Submit Details"
|
|
| 1574 |
msgstr ""
|
| 1575 |
|
| 1576 |
#: includes/forms/class-wp-job-manager-form-submit-job.php:88
|
| 1577 |
-
#: includes/forms/class-wp-job-manager-form-submit-job.php:
|
| 1578 |
#: templates/job-preview.php:30
|
| 1579 |
msgid "Preview"
|
| 1580 |
msgstr ""
|
|
@@ -1640,22 +1652,22 @@ msgstr ""
|
|
| 1640 |
msgid "Logo"
|
| 1641 |
msgstr ""
|
| 1642 |
|
| 1643 |
-
#: includes/forms/class-wp-job-manager-form-submit-job.php:
|
| 1644 |
#. translators: Placeholder %s is the label for the required field.
|
| 1645 |
msgid "%s is a required field"
|
| 1646 |
msgstr ""
|
| 1647 |
|
| 1648 |
-
#: includes/forms/class-wp-job-manager-form-submit-job.php:
|
| 1649 |
#. translators: Placeholder %s is the field label that is did not validate.
|
| 1650 |
msgid "%s is invalid"
|
| 1651 |
msgstr ""
|
| 1652 |
|
| 1653 |
-
#: includes/forms/class-wp-job-manager-form-submit-job.php:
|
| 1654 |
-
msgid "Invalid
|
| 1655 |
msgstr ""
|
| 1656 |
|
| 1657 |
-
#: includes/forms/class-wp-job-manager-form-submit-job.php:
|
| 1658 |
-
#: wp-job-manager-functions.php:
|
| 1659 |
#. translators: Placeholder %1$s is field label; %2$s is the file mime type;
|
| 1660 |
#. %3$s is the allowed mime-types.
|
| 1661 |
#. translators: %1$s is the file field label; %2$s is the file type; %3$s is
|
|
@@ -1663,48 +1675,52 @@ msgstr ""
|
|
| 1663 |
msgid "\"%1$s\" (filetype %2$s) needs to be one of the following file types: %3$s"
|
| 1664 |
msgstr ""
|
| 1665 |
|
| 1666 |
-
#: includes/forms/class-wp-job-manager-form-submit-job.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1667 |
msgid "Please enter a valid application email address"
|
| 1668 |
msgstr ""
|
| 1669 |
|
| 1670 |
-
#: includes/forms/class-wp-job-manager-form-submit-job.php:
|
| 1671 |
msgid "Please enter a valid application URL"
|
| 1672 |
msgstr ""
|
| 1673 |
|
| 1674 |
-
#: includes/forms/class-wp-job-manager-form-submit-job.php:
|
| 1675 |
msgid "Please enter a valid application email address or URL"
|
| 1676 |
msgstr ""
|
| 1677 |
|
| 1678 |
-
#: includes/forms/class-wp-job-manager-form-submit-job.php:
|
| 1679 |
msgid "Please enter a username."
|
| 1680 |
msgstr ""
|
| 1681 |
|
| 1682 |
-
#: includes/forms/class-wp-job-manager-form-submit-job.php:
|
| 1683 |
msgid "Please enter a password."
|
| 1684 |
msgstr ""
|
| 1685 |
|
| 1686 |
-
#: includes/forms/class-wp-job-manager-form-submit-job.php:
|
| 1687 |
msgid "Please enter your email address."
|
| 1688 |
msgstr ""
|
| 1689 |
|
| 1690 |
-
#: includes/forms/class-wp-job-manager-form-submit-job.php:
|
| 1691 |
msgid "Passwords must match."
|
| 1692 |
msgstr ""
|
| 1693 |
|
| 1694 |
-
#: includes/forms/class-wp-job-manager-form-submit-job.php:
|
| 1695 |
#. translators: Placeholder %s is the password hint.
|
| 1696 |
msgid "Invalid Password: %s"
|
| 1697 |
msgstr ""
|
| 1698 |
|
| 1699 |
-
#: includes/forms/class-wp-job-manager-form-submit-job.php:
|
| 1700 |
msgid "Password is not valid."
|
| 1701 |
msgstr ""
|
| 1702 |
|
| 1703 |
-
#: includes/forms/class-wp-job-manager-form-submit-job.php:
|
| 1704 |
msgid "You must be signed in to post a new listing."
|
| 1705 |
msgstr ""
|
| 1706 |
|
| 1707 |
-
#: includes/forms/class-wp-job-manager-form-submit-job.php:
|
| 1708 |
#. translators: placeholder is the URL to the job dashboard page.
|
| 1709 |
msgid ""
|
| 1710 |
"Draft was saved. Job listing drafts can be resumed from the <a "
|
|
@@ -1755,6 +1771,21 @@ msgstr ""
|
|
| 1755 |
msgid "Hide notice"
|
| 1756 |
msgstr ""
|
| 1757 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1758 |
#: includes/helper/views/html-licences.php:56
|
| 1759 |
#: includes/helper/views/html-licences.php:69
|
| 1760 |
msgid "License"
|
|
@@ -1765,11 +1796,21 @@ msgstr ""
|
|
| 1765 |
msgid "Email"
|
| 1766 |
msgstr ""
|
| 1767 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1768 |
#: includes/helper/views/html-licences.php:63
|
| 1769 |
msgid "Deactivate License"
|
| 1770 |
msgstr ""
|
| 1771 |
|
| 1772 |
-
#: includes/helper/views/html-licences.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1773 |
msgid "No plugins are activated that have licenses managed by WP Job Manager."
|
| 1774 |
msgstr ""
|
| 1775 |
|
|
@@ -1863,41 +1904,43 @@ msgstr ""
|
|
| 1863 |
msgid "Your account"
|
| 1864 |
msgstr ""
|
| 1865 |
|
| 1866 |
-
#: templates/account-signin.php:
|
|
|
|
| 1867 |
msgid "You are currently signed in as <strong>%s</strong>."
|
| 1868 |
msgstr ""
|
| 1869 |
|
| 1870 |
-
#: templates/account-signin.php:
|
| 1871 |
msgid "Sign out"
|
| 1872 |
msgstr ""
|
| 1873 |
|
| 1874 |
-
#: templates/account-signin.php:
|
| 1875 |
msgid "Have an account?"
|
| 1876 |
msgstr ""
|
| 1877 |
|
| 1878 |
-
#: templates/account-signin.php:
|
| 1879 |
msgid "Sign in"
|
| 1880 |
msgstr ""
|
| 1881 |
|
| 1882 |
-
#: templates/account-signin.php:
|
|
|
|
| 1883 |
msgid ""
|
| 1884 |
"If you don't have an account you can %screate one below by entering your "
|
| 1885 |
"email address/username."
|
| 1886 |
msgstr ""
|
| 1887 |
|
| 1888 |
-
#: templates/account-signin.php:
|
| 1889 |
msgid "optionally"
|
| 1890 |
msgstr ""
|
| 1891 |
|
| 1892 |
-
#: templates/account-signin.php:
|
| 1893 |
msgid "Your account details will be confirmed via email."
|
| 1894 |
msgstr ""
|
| 1895 |
|
| 1896 |
-
#: templates/account-signin.php:
|
| 1897 |
msgid "You must sign in to create a new listing."
|
| 1898 |
msgstr ""
|
| 1899 |
|
| 1900 |
-
#: templates/account-signin.php:
|
| 1901 |
#: templates/job-submit.php:60
|
| 1902 |
msgid "(optional)"
|
| 1903 |
msgstr ""
|
|
@@ -1939,81 +1982,104 @@ msgstr ""
|
|
| 1939 |
msgid "Visit <a href=\"%s\">WordPress admin</a> to manage the listing."
|
| 1940 |
msgstr ""
|
| 1941 |
|
| 1942 |
-
#: templates/emails/admin-new-job.php:
|
|
|
|
|
|
|
| 1943 |
msgid "A new job listing has been submitted to <a href=\"%s\">%s</a>."
|
| 1944 |
msgstr ""
|
| 1945 |
|
| 1946 |
-
#: templates/emails/admin-new-job.php:
|
| 1947 |
-
#: templates/emails/plain/admin-new-job.php:
|
| 1948 |
msgid "It has been published and is now available to the public."
|
| 1949 |
msgstr ""
|
| 1950 |
|
| 1951 |
-
#: templates/emails/admin-new-job.php:
|
|
|
|
| 1952 |
msgid ""
|
| 1953 |
"It is awaiting approval by an administrator in <a href=\"%s\">WordPress "
|
| 1954 |
"admin</a>."
|
| 1955 |
msgstr ""
|
| 1956 |
|
| 1957 |
-
#: templates/emails/admin-updated-job.php:
|
|
|
|
|
|
|
| 1958 |
msgid "A job listing has been updated on <a href=\"%s\">%s</a>."
|
| 1959 |
msgstr ""
|
| 1960 |
|
| 1961 |
-
#: templates/emails/admin-updated-job.php:
|
| 1962 |
-
#: templates/emails/plain/admin-updated-job.php:
|
| 1963 |
msgid "The changes have been published and are now available to the public."
|
| 1964 |
msgstr ""
|
| 1965 |
|
| 1966 |
-
#: templates/emails/admin-updated-job.php:
|
|
|
|
| 1967 |
msgid ""
|
| 1968 |
"The job listing is not publicly available until the changes are approved by "
|
| 1969 |
"an administrator in the site's <a href=\"%s\">WordPress admin</a>."
|
| 1970 |
msgstr ""
|
| 1971 |
|
| 1972 |
-
#: templates/emails/employer-expiring-job.php:
|
|
|
|
|
|
|
| 1973 |
msgid "The following job listing is expiring today from <a href=\"%s\">%s</a>."
|
| 1974 |
msgstr ""
|
| 1975 |
|
| 1976 |
-
#: templates/emails/employer-expiring-job.php:
|
|
|
|
|
|
|
| 1977 |
msgid "The following job listing is expiring soon from <a href=\"%s\">%s</a>."
|
| 1978 |
msgstr ""
|
| 1979 |
|
| 1980 |
-
#: templates/emails/employer-expiring-job.php:
|
|
|
|
| 1981 |
msgid "Visit the <a href=\"%s\">job listing dashboard</a> to manage the listing."
|
| 1982 |
msgstr ""
|
| 1983 |
|
| 1984 |
-
#: templates/emails/plain/admin-expiring-job.php:
|
| 1985 |
-
#: templates/emails/plain/employer-expiring-job.php:
|
| 1986 |
-
|
|
|
|
|
|
|
| 1987 |
msgstr ""
|
| 1988 |
|
| 1989 |
-
#: templates/emails/plain/admin-expiring-job.php:
|
| 1990 |
-
#: templates/emails/plain/employer-expiring-job.php:
|
| 1991 |
-
|
|
|
|
|
|
|
| 1992 |
msgstr ""
|
| 1993 |
|
| 1994 |
-
#: templates/emails/plain/admin-expiring-job.php:
|
|
|
|
| 1995 |
msgid "Visit WordPress admin (%s) to manage the listing."
|
| 1996 |
msgstr ""
|
| 1997 |
|
| 1998 |
-
#: templates/emails/plain/admin-new-job.php:
|
| 1999 |
-
|
|
|
|
|
|
|
| 2000 |
msgstr ""
|
| 2001 |
|
| 2002 |
-
#: templates/emails/plain/admin-new-job.php:
|
|
|
|
| 2003 |
msgid "It is awaiting approval by an administrator in WordPress admin (%s)."
|
| 2004 |
msgstr ""
|
| 2005 |
|
| 2006 |
-
#: templates/emails/plain/admin-updated-job.php:
|
| 2007 |
-
|
|
|
|
|
|
|
| 2008 |
msgstr ""
|
| 2009 |
|
| 2010 |
-
#: templates/emails/plain/admin-updated-job.php:
|
|
|
|
| 2011 |
msgid ""
|
| 2012 |
"The job listing is not publicly available until the changes are approved by "
|
| 2013 |
"an administrator in the site's WordPress admin (%s)."
|
| 2014 |
msgstr ""
|
| 2015 |
|
| 2016 |
-
#: templates/emails/plain/employer-expiring-job.php:
|
|
|
|
| 2017 |
msgid "Visit the job listing dashboard (%s) to manage the listing."
|
| 2018 |
msgstr ""
|
| 2019 |
|
|
@@ -2022,12 +2088,12 @@ msgid "Maximum file size: %s."
|
|
| 2022 |
msgstr ""
|
| 2023 |
|
| 2024 |
#: templates/form-fields/multiselect-field.php:20
|
| 2025 |
-
#: wp-job-manager-functions.php:
|
| 2026 |
msgid "No results match"
|
| 2027 |
msgstr ""
|
| 2028 |
|
| 2029 |
#: templates/form-fields/multiselect-field.php:20
|
| 2030 |
-
#: wp-job-manager-functions.php:
|
| 2031 |
msgid "Select Some Options"
|
| 2032 |
msgstr ""
|
| 2033 |
|
|
@@ -2036,7 +2102,8 @@ msgstr ""
|
|
| 2036 |
msgid "remove"
|
| 2037 |
msgstr ""
|
| 2038 |
|
| 2039 |
-
#: templates/job-application-email.php:
|
|
|
|
| 2040 |
msgid ""
|
| 2041 |
"To apply for this job <strong>email your details to</strong> <a "
|
| 2042 |
"class=\"job_application_email\" href=\"mailto:%1$s%2$s\">%1$s</a>"
|
|
@@ -2132,11 +2199,16 @@ msgstr ""
|
|
| 2132 |
msgid "Save Draft"
|
| 2133 |
msgstr ""
|
| 2134 |
|
| 2135 |
-
#: templates/job-submitted.php:
|
| 2136 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2137 |
msgstr ""
|
| 2138 |
|
| 2139 |
-
#: templates/job-submitted.php:
|
|
|
|
| 2140 |
msgid "%s submitted successfully. Your listing will be visible once approved."
|
| 2141 |
msgstr ""
|
| 2142 |
|
|
@@ -2196,11 +2268,11 @@ msgstr ""
|
|
| 2196 |
msgid "Passwords must be at least 8 characters long."
|
| 2197 |
msgstr ""
|
| 2198 |
|
| 2199 |
-
#: wp-job-manager-functions.php:
|
| 2200 |
msgid "Choose a category…"
|
| 2201 |
msgstr ""
|
| 2202 |
|
| 2203 |
-
#: wp-job-manager-functions.php:
|
| 2204 |
#. translators: %s is the list of allowed file types.
|
| 2205 |
msgid "Uploaded files need to be one of the following file types: %s"
|
| 2206 |
msgstr ""
|
|
@@ -2294,19 +2366,19 @@ msgid "Searching…"
|
|
| 2294 |
msgstr ""
|
| 2295 |
|
| 2296 |
#: includes/admin/class-wp-job-manager-permalink-settings.php:108
|
| 2297 |
-
#: includes/class-wp-job-manager-post-types.php:
|
| 2298 |
msgctxt "Job permalink - resave permalinks after changing this"
|
| 2299 |
msgid "job"
|
| 2300 |
msgstr ""
|
| 2301 |
|
| 2302 |
#: includes/admin/class-wp-job-manager-permalink-settings.php:117
|
| 2303 |
-
#: includes/class-wp-job-manager-post-types.php:
|
| 2304 |
msgctxt "Job category slug - resave permalinks after changing this"
|
| 2305 |
msgid "job-category"
|
| 2306 |
msgstr ""
|
| 2307 |
|
| 2308 |
#: includes/admin/class-wp-job-manager-permalink-settings.php:126
|
| 2309 |
-
#: includes/class-wp-job-manager-post-types.php:
|
| 2310 |
msgctxt "Job type slug - resave permalinks after changing this"
|
| 2311 |
msgid "job-type"
|
| 2312 |
msgstr ""
|
|
@@ -2358,7 +2430,7 @@ msgctxt "post status"
|
|
| 2358 |
msgid "Active"
|
| 2359 |
msgstr ""
|
| 2360 |
|
| 2361 |
-
#: includes/class-wp-job-manager-post-types.php:
|
| 2362 |
msgctxt "Post type archive slug - resave permalinks after changing this"
|
| 2363 |
msgid "jobs"
|
| 2364 |
msgstr ""
|
| 1 |
+
# Copyright (C) 2020 Automattic
|
| 2 |
# This file is distributed under the GPL2+.
|
| 3 |
msgid ""
|
| 4 |
msgstr ""
|
| 5 |
+
"Project-Id-Version: WP Job Manager 1.34.2\n"
|
| 6 |
"Report-Msgid-Bugs-To: https://github.com/Automattic/WP-Job-Manager/issues\n"
|
| 7 |
+
"POT-Creation-Date: 2020-05-28 16:26:54+00:00\n"
|
| 8 |
"MIME-Version: 1.0\n"
|
| 9 |
"Content-Type: text/plain; charset=utf-8\n"
|
| 10 |
"Content-Transfer-Encoding: 8bit\n"
|
| 11 |
+
"PO-Revision-Date: 2020-MO-DA HO:MI+ZONE\n"
|
| 12 |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
| 13 |
"Language-Team: LANGUAGE <EMAIL@ADDRESS>\n"
|
| 14 |
"X-Generator: grunt-wp-i18n 1.0.3\n"
|
| 23 |
msgid "<a href=\"%s\">Switch to primary language</a> to edit this setting."
|
| 24 |
msgstr ""
|
| 25 |
|
| 26 |
+
#: includes/abstracts/abstract-wp-job-manager-form.php:378
|
| 27 |
+
#: includes/abstracts/abstract-wp-job-manager-form.php:394
|
| 28 |
#. translators: Placeholder is for the label of the reCAPTCHA field.
|
| 29 |
#. translators: %s is the name of the form validation that failed.
|
| 30 |
msgid "\"%s\" check failed. Please try again."
|
| 201 |
|
| 202 |
#: includes/admin/class-wp-job-manager-cpt.php:497
|
| 203 |
#: includes/class-wp-job-manager-email-notifications.php:270
|
| 204 |
+
#: includes/class-wp-job-manager-post-types.php:1275
|
| 205 |
#: includes/forms/class-wp-job-manager-form-submit-job.php:213
|
| 206 |
#: includes/widgets/class-wp-job-manager-widget-recent-jobs.php:46
|
| 207 |
#: templates/job-filters.php:35 templates/job-filters.php:36
|
| 243 |
msgid "ID: %d"
|
| 244 |
msgstr ""
|
| 245 |
|
| 246 |
+
#: includes/admin/class-wp-job-manager-cpt.php:583
|
| 247 |
+
msgid "Show more details"
|
| 248 |
+
msgstr ""
|
| 249 |
+
|
| 250 |
#: includes/admin/class-wp-job-manager-cpt.php:613
|
| 251 |
#. translators: %s placeholder is the username of the user.
|
| 252 |
msgid "by a guest"
|
| 716 |
msgid "Save Changes"
|
| 717 |
msgstr ""
|
| 718 |
|
| 719 |
+
#: includes/admin/class-wp-job-manager-settings.php:641
|
| 720 |
msgid "--no page--"
|
| 721 |
msgstr ""
|
| 722 |
|
| 723 |
+
#: includes/admin/class-wp-job-manager-settings.php:647
|
| 724 |
msgid "Select a page…"
|
| 725 |
msgstr ""
|
| 726 |
|
| 728 |
msgid "Setup"
|
| 729 |
msgstr ""
|
| 730 |
|
| 731 |
+
#: includes/admin/class-wp-job-manager-setup.php:126
|
| 732 |
+
msgid "Error in nonce. Try again."
|
| 733 |
+
msgstr ""
|
| 734 |
+
|
| 735 |
#: includes/admin/class-wp-job-manager-taxonomy-meta.php:87
|
| 736 |
#: includes/admin/class-wp-job-manager-taxonomy-meta.php:110
|
| 737 |
#: includes/admin/class-wp-job-manager-taxonomy-meta.php:129
|
| 1020 |
msgstr ""
|
| 1021 |
|
| 1022 |
#: includes/class-wp-job-manager-data-exporter.php:52
|
| 1023 |
+
#: includes/class-wp-job-manager-post-types.php:1294
|
| 1024 |
msgid "Company Name"
|
| 1025 |
msgstr ""
|
| 1026 |
|
| 1027 |
#: includes/class-wp-job-manager-data-exporter.php:53
|
| 1028 |
+
#: includes/class-wp-job-manager-post-types.php:1302
|
| 1029 |
msgid "Company Website"
|
| 1030 |
msgstr ""
|
| 1031 |
|
| 1032 |
#: includes/class-wp-job-manager-data-exporter.php:54
|
| 1033 |
+
#: includes/class-wp-job-manager-post-types.php:1311
|
| 1034 |
msgid "Company Tagline"
|
| 1035 |
msgstr ""
|
| 1036 |
|
| 1037 |
#: includes/class-wp-job-manager-data-exporter.php:55
|
| 1038 |
+
#: includes/class-wp-job-manager-post-types.php:1319
|
| 1039 |
msgid "Company Twitter"
|
| 1040 |
msgstr ""
|
| 1041 |
|
| 1042 |
#: includes/class-wp-job-manager-data-exporter.php:56
|
| 1043 |
+
#: includes/class-wp-job-manager-post-types.php:1327
|
| 1044 |
msgid "Company Video"
|
| 1045 |
msgstr ""
|
| 1046 |
|
| 1065 |
msgid "(opens in a new tab)"
|
| 1066 |
msgstr ""
|
| 1067 |
|
| 1068 |
+
#: includes/class-wp-job-manager-dependency-checker.php:118
|
| 1069 |
#. translators: %s is the URL for the page where users can go to update
|
| 1070 |
#. WordPress.
|
| 1071 |
+
msgid "Please <a href=\"%s\">update WordPress</a> to avoid issues."
|
| 1072 |
+
msgstr ""
|
| 1073 |
+
|
| 1074 |
+
#: includes/class-wp-job-manager-dependency-checker.php:122
|
| 1075 |
msgid "<strong>WP Job Manager</strong> requires a more recent version of WordPress."
|
| 1076 |
msgstr ""
|
| 1077 |
|
| 1313 |
msgstr[0] ""
|
| 1314 |
msgstr[1] ""
|
| 1315 |
|
| 1316 |
+
#: includes/class-wp-job-manager-post-types.php:1262
|
| 1317 |
#: includes/forms/class-wp-job-manager-form-submit-job.php:190
|
| 1318 |
msgid "Application email/URL"
|
| 1319 |
msgstr ""
|
| 1320 |
|
| 1321 |
+
#: includes/class-wp-job-manager-post-types.php:1263
|
| 1322 |
#: includes/forms/class-wp-job-manager-form-submit-job.php:191
|
| 1323 |
msgid "Enter an email address or website URL"
|
| 1324 |
msgstr ""
|
| 1325 |
|
| 1326 |
+
#: includes/class-wp-job-manager-post-types.php:1266
|
| 1327 |
#: includes/forms/class-wp-job-manager-form-submit-job.php:180
|
| 1328 |
msgid "Application email"
|
| 1329 |
msgstr ""
|
| 1330 |
|
| 1331 |
+
#: includes/class-wp-job-manager-post-types.php:1267
|
| 1332 |
#: includes/forms/class-wp-job-manager-form-submit-job.php:181
|
| 1333 |
msgid "you@example.com"
|
| 1334 |
msgstr ""
|
| 1335 |
|
| 1336 |
+
#: includes/class-wp-job-manager-post-types.php:1269
|
| 1337 |
#: includes/forms/class-wp-job-manager-form-submit-job.php:185
|
| 1338 |
msgid "Application URL"
|
| 1339 |
msgstr ""
|
| 1340 |
|
| 1341 |
+
#: includes/class-wp-job-manager-post-types.php:1270
|
| 1342 |
#: includes/forms/class-wp-job-manager-form-submit-job.php:186
|
| 1343 |
msgid "https://"
|
| 1344 |
msgstr ""
|
| 1345 |
|
| 1346 |
+
#: includes/class-wp-job-manager-post-types.php:1276
|
| 1347 |
#: includes/forms/class-wp-job-manager-form-submit-job.php:217
|
| 1348 |
msgid "e.g. \"London\""
|
| 1349 |
msgstr ""
|
| 1350 |
|
| 1351 |
+
#: includes/class-wp-job-manager-post-types.php:1277
|
| 1352 |
msgid "Leave this blank if the location is not important."
|
| 1353 |
msgstr ""
|
| 1354 |
|
| 1355 |
+
#: includes/class-wp-job-manager-post-types.php:1286
|
| 1356 |
msgid ""
|
| 1357 |
"This field is required for the \"application\" area to appear beneath the "
|
| 1358 |
"listing."
|
| 1359 |
msgstr ""
|
| 1360 |
|
| 1361 |
+
#: includes/class-wp-job-manager-post-types.php:1312
|
| 1362 |
msgid "Brief description about the company"
|
| 1363 |
msgstr ""
|
| 1364 |
|
| 1365 |
+
#: includes/class-wp-job-manager-post-types.php:1328
|
| 1366 |
msgid "URL to the company video"
|
| 1367 |
msgstr ""
|
| 1368 |
|
| 1369 |
+
#: includes/class-wp-job-manager-post-types.php:1337
|
| 1370 |
msgid "Position Filled"
|
| 1371 |
msgstr ""
|
| 1372 |
|
| 1373 |
+
#: includes/class-wp-job-manager-post-types.php:1343
|
| 1374 |
msgid "Filled listings will no longer accept applications."
|
| 1375 |
msgstr ""
|
| 1376 |
|
| 1377 |
+
#: includes/class-wp-job-manager-post-types.php:1346
|
| 1378 |
msgid "Featured Listing"
|
| 1379 |
msgstr ""
|
| 1380 |
|
| 1381 |
+
#: includes/class-wp-job-manager-post-types.php:1348
|
| 1382 |
msgid ""
|
| 1383 |
"Featured listings will be sticky during searches, and can be styled "
|
| 1384 |
"differently."
|
| 1385 |
msgstr ""
|
| 1386 |
|
| 1387 |
+
#: includes/class-wp-job-manager-post-types.php:1356
|
| 1388 |
msgid "Listing Expiry Date"
|
| 1389 |
msgstr ""
|
| 1390 |
|
| 1435 |
msgid "Listing Expires"
|
| 1436 |
msgstr ""
|
| 1437 |
|
| 1438 |
+
#: includes/class-wp-job-manager-shortcodes.php:423
|
| 1439 |
+
#: includes/class-wp-job-manager-shortcodes.php:461
|
| 1440 |
msgid "Load more listings"
|
| 1441 |
msgstr ""
|
| 1442 |
|
| 1482 |
msgstr ""
|
| 1483 |
|
| 1484 |
#: includes/class-wp-job-manager.php:439
|
| 1485 |
+
#: includes/forms/class-wp-job-manager-form-submit-job.php:422
|
| 1486 |
#. translators: Placeholder %d is the number of files to that users are limited
|
| 1487 |
#. to.
|
| 1488 |
msgid "You are only allowed to upload a maximum of %d files."
|
| 1586 |
msgstr ""
|
| 1587 |
|
| 1588 |
#: includes/forms/class-wp-job-manager-form-submit-job.php:88
|
| 1589 |
+
#: includes/forms/class-wp-job-manager-form-submit-job.php:578
|
| 1590 |
#: templates/job-preview.php:30
|
| 1591 |
msgid "Preview"
|
| 1592 |
msgstr ""
|
| 1652 |
msgid "Logo"
|
| 1653 |
msgstr ""
|
| 1654 |
|
| 1655 |
+
#: includes/forms/class-wp-job-manager-form-submit-job.php:359
|
| 1656 |
#. translators: Placeholder %s is the label for the required field.
|
| 1657 |
msgid "%s is a required field"
|
| 1658 |
msgstr ""
|
| 1659 |
|
| 1660 |
+
#: includes/forms/class-wp-job-manager-form-submit-job.php:370
|
| 1661 |
#. translators: Placeholder %s is the field label that is did not validate.
|
| 1662 |
msgid "%s is invalid"
|
| 1663 |
msgstr ""
|
| 1664 |
|
| 1665 |
+
#: includes/forms/class-wp-job-manager-form-submit-job.php:385
|
| 1666 |
+
msgid "Invalid image path."
|
| 1667 |
msgstr ""
|
| 1668 |
|
| 1669 |
+
#: includes/forms/class-wp-job-manager-form-submit-job.php:395
|
| 1670 |
+
#: wp-job-manager-functions.php:1363
|
| 1671 |
#. translators: Placeholder %1$s is field label; %2$s is the file mime type;
|
| 1672 |
#. %3$s is the allowed mime-types.
|
| 1673 |
#. translators: %1$s is the file field label; %2$s is the file type; %3$s is
|
| 1675 |
msgid "\"%1$s\" (filetype %2$s) needs to be one of the following file types: %3$s"
|
| 1676 |
msgstr ""
|
| 1677 |
|
| 1678 |
+
#: includes/forms/class-wp-job-manager-form-submit-job.php:405
|
| 1679 |
+
msgid "Invalid attachment provided."
|
| 1680 |
+
msgstr ""
|
| 1681 |
+
|
| 1682 |
+
#: includes/forms/class-wp-job-manager-form-submit-job.php:440
|
| 1683 |
msgid "Please enter a valid application email address"
|
| 1684 |
msgstr ""
|
| 1685 |
|
| 1686 |
+
#: includes/forms/class-wp-job-manager-form-submit-job.php:449
|
| 1687 |
msgid "Please enter a valid application URL"
|
| 1688 |
msgstr ""
|
| 1689 |
|
| 1690 |
+
#: includes/forms/class-wp-job-manager-form-submit-job.php:459
|
| 1691 |
msgid "Please enter a valid application email address or URL"
|
| 1692 |
msgstr ""
|
| 1693 |
|
| 1694 |
+
#: includes/forms/class-wp-job-manager-form-submit-job.php:637
|
| 1695 |
msgid "Please enter a username."
|
| 1696 |
msgstr ""
|
| 1697 |
|
| 1698 |
+
#: includes/forms/class-wp-job-manager-form-submit-job.php:641
|
| 1699 |
msgid "Please enter a password."
|
| 1700 |
msgstr ""
|
| 1701 |
|
| 1702 |
+
#: includes/forms/class-wp-job-manager-form-submit-job.php:645
|
| 1703 |
msgid "Please enter your email address."
|
| 1704 |
msgstr ""
|
| 1705 |
|
| 1706 |
+
#: includes/forms/class-wp-job-manager-form-submit-job.php:651
|
| 1707 |
msgid "Passwords must match."
|
| 1708 |
msgstr ""
|
| 1709 |
|
| 1710 |
+
#: includes/forms/class-wp-job-manager-form-submit-job.php:657
|
| 1711 |
#. translators: Placeholder %s is the password hint.
|
| 1712 |
msgid "Invalid Password: %s"
|
| 1713 |
msgstr ""
|
| 1714 |
|
| 1715 |
+
#: includes/forms/class-wp-job-manager-form-submit-job.php:659
|
| 1716 |
msgid "Password is not valid."
|
| 1717 |
msgstr ""
|
| 1718 |
|
| 1719 |
+
#: includes/forms/class-wp-job-manager-form-submit-job.php:682
|
| 1720 |
msgid "You must be signed in to post a new listing."
|
| 1721 |
msgstr ""
|
| 1722 |
|
| 1723 |
+
#: includes/forms/class-wp-job-manager-form-submit-job.php:705
|
| 1724 |
#. translators: placeholder is the URL to the job dashboard page.
|
| 1725 |
msgid ""
|
| 1726 |
"Draft was saved. Job listing drafts can be resumed from the <a "
|
| 1771 |
msgid "Hide notice"
|
| 1772 |
msgstr ""
|
| 1773 |
|
| 1774 |
+
#: includes/helper/views/html-licence-key-error.php:15
|
| 1775 |
+
#. translators: %1$s is the plugin name, %2$s is the license setting page URL.
|
| 1776 |
+
msgid ""
|
| 1777 |
+
"There is a problem with the license for \"%1$s\". Please <a "
|
| 1778 |
+
"href=\"%2$s\">manage the license</a> to check for a solution and continue "
|
| 1779 |
+
"receiving updates."
|
| 1780 |
+
msgstr ""
|
| 1781 |
+
|
| 1782 |
+
#: includes/helper/views/html-licence-key-notice.php:15
|
| 1783 |
+
#. translators: %1$s is the license setting page URL, %2$s is the plugin name.
|
| 1784 |
+
msgid ""
|
| 1785 |
+
"<a href=\"%1$s\">Please enter your license key</a> to get updates for "
|
| 1786 |
+
"\"%2$s\"."
|
| 1787 |
+
msgstr ""
|
| 1788 |
+
|
| 1789 |
#: includes/helper/views/html-licences.php:56
|
| 1790 |
#: includes/helper/views/html-licences.php:69
|
| 1791 |
msgid "License"
|
| 1796 |
msgid "Email"
|
| 1797 |
msgstr ""
|
| 1798 |
|
| 1799 |
+
#: includes/helper/views/html-licences.php:60
|
| 1800 |
+
#: includes/helper/views/html-licences.php:73
|
| 1801 |
+
msgid "Email address"
|
| 1802 |
+
msgstr ""
|
| 1803 |
+
|
| 1804 |
#: includes/helper/views/html-licences.php:63
|
| 1805 |
msgid "Deactivate License"
|
| 1806 |
msgstr ""
|
| 1807 |
|
| 1808 |
+
#: includes/helper/views/html-licences.php:84
|
| 1809 |
+
#. translators: Placeholder %s is the lost license key URL.
|
| 1810 |
+
msgid "Lost your license key? <a href=\"%s\">Retrieve it here</a>."
|
| 1811 |
+
msgstr ""
|
| 1812 |
+
|
| 1813 |
+
#: includes/helper/views/html-licences.php:86
|
| 1814 |
msgid "No plugins are activated that have licenses managed by WP Job Manager."
|
| 1815 |
msgstr ""
|
| 1816 |
|
| 1904 |
msgid "Your account"
|
| 1905 |
msgstr ""
|
| 1906 |
|
| 1907 |
+
#: templates/account-signin.php:26
|
| 1908 |
+
#. translators: Placeholder %s is the username.
|
| 1909 |
msgid "You are currently signed in as <strong>%s</strong>."
|
| 1910 |
msgstr ""
|
| 1911 |
|
| 1912 |
+
#: templates/account-signin.php:29
|
| 1913 |
msgid "Sign out"
|
| 1914 |
msgstr ""
|
| 1915 |
|
| 1916 |
+
#: templates/account-signin.php:40
|
| 1917 |
msgid "Have an account?"
|
| 1918 |
msgstr ""
|
| 1919 |
|
| 1920 |
+
#: templates/account-signin.php:42 templates/job-dashboard-login.php:20
|
| 1921 |
msgid "Sign in"
|
| 1922 |
msgstr ""
|
| 1923 |
|
| 1924 |
+
#: templates/account-signin.php:47
|
| 1925 |
+
#. translators: Placeholder %s is the optionally text.
|
| 1926 |
msgid ""
|
| 1927 |
"If you don't have an account you can %screate one below by entering your "
|
| 1928 |
"email address/username."
|
| 1929 |
msgstr ""
|
| 1930 |
|
| 1931 |
+
#: templates/account-signin.php:47
|
| 1932 |
msgid "optionally"
|
| 1933 |
msgstr ""
|
| 1934 |
|
| 1935 |
+
#: templates/account-signin.php:49
|
| 1936 |
msgid "Your account details will be confirmed via email."
|
| 1937 |
msgstr ""
|
| 1938 |
|
| 1939 |
+
#: templates/account-signin.php:54
|
| 1940 |
msgid "You must sign in to create a new listing."
|
| 1941 |
msgstr ""
|
| 1942 |
|
| 1943 |
+
#: templates/account-signin.php:65 templates/job-submit.php:43
|
| 1944 |
#: templates/job-submit.php:60
|
| 1945 |
msgid "(optional)"
|
| 1946 |
msgstr ""
|
| 1982 |
msgid "Visit <a href=\"%s\">WordPress admin</a> to manage the listing."
|
| 1983 |
msgstr ""
|
| 1984 |
|
| 1985 |
+
#: templates/emails/admin-new-job.php:27
|
| 1986 |
+
#. translators: %1$s placeholder is URL to the blog. %2$s placeholder is the
|
| 1987 |
+
#. name of the site.
|
| 1988 |
msgid "A new job listing has been submitted to <a href=\"%s\">%s</a>."
|
| 1989 |
msgstr ""
|
| 1990 |
|
| 1991 |
+
#: templates/emails/admin-new-job.php:34
|
| 1992 |
+
#: templates/emails/plain/admin-new-job.php:27
|
| 1993 |
msgid "It has been published and is now available to the public."
|
| 1994 |
msgstr ""
|
| 1995 |
|
| 1996 |
+
#: templates/emails/admin-new-job.php:40
|
| 1997 |
+
#. translators: Placeholder %s is the admin job listings URL.
|
| 1998 |
msgid ""
|
| 1999 |
"It is awaiting approval by an administrator in <a href=\"%s\">WordPress "
|
| 2000 |
"admin</a>."
|
| 2001 |
msgstr ""
|
| 2002 |
|
| 2003 |
+
#: templates/emails/admin-updated-job.php:26
|
| 2004 |
+
#. translators: %1$s placeholder is URL to the blog. %2$s placeholder is the
|
| 2005 |
+
#. name of the site.
|
| 2006 |
msgid "A job listing has been updated on <a href=\"%s\">%s</a>."
|
| 2007 |
msgstr ""
|
| 2008 |
|
| 2009 |
+
#: templates/emails/admin-updated-job.php:29
|
| 2010 |
+
#: templates/emails/plain/admin-updated-job.php:27
|
| 2011 |
msgid "The changes have been published and are now available to the public."
|
| 2012 |
msgstr ""
|
| 2013 |
|
| 2014 |
+
#: templates/emails/admin-updated-job.php:34
|
| 2015 |
+
#. translators: Placeholder %s is the admin job listings URL.
|
| 2016 |
msgid ""
|
| 2017 |
"The job listing is not publicly available until the changes are approved by "
|
| 2018 |
"an administrator in the site's <a href=\"%s\">WordPress admin</a>."
|
| 2019 |
msgstr ""
|
| 2020 |
|
| 2021 |
+
#: templates/emails/employer-expiring-job.php:33
|
| 2022 |
+
#. translators: %1$s placeholder is URL to the blog. %2$s placeholder is the
|
| 2023 |
+
#. name of the site.
|
| 2024 |
msgid "The following job listing is expiring today from <a href=\"%s\">%s</a>."
|
| 2025 |
msgstr ""
|
| 2026 |
|
| 2027 |
+
#: templates/emails/employer-expiring-job.php:42
|
| 2028 |
+
#. translators: %1$s placeholder is URL to the blog. %2$s placeholder is the
|
| 2029 |
+
#. name of the site.
|
| 2030 |
msgid "The following job listing is expiring soon from <a href=\"%s\">%s</a>."
|
| 2031 |
msgstr ""
|
| 2032 |
|
| 2033 |
+
#: templates/emails/employer-expiring-job.php:51
|
| 2034 |
+
#. translators: Placeholder %s is the job listing dashboard URL.
|
| 2035 |
msgid "Visit the <a href=\"%s\">job listing dashboard</a> to manage the listing."
|
| 2036 |
msgstr ""
|
| 2037 |
|
| 2038 |
+
#: templates/emails/plain/admin-expiring-job.php:31
|
| 2039 |
+
#: templates/emails/plain/employer-expiring-job.php:30
|
| 2040 |
+
#. translators: %1$s placeholder is the name of the site, %2$s placeholder is
|
| 2041 |
+
#. URL to the blog.
|
| 2042 |
+
msgid "The following job listing is expiring today from %1$s (%2$s)."
|
| 2043 |
msgstr ""
|
| 2044 |
|
| 2045 |
+
#: templates/emails/plain/admin-expiring-job.php:38
|
| 2046 |
+
#: templates/emails/plain/employer-expiring-job.php:33
|
| 2047 |
+
#. translators: %1$s placeholder is the name of the site, %2$s placeholder is
|
| 2048 |
+
#. URL to the blog.
|
| 2049 |
+
msgid "The following job listing is expiring soon from %1$s (%2$s)."
|
| 2050 |
msgstr ""
|
| 2051 |
|
| 2052 |
+
#: templates/emails/plain/admin-expiring-job.php:46
|
| 2053 |
+
#. translators: Placeholder %s is the edit job URL.
|
| 2054 |
msgid "Visit WordPress admin (%s) to manage the listing."
|
| 2055 |
msgstr ""
|
| 2056 |
|
| 2057 |
+
#: templates/emails/plain/admin-new-job.php:24
|
| 2058 |
+
#. translators: %1$s placeholder is the name of the site, %2$s placeholder is
|
| 2059 |
+
#. URL to the blog.
|
| 2060 |
+
msgid "A new job listing has been submitted to %1$s (%2$s)."
|
| 2061 |
msgstr ""
|
| 2062 |
|
| 2063 |
+
#: templates/emails/plain/admin-new-job.php:31
|
| 2064 |
+
#. translators: Placeholder %s is the admin job listings URL.
|
| 2065 |
msgid "It is awaiting approval by an administrator in WordPress admin (%s)."
|
| 2066 |
msgstr ""
|
| 2067 |
|
| 2068 |
+
#: templates/emails/plain/admin-updated-job.php:24
|
| 2069 |
+
#. translators: %1$s placeholder is the name of the site, %2$s placeholder is
|
| 2070 |
+
#. URL to the blog.
|
| 2071 |
+
msgid "A job listing has been updated on %1$s (%2$s)."
|
| 2072 |
msgstr ""
|
| 2073 |
|
| 2074 |
+
#: templates/emails/plain/admin-updated-job.php:31
|
| 2075 |
+
#. translators: Placeholder %s is the admin job listings URL.
|
| 2076 |
msgid ""
|
| 2077 |
"The job listing is not publicly available until the changes are approved by "
|
| 2078 |
"an administrator in the site's WordPress admin (%s)."
|
| 2079 |
msgstr ""
|
| 2080 |
|
| 2081 |
+
#: templates/emails/plain/employer-expiring-job.php:36
|
| 2082 |
+
#. translators: Placeholder %s is the job listing dashboard URL.
|
| 2083 |
msgid "Visit the job listing dashboard (%s) to manage the listing."
|
| 2084 |
msgstr ""
|
| 2085 |
|
| 2088 |
msgstr ""
|
| 2089 |
|
| 2090 |
#: templates/form-fields/multiselect-field.php:20
|
| 2091 |
+
#: wp-job-manager-functions.php:1130
|
| 2092 |
msgid "No results match"
|
| 2093 |
msgstr ""
|
| 2094 |
|
| 2095 |
#: templates/form-fields/multiselect-field.php:20
|
| 2096 |
+
#: wp-job-manager-functions.php:1131
|
| 2097 |
msgid "Select Some Options"
|
| 2098 |
msgstr ""
|
| 2099 |
|
| 2102 |
msgid "remove"
|
| 2103 |
msgstr ""
|
| 2104 |
|
| 2105 |
+
#: templates/job-application-email.php:19
|
| 2106 |
+
#. translators: %1$s is the email address, %2$s is the subject query args.
|
| 2107 |
msgid ""
|
| 2108 |
"To apply for this job <strong>email your details to</strong> <a "
|
| 2109 |
"class=\"job_application_email\" href=\"mailto:%1$s%2$s\">%1$s</a>"
|
| 2199 |
msgid "Save Draft"
|
| 2200 |
msgstr ""
|
| 2201 |
|
| 2202 |
+
#: templates/job-submitted.php:25
|
| 2203 |
+
#. translators: %1$s is the job listing post type name, %2$s is the job listing
|
| 2204 |
+
#. URL.
|
| 2205 |
+
msgid ""
|
| 2206 |
+
"%1$s listed successfully. To view your listing <a href=\"%2$s\">click "
|
| 2207 |
+
"here</a>."
|
| 2208 |
msgstr ""
|
| 2209 |
|
| 2210 |
+
#: templates/job-submitted.php:35
|
| 2211 |
+
#. translators: Placeholder %s is the job listing post type name.
|
| 2212 |
msgid "%s submitted successfully. Your listing will be visible once approved."
|
| 2213 |
msgstr ""
|
| 2214 |
|
| 2268 |
msgid "Passwords must be at least 8 characters long."
|
| 2269 |
msgstr ""
|
| 2270 |
|
| 2271 |
+
#: wp-job-manager-functions.php:1129
|
| 2272 |
msgid "Choose a category…"
|
| 2273 |
msgstr ""
|
| 2274 |
|
| 2275 |
+
#: wp-job-manager-functions.php:1366
|
| 2276 |
#. translators: %s is the list of allowed file types.
|
| 2277 |
msgid "Uploaded files need to be one of the following file types: %s"
|
| 2278 |
msgstr ""
|
| 2366 |
msgstr ""
|
| 2367 |
|
| 2368 |
#: includes/admin/class-wp-job-manager-permalink-settings.php:108
|
| 2369 |
+
#: includes/class-wp-job-manager-post-types.php:997
|
| 2370 |
msgctxt "Job permalink - resave permalinks after changing this"
|
| 2371 |
msgid "job"
|
| 2372 |
msgstr ""
|
| 2373 |
|
| 2374 |
#: includes/admin/class-wp-job-manager-permalink-settings.php:117
|
| 2375 |
+
#: includes/class-wp-job-manager-post-types.php:998
|
| 2376 |
msgctxt "Job category slug - resave permalinks after changing this"
|
| 2377 |
msgid "job-category"
|
| 2378 |
msgstr ""
|
| 2379 |
|
| 2380 |
#: includes/admin/class-wp-job-manager-permalink-settings.php:126
|
| 2381 |
+
#: includes/class-wp-job-manager-post-types.php:999
|
| 2382 |
msgctxt "Job type slug - resave permalinks after changing this"
|
| 2383 |
msgid "job-type"
|
| 2384 |
msgstr ""
|
| 2430 |
msgid "Active"
|
| 2431 |
msgstr ""
|
| 2432 |
|
| 2433 |
+
#: includes/class-wp-job-manager-post-types.php:981
|
| 2434 |
msgctxt "Post type archive slug - resave permalinks after changing this"
|
| 2435 |
msgid "jobs"
|
| 2436 |
msgstr ""
|
readme.txt
CHANGED
|
@@ -4,7 +4,7 @@ Tags: job manager, job listing, job board, job management, job lists, job list,
|
|
| 4 |
Requires at least: 4.9
|
| 5 |
Tested up to: 5.4
|
| 6 |
Requires PHP: 5.6
|
| 7 |
-
Stable tag: 1.34.
|
| 8 |
License: GPLv3
|
| 9 |
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
| 10 |
|
|
@@ -23,7 +23,7 @@ WP Job Manager is a **lightweight** job listing plugin for adding job-board like
|
|
| 23 |
* Each listing can be tied to an email or website address so that job seekers can apply to the jobs.
|
| 24 |
* Searches also display RSS links to allow job seekers to be alerted to new jobs matching their search.
|
| 25 |
* Allow logged in employers to view, edit, mark filled, or delete their active job listings.
|
| 26 |
-
* Developer friendly code
|
| 27 |
|
| 28 |
The plugin comes with several shortcodes to output jobs in various formats, and since its built with Custom Post Types you are free to extend it further through themes.
|
| 29 |
|
|
@@ -153,6 +153,22 @@ It then creates a database based on the parameters passed to it.
|
|
| 153 |
|
| 154 |
== Changelog ==
|
| 155 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 156 |
= 1.34.1 =
|
| 157 |
* Templates Updated: `job-submitted.php`, `job-dashboard.php`.
|
| 158 |
* Enhancement: Email notifications are sent separately if multiple recipients are listed.
|
| 4 |
Requires at least: 4.9
|
| 5 |
Tested up to: 5.4
|
| 6 |
Requires PHP: 5.6
|
| 7 |
+
Stable tag: 1.34.2
|
| 8 |
License: GPLv3
|
| 9 |
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
| 10 |
|
| 23 |
* Each listing can be tied to an email or website address so that job seekers can apply to the jobs.
|
| 24 |
* Searches also display RSS links to allow job seekers to be alerted to new jobs matching their search.
|
| 25 |
* Allow logged in employers to view, edit, mark filled, or delete their active job listings.
|
| 26 |
+
* Developer friendly code - Custom Post Types, endpoints & template files.
|
| 27 |
|
| 28 |
The plugin comes with several shortcodes to output jobs in various formats, and since its built with Custom Post Types you are free to extend it further through themes.
|
| 29 |
|
| 153 |
|
| 154 |
== Changelog ==
|
| 155 |
|
| 156 |
+
= 1.34.2 =
|
| 157 |
+
* Enhancement: New filter to skip validation for application field.
|
| 158 |
+
* Enhancement: New method for clearing fields.
|
| 159 |
+
* Fix: Improve TwentyTwenty theme compatibility (@JuanchoPestana)
|
| 160 |
+
* Fix: Issue in RSS feed with empty query parameters.
|
| 161 |
+
* Fix: Issue on Jobs page with empty query parameters.
|
| 162 |
+
* Fix: Conflict with search query parameters on Jobs page.
|
| 163 |
+
* Fix: Ensuring hidden jobs do not display in RSS feed.
|
| 164 |
+
* Fix: Image validation when posting a job.
|
| 165 |
+
* Fix: JS error in file upload.
|
| 166 |
+
* Fix: Removed extra whitespace in textarea settings fields.
|
| 167 |
+
* Fix: Several untranslatable strings are now translatable.
|
| 168 |
+
* Fix: CC header in emails.
|
| 169 |
+
* Fix: Search category query sanitization.
|
| 170 |
+
* Fix: Remove PHP notices. (@truongwp)
|
| 171 |
+
|
| 172 |
= 1.34.1 =
|
| 173 |
* Templates Updated: `job-submitted.php`, `job-dashboard.php`.
|
| 174 |
* Enhancement: Email notifications are sent separately if multiple recipients are listed.
|
templates/account-signin.php
CHANGED
|
@@ -22,6 +22,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
| 22 |
<div class="field account-sign-in">
|
| 23 |
<?php
|
| 24 |
$user = wp_get_current_user();
|
|
|
|
| 25 |
printf( wp_kses_post( __( 'You are currently signed in as <strong>%s</strong>.', 'wp-job-manager' ) ), esc_html( $user->user_login ) );
|
| 26 |
?>
|
| 27 |
|
|
@@ -42,6 +43,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
| 42 |
|
| 43 |
<?php if ( $registration_enabled ) : ?>
|
| 44 |
|
|
|
|
| 45 |
<?php printf( esc_html__( 'If you don\'t have an account you can %screate one below by entering your email address/username.', 'wp-job-manager' ), $account_required ? '' : esc_html__( 'optionally', 'wp-job-manager' ) . ' ' ); ?>
|
| 46 |
<?php if ( $use_standard_password_email ) : ?>
|
| 47 |
<?php printf( esc_html__( 'Your account details will be confirmed via email.', 'wp-job-manager' ) ); ?>
|
| 22 |
<div class="field account-sign-in">
|
| 23 |
<?php
|
| 24 |
$user = wp_get_current_user();
|
| 25 |
+
// translators: Placeholder %s is the username.
|
| 26 |
printf( wp_kses_post( __( 'You are currently signed in as <strong>%s</strong>.', 'wp-job-manager' ) ), esc_html( $user->user_login ) );
|
| 27 |
?>
|
| 28 |
|
| 43 |
|
| 44 |
<?php if ( $registration_enabled ) : ?>
|
| 45 |
|
| 46 |
+
<?php // translators: Placeholder %s is the optionally text. ?>
|
| 47 |
<?php printf( esc_html__( 'If you don\'t have an account you can %screate one below by entering your email address/username.', 'wp-job-manager' ), $account_required ? '' : esc_html__( 'optionally', 'wp-job-manager' ) . ' ' ); ?>
|
| 48 |
<?php if ( $use_standard_password_email ) : ?>
|
| 49 |
<?php printf( esc_html__( 'Your account details will be confirmed via email.', 'wp-job-manager' ) ); ?>
|
templates/emails/admin-new-job.php
CHANGED
|
@@ -23,6 +23,7 @@ $job = $args['job'];
|
|
| 23 |
<p><?php
|
| 24 |
echo wp_kses_post(
|
| 25 |
sprintf(
|
|
|
|
| 26 |
__( 'A new job listing has been submitted to <a href="%s">%s</a>.', 'wp-job-manager' ),
|
| 27 |
home_url(),
|
| 28 |
get_bloginfo( 'name' )
|
|
@@ -35,6 +36,7 @@ $job = $args['job'];
|
|
| 35 |
case 'pending':
|
| 36 |
echo wp_kses_post(
|
| 37 |
sprintf(
|
|
|
|
| 38 |
' ' . __( 'It is awaiting approval by an administrator in <a href="%s">WordPress admin</a>.','wp-job-manager' ),
|
| 39 |
esc_url( admin_url( 'edit.php?post_type=job_listing' ) )
|
| 40 |
)
|
| 23 |
<p><?php
|
| 24 |
echo wp_kses_post(
|
| 25 |
sprintf(
|
| 26 |
+
// translators: %1$s placeholder is URL to the blog. %2$s placeholder is the name of the site.
|
| 27 |
__( 'A new job listing has been submitted to <a href="%s">%s</a>.', 'wp-job-manager' ),
|
| 28 |
home_url(),
|
| 29 |
get_bloginfo( 'name' )
|
| 36 |
case 'pending':
|
| 37 |
echo wp_kses_post(
|
| 38 |
sprintf(
|
| 39 |
+
// translators: Placeholder %s is the admin job listings URL.
|
| 40 |
' ' . __( 'It is awaiting approval by an administrator in <a href="%s">WordPress admin</a>.','wp-job-manager' ),
|
| 41 |
esc_url( admin_url( 'edit.php?post_type=job_listing' ) )
|
| 42 |
)
|
templates/emails/admin-updated-job.php
CHANGED
|
@@ -22,6 +22,7 @@ $job = $args['job'];
|
|
| 22 |
?>
|
| 23 |
<p><?php
|
| 24 |
echo wp_kses_post(
|
|
|
|
| 25 |
sprintf( __( 'A job listing has been updated on <a href="%s">%s</a>.', 'wp-job-manager' ), home_url(), esc_html( get_bloginfo( 'name' ) ) ) );
|
| 26 |
switch ( $job->post_status ) {
|
| 27 |
case 'publish':
|
|
@@ -29,6 +30,7 @@ $job = $args['job'];
|
|
| 29 |
break;
|
| 30 |
case 'pending':
|
| 31 |
echo wp_kses_post( sprintf(
|
|
|
|
| 32 |
' ' . __( 'The job listing is not publicly available until the changes are approved by an administrator in the site\'s <a href="%s">WordPress admin</a>.', 'wp-job-manager' ),
|
| 33 |
esc_url( admin_url( 'edit.php?post_type=job_listing' ) )
|
| 34 |
) );
|
| 22 |
?>
|
| 23 |
<p><?php
|
| 24 |
echo wp_kses_post(
|
| 25 |
+
// translators: %1$s placeholder is URL to the blog. %2$s placeholder is the name of the site.
|
| 26 |
sprintf( __( 'A job listing has been updated on <a href="%s">%s</a>.', 'wp-job-manager' ), home_url(), esc_html( get_bloginfo( 'name' ) ) ) );
|
| 27 |
switch ( $job->post_status ) {
|
| 28 |
case 'publish':
|
| 30 |
break;
|
| 31 |
case 'pending':
|
| 32 |
echo wp_kses_post( sprintf(
|
| 33 |
+
// translators: Placeholder %s is the admin job listings URL.
|
| 34 |
' ' . __( 'The job listing is not publicly available until the changes are approved by an administrator in the site\'s <a href="%s">WordPress admin</a>.', 'wp-job-manager' ),
|
| 35 |
esc_url( admin_url( 'edit.php?post_type=job_listing' ) )
|
| 36 |
) );
|
templates/emails/employer-expiring-job.php
CHANGED
|
@@ -29,6 +29,7 @@ echo '<p>';
|
|
| 29 |
if ( $expiring_today ) {
|
| 30 |
echo wp_kses_post(
|
| 31 |
sprintf(
|
|
|
|
| 32 |
__( 'The following job listing is expiring today from <a href="%s">%s</a>.', 'wp-job-manager' ),
|
| 33 |
home_url(),
|
| 34 |
get_bloginfo( 'name' )
|
|
@@ -37,6 +38,7 @@ if ( $expiring_today ) {
|
|
| 37 |
} else {
|
| 38 |
echo wp_kses_post(
|
| 39 |
sprintf(
|
|
|
|
| 40 |
__( 'The following job listing is expiring soon from <a href="%s">%s</a>.', 'wp-job-manager' ),
|
| 41 |
home_url(),
|
| 42 |
get_bloginfo( 'name' )
|
|
@@ -45,6 +47,7 @@ if ( $expiring_today ) {
|
|
| 45 |
}
|
| 46 |
echo wp_kses_post(
|
| 47 |
sprintf(
|
|
|
|
| 48 |
' ' . __( 'Visit the <a href="%s">job listing dashboard</a> to manage the listing.', 'wp-job-manager' ),
|
| 49 |
esc_url( job_manager_get_permalink( 'job_dashboard' ) )
|
| 50 |
)
|
| 29 |
if ( $expiring_today ) {
|
| 30 |
echo wp_kses_post(
|
| 31 |
sprintf(
|
| 32 |
+
// translators: %1$s placeholder is URL to the blog. %2$s placeholder is the name of the site.
|
| 33 |
__( 'The following job listing is expiring today from <a href="%s">%s</a>.', 'wp-job-manager' ),
|
| 34 |
home_url(),
|
| 35 |
get_bloginfo( 'name' )
|
| 38 |
} else {
|
| 39 |
echo wp_kses_post(
|
| 40 |
sprintf(
|
| 41 |
+
// translators: %1$s placeholder is URL to the blog. %2$s placeholder is the name of the site.
|
| 42 |
__( 'The following job listing is expiring soon from <a href="%s">%s</a>.', 'wp-job-manager' ),
|
| 43 |
home_url(),
|
| 44 |
get_bloginfo( 'name' )
|
| 47 |
}
|
| 48 |
echo wp_kses_post(
|
| 49 |
sprintf(
|
| 50 |
+
// translators: Placeholder %s is the job listing dashboard URL.
|
| 51 |
' ' . __( 'Visit the <a href="%s">job listing dashboard</a> to manage the listing.', 'wp-job-manager' ),
|
| 52 |
esc_url( job_manager_get_permalink( 'job_dashboard' ) )
|
| 53 |
)
|
templates/emails/plain/admin-expiring-job.php
CHANGED
|
@@ -27,19 +27,22 @@ $expiring_today = $args['expiring_today'];
|
|
| 27 |
|
| 28 |
if ( $expiring_today ) {
|
| 29 |
printf(
|
| 30 |
-
|
|
|
|
| 31 |
esc_html( get_bloginfo( 'name' ) ),
|
| 32 |
esc_url( home_url() )
|
| 33 |
);
|
| 34 |
} else {
|
| 35 |
printf(
|
| 36 |
-
|
|
|
|
| 37 |
esc_html( get_bloginfo( 'name' ) ),
|
| 38 |
esc_url( home_url() )
|
| 39 |
);
|
| 40 |
}
|
| 41 |
$edit_post_link = admin_url( sprintf( 'post.php?post=%d&action=edit', $job->ID ) );
|
| 42 |
printf(
|
|
|
|
| 43 |
' ' . esc_html__( 'Visit WordPress admin (%s) to manage the listing.', 'wp-job-manager' ),
|
| 44 |
esc_url( $edit_post_link )
|
| 45 |
);
|
| 27 |
|
| 28 |
if ( $expiring_today ) {
|
| 29 |
printf(
|
| 30 |
+
// translators: %1$s placeholder is the name of the site, %2$s placeholder is URL to the blog.
|
| 31 |
+
esc_html__( 'The following job listing is expiring today from %1$s (%2$s).', 'wp-job-manager' ),
|
| 32 |
esc_html( get_bloginfo( 'name' ) ),
|
| 33 |
esc_url( home_url() )
|
| 34 |
);
|
| 35 |
} else {
|
| 36 |
printf(
|
| 37 |
+
// translators: %1$s placeholder is the name of the site, %2$s placeholder is URL to the blog.
|
| 38 |
+
esc_html__( 'The following job listing is expiring soon from %1$s (%2$s).', 'wp-job-manager' ),
|
| 39 |
esc_html( get_bloginfo( 'name' ) ),
|
| 40 |
esc_url( home_url() )
|
| 41 |
);
|
| 42 |
}
|
| 43 |
$edit_post_link = admin_url( sprintf( 'post.php?post=%d&action=edit', $job->ID ) );
|
| 44 |
printf(
|
| 45 |
+
// translators: Placeholder %s is the edit job URL.
|
| 46 |
' ' . esc_html__( 'Visit WordPress admin (%s) to manage the listing.', 'wp-job-manager' ),
|
| 47 |
esc_url( $edit_post_link )
|
| 48 |
);
|
templates/emails/plain/admin-new-job.php
CHANGED
|
@@ -20,12 +20,14 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
| 20 |
*/
|
| 21 |
$job = $args['job'];
|
| 22 |
|
| 23 |
-
|
|
|
|
| 24 |
switch ( $job->post_status ) {
|
| 25 |
case 'publish':
|
| 26 |
printf( ' ' . esc_html__( 'It has been published and is now available to the public.', 'wp-job-manager' ) );
|
| 27 |
break;
|
| 28 |
case 'pending':
|
|
|
|
| 29 |
printf( ' ' . esc_html__( 'It is awaiting approval by an administrator in WordPress admin (%s).', 'wp-job-manager' ), esc_url( admin_url( 'edit.php?post_type=job_listing' ) ) );
|
| 30 |
break;
|
| 31 |
}
|
| 20 |
*/
|
| 21 |
$job = $args['job'];
|
| 22 |
|
| 23 |
+
// translators: %1$s placeholder is the name of the site, %2$s placeholder is URL to the blog.
|
| 24 |
+
printf( esc_html__( 'A new job listing has been submitted to %1$s (%2$s).', 'wp-job-manager' ), esc_html( get_bloginfo( 'name' ) ), esc_url( home_url() ) );
|
| 25 |
switch ( $job->post_status ) {
|
| 26 |
case 'publish':
|
| 27 |
printf( ' ' . esc_html__( 'It has been published and is now available to the public.', 'wp-job-manager' ) );
|
| 28 |
break;
|
| 29 |
case 'pending':
|
| 30 |
+
// translators: Placeholder %s is the admin job listings URL.
|
| 31 |
printf( ' ' . esc_html__( 'It is awaiting approval by an administrator in WordPress admin (%s).', 'wp-job-manager' ), esc_url( admin_url( 'edit.php?post_type=job_listing' ) ) );
|
| 32 |
break;
|
| 33 |
}
|
templates/emails/plain/admin-updated-job.php
CHANGED
|
@@ -20,12 +20,14 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
| 20 |
*/
|
| 21 |
$job = $args['job'];
|
| 22 |
|
| 23 |
-
|
|
|
|
| 24 |
switch ( $job->post_status ) {
|
| 25 |
case 'publish':
|
| 26 |
printf( ' ' . esc_html__( 'The changes have been published and are now available to the public.', 'wp-job-manager' ) );
|
| 27 |
break;
|
| 28 |
case 'pending':
|
|
|
|
| 29 |
printf( ' ' . esc_html__( 'The job listing is not publicly available until the changes are approved by an administrator in the site\'s WordPress admin (%s).', 'wp-job-manager' ), esc_url( admin_url( 'edit.php?post_type=job_listing' ) ) );
|
| 30 |
break;
|
| 31 |
}
|
| 20 |
*/
|
| 21 |
$job = $args['job'];
|
| 22 |
|
| 23 |
+
// translators: %1$s placeholder is the name of the site, %2$s placeholder is URL to the blog.
|
| 24 |
+
printf( esc_html__( 'A job listing has been updated on %1$s (%2$s).', 'wp-job-manager' ), esc_html( get_bloginfo( 'name' ) ), esc_url( home_url() ) );
|
| 25 |
switch ( $job->post_status ) {
|
| 26 |
case 'publish':
|
| 27 |
printf( ' ' . esc_html__( 'The changes have been published and are now available to the public.', 'wp-job-manager' ) );
|
| 28 |
break;
|
| 29 |
case 'pending':
|
| 30 |
+
// translators: Placeholder %s is the admin job listings URL.
|
| 31 |
printf( ' ' . esc_html__( 'The job listing is not publicly available until the changes are approved by an administrator in the site\'s WordPress admin (%s).', 'wp-job-manager' ), esc_url( admin_url( 'edit.php?post_type=job_listing' ) ) );
|
| 32 |
break;
|
| 33 |
}
|
templates/emails/plain/employer-expiring-job.php
CHANGED
|
@@ -26,10 +26,13 @@ $job = $args['job'];
|
|
| 26 |
$expiring_today = $args['expiring_today'];
|
| 27 |
|
| 28 |
if ( $expiring_today ) {
|
| 29 |
-
|
|
|
|
| 30 |
} else {
|
| 31 |
-
|
|
|
|
| 32 |
}
|
|
|
|
| 33 |
printf( ' ' . esc_html__( 'Visit the job listing dashboard (%s) to manage the listing.', 'wp-job-manager' ), esc_url( job_manager_get_permalink( 'job_dashboard' ) ) );
|
| 34 |
|
| 35 |
/**
|
| 26 |
$expiring_today = $args['expiring_today'];
|
| 27 |
|
| 28 |
if ( $expiring_today ) {
|
| 29 |
+
// translators: %1$s placeholder is the name of the site, %2$s placeholder is URL to the blog.
|
| 30 |
+
printf( esc_html__( 'The following job listing is expiring today from %1$s (%2$s).', 'wp-job-manager' ), esc_html( get_bloginfo( 'name' ) ), esc_url( home_url() ) );
|
| 31 |
} else {
|
| 32 |
+
// translators: %1$s placeholder is the name of the site, %2$s placeholder is URL to the blog.
|
| 33 |
+
printf( esc_html__( 'The following job listing is expiring soon from %1$s (%2$s).', 'wp-job-manager' ), esc_html( get_bloginfo( 'name' ) ), esc_url( home_url() ) );
|
| 34 |
}
|
| 35 |
+
// translators: Placeholder %s is the job listing dashboard URL.
|
| 36 |
printf( ' ' . esc_html__( 'Visit the job listing dashboard (%s) to manage the listing.', 'wp-job-manager' ), esc_url( job_manager_get_permalink( 'job_dashboard' ) ) );
|
| 37 |
|
| 38 |
/**
|
templates/form-fields/wp-editor-field.php
CHANGED
|
@@ -15,24 +15,29 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
| 15 |
exit; // Exit if accessed directly.
|
| 16 |
}
|
| 17 |
|
| 18 |
-
$editor = apply_filters(
|
| 19 |
-
'
|
| 20 |
-
|
| 21 |
-
|
| 22 |
-
|
| 23 |
-
|
| 24 |
-
'
|
| 25 |
-
'
|
| 26 |
-
'
|
| 27 |
-
|
| 28 |
-
|
| 29 |
-
|
| 30 |
-
|
| 31 |
-
|
| 32 |
-
|
| 33 |
-
|
| 34 |
-
|
| 35 |
-
|
| 36 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 37 |
wp_editor( isset( $field['value'] ) ? wp_kses_post( $field['value'] ) : '', $key, $editor );
|
| 38 |
-
if ( ! empty( $field['description'] ) ) :
|
|
|
| 15 |
exit; // Exit if accessed directly.
|
| 16 |
}
|
| 17 |
|
| 18 |
+
$editor = apply_filters(
|
| 19 |
+
'submit_job_form_wp_editor_args',
|
| 20 |
+
[
|
| 21 |
+
'textarea_name' => isset( $field['name'] ) ? $field['name'] : $key,
|
| 22 |
+
'media_buttons' => false,
|
| 23 |
+
'textarea_rows' => 8,
|
| 24 |
+
'quicktags' => false,
|
| 25 |
+
'editor_css' => '<style> .mce-top-part button { background-color: rgba(0,0,0,0.0) !important; } </style>',
|
| 26 |
+
'tinymce' => [
|
| 27 |
+
'plugins' => 'lists,paste,tabfocus,wplink,wordpress',
|
| 28 |
+
'paste_as_text' => true,
|
| 29 |
+
'paste_auto_cleanup_on_paste' => true,
|
| 30 |
+
'paste_remove_spans' => true,
|
| 31 |
+
'paste_remove_styles' => true,
|
| 32 |
+
'paste_remove_styles_if_webkit' => true,
|
| 33 |
+
'paste_strip_class_attributes' => true,
|
| 34 |
+
'toolbar1' => 'bold,italic,|,bullist,numlist,|,link,unlink,|,undo,redo',
|
| 35 |
+
'toolbar2' => '',
|
| 36 |
+
'toolbar3' => '',
|
| 37 |
+
'toolbar4' => '',
|
| 38 |
+
],
|
| 39 |
+
]
|
| 40 |
+
);
|
| 41 |
wp_editor( isset( $field['value'] ) ? wp_kses_post( $field['value'] ) : '', $key, $editor );
|
| 42 |
+
if ( ! empty( $field['description'] ) ) :
|
| 43 |
+
?><small class="description"><?php echo wp_kses_post( $field['description'] ); ?></small><?php endif; ?>
|
templates/job-application-email.php
CHANGED
|
@@ -15,4 +15,5 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
| 15 |
exit; // Exit if accessed directly.
|
| 16 |
}
|
| 17 |
?>
|
|
|
|
| 18 |
<p><?php printf( wp_kses_post( __( 'To apply for this job <strong>email your details to</strong> <a class="job_application_email" href="mailto:%1$s%2$s">%1$s</a>', 'wp-job-manager' ) ), esc_html( $apply->email ), '?subject=' . rawurlencode( $apply->subject ) ); ?></p>
|
| 15 |
exit; // Exit if accessed directly.
|
| 16 |
}
|
| 17 |
?>
|
| 18 |
+
<?php // translators: %1$s is the email address, %2$s is the subject query args. ?>
|
| 19 |
<p><?php printf( wp_kses_post( __( 'To apply for this job <strong>email your details to</strong> <a class="job_application_email" href="mailto:%1$s%2$s">%1$s</a>', 'wp-job-manager' ) ), esc_html( $apply->email ), '?subject=' . rawurlencode( $apply->subject ) ); ?></p>
|
templates/job-submitted.php
CHANGED
|
@@ -21,7 +21,8 @@ switch ( $job->post_status ) :
|
|
| 21 |
case 'publish' :
|
| 22 |
echo '<div class="job-manager-message">' . wp_kses_post(
|
| 23 |
sprintf(
|
| 24 |
-
|
|
|
|
| 25 |
esc_html( $wp_post_types['job_listing']->labels->singular_name ),
|
| 26 |
get_permalink( $job->ID )
|
| 27 |
)
|
|
@@ -30,6 +31,7 @@ switch ( $job->post_status ) :
|
|
| 30 |
case 'pending' :
|
| 31 |
echo '<div class="job-manager-message">' . wp_kses_post(
|
| 32 |
sprintf(
|
|
|
|
| 33 |
esc_html__( '%s submitted successfully. Your listing will be visible once approved.', 'wp-job-manager' ),
|
| 34 |
esc_html( $wp_post_types['job_listing']->labels->singular_name )
|
| 35 |
)
|
| 21 |
case 'publish' :
|
| 22 |
echo '<div class="job-manager-message">' . wp_kses_post(
|
| 23 |
sprintf(
|
| 24 |
+
// translators: %1$s is the job listing post type name, %2$s is the job listing URL.
|
| 25 |
+
__( '%1$s listed successfully. To view your listing <a href="%2$s">click here</a>.', 'wp-job-manager' ),
|
| 26 |
esc_html( $wp_post_types['job_listing']->labels->singular_name ),
|
| 27 |
get_permalink( $job->ID )
|
| 28 |
)
|
| 31 |
case 'pending' :
|
| 32 |
echo '<div class="job-manager-message">' . wp_kses_post(
|
| 33 |
sprintf(
|
| 34 |
+
// translators: Placeholder %s is the job listing post type name.
|
| 35 |
esc_html__( '%s submitted successfully. Your listing will be visible once approved.', 'wp-job-manager' ),
|
| 36 |
esc_html( $wp_post_types['job_listing']->labels->singular_name )
|
| 37 |
)
|
templates/pagination.php
CHANGED
|
@@ -21,6 +21,15 @@ if ( $max_num_pages <= 1 ) {
|
|
| 21 |
?>
|
| 22 |
<nav class="job-manager-pagination">
|
| 23 |
<?php
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 24 |
echo paginate_links( apply_filters( 'job_manager_pagination_args', [
|
| 25 |
'base' => esc_url_raw( str_replace( 999999999, '%#%', get_pagenum_link( 999999999, false ) ) ),
|
| 26 |
'format' => '',
|
| 21 |
?>
|
| 22 |
<nav class="job-manager-pagination">
|
| 23 |
<?php
|
| 24 |
+
/**
|
| 25 |
+
* Filter the paginated link for WP Job Manager catalog pages.
|
| 26 |
+
*
|
| 27 |
+
* @see https://codex.wordpress.org/Function_Reference/paginate_links
|
| 28 |
+
*
|
| 29 |
+
* @since 1.4.0
|
| 30 |
+
*
|
| 31 |
+
* @param array $args The pagination arguments.
|
| 32 |
+
*/
|
| 33 |
echo paginate_links( apply_filters( 'job_manager_pagination_args', [
|
| 34 |
'base' => esc_url_raw( str_replace( 999999999, '%#%', get_pagenum_link( 999999999, false ) ) ),
|
| 35 |
'format' => '',
|
wp-job-manager-functions.php
CHANGED
|
@@ -1053,6 +1053,49 @@ function wpjm_published_submission_edits_require_moderation() {
|
|
| 1053 |
return apply_filters( 'job_manager_published_submission_edits_require_moderation', $require_moderation );
|
| 1054 |
}
|
| 1055 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1056 |
/**
|
| 1057 |
* Displays category select dropdown.
|
| 1058 |
*
|
|
@@ -1094,6 +1137,10 @@ function job_manager_dropdown_categories( $args = '' ) {
|
|
| 1094 |
$r['pad_counts'] = true;
|
| 1095 |
}
|
| 1096 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1097 |
/** This filter is documented in wp-job-manager.php */
|
| 1098 |
$r['lang'] = apply_filters( 'wpjm_lang', null );
|
| 1099 |
|
|
@@ -1102,18 +1149,26 @@ function job_manager_dropdown_categories( $args = '' ) {
|
|
| 1102 |
$categories = get_transient( $categories_hash );
|
| 1103 |
|
| 1104 |
if ( empty( $categories ) ) {
|
| 1105 |
-
$
|
| 1106 |
-
[
|
| 1107 |
-
|
| 1108 |
-
|
| 1109 |
-
|
| 1110 |
-
|
| 1111 |
-
|
| 1112 |
-
|
| 1113 |
-
|
| 1114 |
-
|
| 1115 |
-
|
| 1116 |
-
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1117 |
set_transient( $categories_hash, $categories, DAY_IN_SECONDS * 7 );
|
| 1118 |
}
|
| 1119 |
|
| 1053 |
return apply_filters( 'job_manager_published_submission_edits_require_moderation', $require_moderation );
|
| 1054 |
}
|
| 1055 |
|
| 1056 |
+
/**
|
| 1057 |
+
* Get the category slugs from the search query string.
|
| 1058 |
+
* The query string is made with the category slugs separate by commas.
|
| 1059 |
+
*
|
| 1060 |
+
* @since 1.34.2
|
| 1061 |
+
*
|
| 1062 |
+
* @return string[] $search_category_slugs Array of category slugs.
|
| 1063 |
+
*/
|
| 1064 |
+
function wpjm_get_category_slugs_from_search_query_string() {
|
| 1065 |
+
$search_category_slugs = [];
|
| 1066 |
+
|
| 1067 |
+
if ( isset( $_GET['search_category'] ) && $_GET['search_category'] ) {
|
| 1068 |
+
$search_category_slugs = explode( ',', sanitize_text_field( wp_unslash( $_GET['search_category'] ) ) );
|
| 1069 |
+
}
|
| 1070 |
+
|
| 1071 |
+
return $search_category_slugs;
|
| 1072 |
+
}
|
| 1073 |
+
|
| 1074 |
+
/**
|
| 1075 |
+
* Get categories by slug.
|
| 1076 |
+
*
|
| 1077 |
+
* @since 1.34.2
|
| 1078 |
+
*
|
| 1079 |
+
* @param string[] $search_category_slugs Array of category slugs to search.
|
| 1080 |
+
* @param array $default_args Default args to search the term categories.
|
| 1081 |
+
* @param WP_Term[] $exclude_categories Array of categories to exclude.
|
| 1082 |
+
*
|
| 1083 |
+
* @return WP_Term[] $categories Array of categories.
|
| 1084 |
+
*/
|
| 1085 |
+
function wpjm_get_categories_by_slug( $search_category_slugs, $default_args, $exclude_categories ) {
|
| 1086 |
+
$exclude_category_ids = wp_list_pluck( $exclude_categories, 'term_id' );
|
| 1087 |
+
|
| 1088 |
+
$args = [
|
| 1089 |
+
'hide_empty' => false,
|
| 1090 |
+
'slug' => $search_category_slugs,
|
| 1091 |
+
'exclude' => $exclude_category_ids,
|
| 1092 |
+
];
|
| 1093 |
+
|
| 1094 |
+
$args = wp_parse_args( $args, $default_args );
|
| 1095 |
+
|
| 1096 |
+
return get_terms( $args );
|
| 1097 |
+
}
|
| 1098 |
+
|
| 1099 |
/**
|
| 1100 |
* Displays category select dropdown.
|
| 1101 |
*
|
| 1137 |
$r['pad_counts'] = true;
|
| 1138 |
}
|
| 1139 |
|
| 1140 |
+
if ( ! isset( $r['search_category_slugs'] ) ) {
|
| 1141 |
+
$r['search_category_slugs'] = wpjm_get_category_slugs_from_search_query_string();
|
| 1142 |
+
}
|
| 1143 |
+
|
| 1144 |
/** This filter is documented in wp-job-manager.php */
|
| 1145 |
$r['lang'] = apply_filters( 'wpjm_lang', null );
|
| 1146 |
|
| 1149 |
$categories = get_transient( $categories_hash );
|
| 1150 |
|
| 1151 |
if ( empty( $categories ) ) {
|
| 1152 |
+
$args = [
|
| 1153 |
+
'taxonomy' => $r['taxonomy'],
|
| 1154 |
+
'orderby' => $r['orderby'],
|
| 1155 |
+
'order' => $r['order'],
|
| 1156 |
+
'hide_empty' => $r['hide_empty'],
|
| 1157 |
+
'parent' => $r['parent'],
|
| 1158 |
+
'child_of' => $r['child_of'],
|
| 1159 |
+
'exclude' => $r['exclude'],
|
| 1160 |
+
'hierarchical' => $r['hierarchical'],
|
| 1161 |
+
];
|
| 1162 |
+
|
| 1163 |
+
$categories = get_terms( $args );
|
| 1164 |
+
|
| 1165 |
+
if ( ! empty( $r['search_category_slugs'] ) ) {
|
| 1166 |
+
$categories = array_merge(
|
| 1167 |
+
$categories,
|
| 1168 |
+
wpjm_get_categories_by_slug( $r['search_category_slugs'], $args, $categories )
|
| 1169 |
+
);
|
| 1170 |
+
}
|
| 1171 |
+
|
| 1172 |
set_transient( $categories_hash, $categories, DAY_IN_SECONDS * 7 );
|
| 1173 |
}
|
| 1174 |
|
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.34.
|
| 7 |
* Author: Automattic
|
| 8 |
* Author URI: https://wpjobmanager.com/
|
| 9 |
* Requires at least: 4.9
|
|
@@ -21,7 +21,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
| 21 |
}
|
| 22 |
|
| 23 |
// Define constants.
|
| 24 |
-
define( 'JOB_MANAGER_VERSION', '1.34.
|
| 25 |
define( 'JOB_MANAGER_PLUGIN_DIR', untrailingslashit( plugin_dir_path( __FILE__ ) ) );
|
| 26 |
define( 'JOB_MANAGER_PLUGIN_URL', untrailingslashit( plugins_url( basename( plugin_dir_path( __FILE__ ) ), basename( __FILE__ ) ) ) );
|
| 27 |
define( 'JOB_MANAGER_PLUGIN_BASENAME', plugin_basename( __FILE__ ) );
|
| 3 |
* Plugin Name: WP Job Manager
|
| 4 |
* Plugin URI: https://wpjobmanager.com/
|
| 5 |
* Description: Manage job listings from the WordPress admin panel, and allow users to post jobs directly to your site.
|
| 6 |
+
* Version: 1.34.2
|
| 7 |
* Author: Automattic
|
| 8 |
* Author URI: https://wpjobmanager.com/
|
| 9 |
* Requires at least: 4.9
|
| 21 |
}
|
| 22 |
|
| 23 |
// Define constants.
|
| 24 |
+
define( 'JOB_MANAGER_VERSION', '1.34.2' );
|
| 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__ ) );
|
