Waiting for author
Overview of the issue
When using WPML with the Applications add-on of WP Job Manager, the Job Dashboard incorrectly displays application forms from all languages, instead of showing only the forms in the current language. This affects the job edit form and creates confusion for users.
Workaround
Please, make sure of having a full site backup of your site before proceeding.
- Open the …/wp-content/plugins/wp-job-manager-applications/includes/wp-job-manager-applications-functions.php file.
- Look for line 302.
- Replace:
123456789101112131415161718192021222324252627
function
get_application_forms() {
$posts
=
new
WP_Query(
array
(
'post_type'
=>
'job_application_form'
,
'posts_per_page'
=> - 1,
'suppress_filters'
=> true,
'orderby'
=>
'title'
,
'order'
=>
'ASC'
,
)
);
$default_form
= WP_Job_Manager_Applications_Default_Form::get_default_form();
if
(
$posts
->post_count <= 1 ) {
return
null;
}
$application_forms
= [];
if
(
array_key_exists
(
'ID'
,
$default_form
) ) {
$application_forms
[
$default_form
[
'ID'
] ] =
$default_form
[
'post_title'
];
}
foreach
(
$posts
->posts
as
$post
) {
$application_forms
[
$post
->ID ] =
$post
->post_title;
}
return
apply_filters(
'job_application_forms'
,
$application_forms
);
}
- With:
12345678910111213141516171819202122232425262728
// WPML Workaround for compsupp-7797
function
get_application_forms() {
$posts
=
new
WP_Query(
array
(
'post_type'
=>
'job_application_form'
,
'posts_per_page'
=> - 1,
'suppress_filters'
=> false,
// replace true with false
'orderby'
=>
'title'
,
'order'
=>
'ASC'
,
)
);
$default_form
= WP_Job_Manager_Applications_Default_Form::get_default_form();
if
(
$posts
->post_count < 1 ) {
// replace <= with <
return
null;
}
$application_forms
= [];
/* comment out this part if you don't want to see the default form in other languages
if ( array_key_exists( 'ID', $default_form ) ) {
$application_forms[ $default_form['ID'] ] = $default_form['post_title'];
}*/
foreach
(
$posts
->posts
as
$post
) {
$application_forms
[
$post
->ID ] =
$post
->post_title;
}
return
apply_filters(
'job_application_forms'
,
$application_forms
);
}