Plugin Directory

Changeset 3468765


Ignore:
Timestamp:
02/24/2026 04:15:57 PM (5 weeks ago)
Author:
donncha
Message:

Release 2.4.1

Location:
wp-job-manager
Files:
32 edited
1 copied

Legend:

Unmodified
Added
Removed
  • wp-job-manager/tags/2.4.1/changelog.txt

    r3132877 r3468765  
    11# WP Job Manager
     2
     3## 2.4.1 - 2026-02-24
     4* Add permission check to listing query parameters (#2914)
     5* Fix structured data output for password-protected listings (#2913)
     6
     7* Update actions/cache to use v4 (#2896)
     8* reCaptcha script not being loaded (#2893)
     9* add a additional action to the do_feed_rss2
     10* fix hardcoded dashboard expiration date format
     11* Dev: Fix deprecated  methods
     12* Fix file input field for forms not marked as required
    213
    314## 2.4.0 - 2024-08-08
  • wp-job-manager/tags/2.4.1/includes/class-job-dashboard-shortcode.php

    r3078797 r3468765  
    595595
    596596    /**
    597      * Show job title.
     597     * Show the job date
    598598     *
    599599     * @param \WP_Post $job
     
    602602     */
    603603    public static function the_date( $job ) {
    604         echo '<div>' . esc_html( wp_date( apply_filters( 'job_manager_get_dashboard_date_format', 'M d, Y' ), get_post_datetime( $job )->getTimestamp() ) ) . '</div>';
     604        $date_format = get_option( 'date_format' ) ?: 'M d, Y';
     605        echo '<div>' . esc_html( wp_date( apply_filters( 'job_manager_get_dashboard_date_format', $date_format ), get_post_datetime( $job )->getTimestamp() ) ) . '</div>';
    605606    }
    606607
  • wp-job-manager/tags/2.4.1/includes/class-wp-job-manager-ajax.php

    r3028247 r3468765  
    145145        }
    146146
     147        // Ensure the current user can filter by post_status.
     148        if ( is_array( $filter_post_status ) && ! current_user_can( \WP_Job_Manager_Post_Types::CAP_EDIT_LISTINGS ) ) {
     149            $filter_post_status = null;
     150        }
     151
    147152        $types              = get_job_listing_types();
    148153        $job_types_filtered = ! is_null( $filter_job_types ) && count( $types ) !== count( $filter_job_types );
  • wp-job-manager/tags/2.4.1/includes/class-wp-job-manager-post-types.php

    r3132877 r3468765  
    808808        add_action( 'rss2_ns', [ $this, 'job_feed_namespace' ] );
    809809        add_action( 'rss2_item', [ $this, 'job_feed_item' ] );
    810         do_feed_rss2( false );
     810        do_action( 'do_feed_rss2', false );
    811811        remove_filter( 'posts_search', 'get_job_listings_keyword_search', 10 );
    812812    }
  • wp-job-manager/tags/2.4.1/includes/class-wp-job-manager-recaptcha.php

    r3078797 r3468765  
    7878            }
    7979
    80             add_action( 'wp_enqueue_scripts', [ $this, 'enqueue_scripts' ] );
     80            if ( did_action( 'wp_enqueue_scripts' ) ) {
     81                $this->enqueue_scripts();
     82            } else {
     83                add_action( 'wp_enqueue_scripts', [ $this, 'enqueue_scripts' ] );
     84            }
    8185        }
    8286    }
  • wp-job-manager/tags/2.4.1/includes/class-wp-job-manager-shortcodes.php

    r3078797 r3468765  
    144144
    145145        return Job_Dashboard_Shortcode::instance()->filter_paginate_links( $link );
     146    }
     147
     148    /**
     149     * Handles actions which need to be run before the shortcode e.g. post actions.
     150     *
     151     * @deprecated 2.4.1 - Moved to Job_Dashboard_Shortcode.
     152     */
     153    public function shortcode_action_handler() {
     154        _deprecated_function( __METHOD__, '2.4.1', 'Job_Dashboard_Shortcode::handle_actions' );
     155        Job_Dashboard_Shortcode::instance()->handle_actions();
     156    }
     157
     158    /**
     159     * Handles actions on job dashboard.
     160     *
     161     * @throws Exception On action handling error.
     162     *
     163     * @deprecated 2.4.1 - Moved to Job_Dashboard_Shortcode.
     164     */
     165    public function job_dashboard_handler() {
     166        _deprecated_function( __METHOD__, '2.4.1', 'Job_Dashboard_Shortcode::handle_actions' );
     167        Job_Dashboard_Shortcode::instance()->handle_actions();
    146168    }
    147169
     
    588610    }
    589611
     612    /**
     613     * Add expiration details to the job dashboard date column.
     614     *
     615     * @param \WP_Post $job
     616     *
     617     * @deprecated 2.4.1 - Moved to Job_Dashboard_Shortcode.
     618     *
     619     * @output string
     620     */
     621    public function job_dashboard_date_column_expires( $job ) {
     622        _deprecated_function( __METHOD__, '2.4.1', 'Job_Dashboard_Shortcode::the_expiration_date' );
     623        Job_Dashboard_Shortcode::instance()->the_expiration_date( $job );
     624    }
     625
     626    /**
     627     * Add job status to the job dashboard title column.
     628     *
     629     * @param \WP_Post $job
     630     *
     631     * @deprecated 2.4.1 - Moved to Job_Dashboard_Shortcode.
     632     *
     633     * @output string
     634     */
     635    public function job_dashboard_title_column_status( $job ) {
     636        _deprecated_function( __METHOD__, '2.4.1', 'Job_Dashboard_Shortcode::the_job_status' );
     637        Job_Dashboard_Shortcode::instance()->the_status( $job );
     638    }
     639
     640
     641
    590642}
    591643
  • wp-job-manager/tags/2.4.1/languages/wp-job-manager.pot

    r3132877 r3468765  
    1 # Copyright (C) 2024 Automattic
     1# Copyright (C) 2026 Automattic
    22# This file is distributed under the GPL2+.
    33msgid ""
    44msgstr ""
    5 "Project-Id-Version: WP Job Manager 2.4.0\n"
     5"Project-Id-Version: WP Job Manager 2.4.1\n"
    66"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wp-job-manager/\n"
    77"Last-Translator: \n"
     
    1010"Content-Type: text/plain; charset=UTF-8\n"
    1111"Content-Transfer-Encoding: 8bit\n"
    12 "POT-Creation-Date: 2024-07-25T08:58:08+00:00\n"
     12"POT-Creation-Date: 2026-02-24T15:29:38+00:00\n"
    1313"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
    14 "X-Generator: WP-CLI 2.10.0\n"
     14"X-Generator: WP-CLI 2.12.0\n"
    1515"X-Domain: wp-job-manager\n"
    1616
     
    6363#. translators: Placeholder (%s) is the URL to edit the primary language in WPML.
    6464#: includes/3rd-party/wpml.php:108
     65#, php-format
    6566msgid "<a href=\"%s\">Switch to primary language</a> to edit this setting."
    6667msgstr ""
     
    7273#. translators: Placeholder %s is the Terms and Conditions placeholder.
    7374#: includes/abstracts/abstract-wp-job-manager-form.php:383
     75#, php-format
    7476msgid "I accept the %s."
    7577msgstr ""
     
    248250#. translators: %s is the new version number for the addon.
    249251#: includes/admin/class-wp-job-manager-admin-notices.php:647
     252#, php-format
    250253msgid "New Version: %s"
    251254msgstr ""
     
    343346#. translators: Placeholder (%s) is the plural name of the job listings post type.
    344347#: includes/admin/class-wp-job-manager-cpt.php:81
     348#, php-format
    345349msgid "Approve %s"
    346350msgstr ""
     
    348352#. translators: Placeholder (%s) is the plural name of the job listings post type.
    349353#: includes/admin/class-wp-job-manager-cpt.php:83
     354#, php-format
    350355msgid "%s approved"
    351356msgstr ""
     
    353358#. translators: Placeholder (%s) is the plural name of the job listings post type.
    354359#: includes/admin/class-wp-job-manager-cpt.php:88
     360#, php-format
    355361msgid "Expire %s"
    356362msgstr ""
     
    358364#. translators: Placeholder (%s) is the plural name of the job listings post type.
    359365#: includes/admin/class-wp-job-manager-cpt.php:90
     366#, php-format
    360367msgid "%s expired"
    361368msgstr ""
     
    363370#. translators: Placeholder (%s) is the plural name of the job listings post type.
    364371#: includes/admin/class-wp-job-manager-cpt.php:95
     372#, php-format
    365373msgid "Mark %s Filled"
    366374msgstr ""
     
    368376#. translators: Placeholder (%s) is the plural name of the job listings post type.
    369377#: includes/admin/class-wp-job-manager-cpt.php:97
     378#, php-format
    370379msgid "%s marked as filled"
    371380msgstr ""
     
    373382#. translators: Placeholder (%s) is the plural name of the job listings post type.
    374383#: includes/admin/class-wp-job-manager-cpt.php:102
     384#, php-format
    375385msgid "Mark %s Not Filled"
    376386msgstr ""
     
    378388#. translators: Placeholder (%s) is the plural name of the job listings post type.
    379389#: includes/admin/class-wp-job-manager-cpt.php:104
     390#, php-format
    380391msgid "%s marked as not filled"
    381392msgstr ""
     
    390401
    391402#: includes/admin/class-wp-job-manager-cpt.php:367
    392 #: includes/class-job-dashboard-shortcode.php:648
     403#: includes/class-job-dashboard-shortcode.php:649
    393404msgid "Filled"
    394405msgstr ""
     
    403414
    404415#: includes/admin/class-wp-job-manager-cpt.php:386
    405 #: includes/class-job-dashboard-shortcode.php:654
     416#: includes/class-job-dashboard-shortcode.php:655
    406417msgid "Featured"
    407418msgstr ""
     
    418429#. translators: %1$s is the singular name of the job listing post type; %2$s is the URL to view the listing.
    419430#: includes/admin/class-wp-job-manager-cpt.php:457
     431#, php-format
    420432msgid "%1$s updated. <a href=\"%2$s\">View</a>"
    421433msgstr ""
     
    431443#. translators: %s is the singular name of the job listing post type.
    432444#: includes/admin/class-wp-job-manager-cpt.php:461
     445#, php-format
    433446msgid "%s updated."
    434447msgstr ""
     
    436449#. translators: %1$s is the singular name of the job listing post type; %2$s is the revision number.
    437450#: includes/admin/class-wp-job-manager-cpt.php:463
     451#, php-format
    438452msgid "%1$s restored to revision from %2$s"
    439453msgstr ""
     
    441455#. translators: %1$s is the singular name of the job listing post type; %2$s is the URL to view the listing.
    442456#: includes/admin/class-wp-job-manager-cpt.php:465
     457#, php-format
    443458msgid "%1$s published. <a href=\"%2$s\">View</a>"
    444459msgstr ""
     
    446461#. translators: %1$s is the singular name of the job listing post type; %2$s is the URL to view the listing.
    447462#: includes/admin/class-wp-job-manager-cpt.php:467
     463#, php-format
    448464msgid "%s saved."
    449465msgstr ""
     
    451467#. translators: %1$s is the singular name of the job listing post type; %2$s is the URL to preview the listing.
    452468#: includes/admin/class-wp-job-manager-cpt.php:469
     469#, php-format
    453470msgid "%1$s submitted. <a target=\"_blank\" href=\"%2$s\">Preview</a>"
    454471msgstr ""
     
    456473#. translators: %1$s is the singular name of the post type; %2$s is the date the post will be published; %3$s is the URL to preview the listing.
    457474#: includes/admin/class-wp-job-manager-cpt.php:472
     475#, php-format
    458476msgid "%1$s scheduled for: <strong>%2$s</strong>. <a target=\"_blank\" href=\"%3$s\">Preview</a>"
    459477msgstr ""
     
    461479#. translators: %1$s is the singular name of the job listing post type; %2$s is the URL to view the listing.
    462480#: includes/admin/class-wp-job-manager-cpt.php:478
     481#, php-format
    463482msgid "%1$s draft updated. <a target=\"_blank\" href=\"%2$s\">Preview</a>"
    464483msgstr ""
     
    532551#. translators: %d is the post ID for the job listing.
    533552#: includes/admin/class-wp-job-manager-cpt.php:623
     553#, php-format
    534554msgid "ID: %d"
    535555msgstr ""
     
    546566#. translators: %s placeholder is the username of the user.
    547567#: includes/admin/class-wp-job-manager-cpt.php:676
     568#, php-format
    548569msgid "by %s"
    549570msgstr ""
     
    612633#. translators: Placeholder (%s) is the name of the job listing affected.
    613634#: includes/admin/class-wp-job-manager-promoted-jobs-admin.php:177
     635#, php-format
    614636msgid "Promotion for %s deactivated"
    615637msgstr ""
     
    714736#. translators: Placeholder %s is URL to set up a Google Maps API key.
    715737#: includes/admin/class-wp-job-manager-settings.php:145
     738#, php-format
    716739msgid "Google requires an API key to retrieve location information for job listings. Acquire an API key from the <a href=\"%s\">Google Maps API developer site</a>."
    717740msgstr ""
     
    11831206#. translators: Placeholder %s is URL to set up Google reCAPTCHA API key.
    11841207#: includes/admin/class-wp-job-manager-settings.php:543
     1208#, php-format
    11851209msgid "You can retrieve your reCAPTCHA site key from <a href=\"%s\">Google's reCAPTCHA admin dashboard</a>."
    11861210msgstr ""
     
    11921216#. translators: Placeholder %s is URL to set up Google reCAPTCHA API key.
    11931217#: includes/admin/class-wp-job-manager-settings.php:552
     1218#, php-format
    11941219msgid "You can retrieve your reCAPTCHA secret key from <a href=\"%s\">Google's reCAPTCHA admin dashboard</a>."
    11951220msgstr ""
     
    12531278#. translators: Placeholder %s is the url to the WordPress core documentation for capabilities and roles.
    12541279#: includes/admin/class-wp-job-manager-settings.php:614
     1280#, php-format
    12551281msgid "Enter which <a href=\"%s\">roles or capabilities</a> allow visitors to browse job listings. If no value is selected, everyone (including logged out guests) will be able to browse job listings."
    12561282msgstr ""
     
    12621288#. translators: Placeholder %s is the url to the WordPress core documentation for capabilities and roles.
    12631289#: includes/admin/class-wp-job-manager-settings.php:624
     1290#, php-format
    12641291msgid "Enter which <a href=\"%s\">roles or capabilities</a> allow visitors to view a single job listing. If no value is selected, everyone (including logged out guests) will be able to view job listings."
    12651292msgstr ""
     
    13081335#. translators: Placeholder %s is the singular name for a job listing post type.
    13091336#: includes/admin/class-wp-job-manager-writepanels.php:154
     1337#, php-format
    13101338msgid "%s Data"
    13111339msgstr ""
     
    13271355#. translators: Used in user select. %1$s is the user's display name; #%2$s is the user ID; %3$s is the user email.
    13281356#: includes/admin/class-wp-job-manager-writepanels.php:532
    1329 #: includes/class-wp-job-manager-ajax.php:426
     1357#: includes/class-wp-job-manager-ajax.php:431
     1358#, php-format
    13301359msgid "%1$s (#%2$s – %3$s)"
    13311360msgstr ""
     
    13451374#. translators: %1$s is placeholder for singular name of the job listing post type; %2$s is the intl formatted date the listing was last modified.
    13461375#: includes/admin/class-wp-job-manager-writepanels.php:619
     1376#, php-format
    13471377msgid "%1$s was last modified by the user on %2$s."
    13481378msgstr ""
     
    14151445#. translators: Placeholder %s is the path to WPJM documentation site.
    14161446#: includes/admin/views/html-admin-setup-step-1.php:19
     1447#, php-format
    14171448msgid "If you'd prefer to skip this and set up your pages manually, our <a target=\"_blank\" href=\"%s\">documentation</a> will walk you through each step."
    14181449msgstr ""
     
    14361467#. translators: %1$s is URL to WordPress core shortcode documentation. %2$s is URL to WPJM specific shortcode reference.
    14371468#: includes/admin/views/html-admin-setup-step-2.php:20
     1469#, php-format
    14381470msgid ""
    14391471"(These pages are created using <a href=\"%1$s\" title=\"What is a shortcode?\" class=\"help-page-link\">shortcodes</a>,\n"
     
    15311563#. translators: %1$s is the URL to WPJM support documentation; %2$s is the URL to WPJM support forums.
    15321564#: includes/admin/views/html-admin-setup-step-3.php:52
     1565#, php-format
    15331566msgid ""
    15341567"If you need help, you can find more detail in our\n"
     
    16061639#. translators: Placeholder %s is the job listing title.
    16071640#: includes/class-job-dashboard-shortcode.php:451
     1641#, php-format
    16081642msgid "%s has been filled"
    16091643msgstr ""
     
    16151649#. translators: Placeholder %s is the job listing title.
    16161650#: includes/class-job-dashboard-shortcode.php:464
     1651#, php-format
    16171652msgid "%s has been marked as not filled"
    16181653msgstr ""
     
    16201655#. translators: Placeholder %s is the job listing title.
    16211656#: includes/class-job-dashboard-shortcode.php:472
     1657#, php-format
    16221658msgid "%s has been deleted"
    16231659msgstr ""
     
    16301666#. translators: Placeholder is the expiration date of the job listing.
    16311667#: includes/class-job-dashboard-shortcode.php:548
     1668#, php-format
    16321669msgid "Expires in %s"
    16331670msgstr ""
     
    16511688#. translators: %1d is the number of page views.
    16521689#: includes/class-stats-dashboard.php:68
     1690#, php-format
    16531691msgid "%1d view"
    16541692msgid_plural "%1d views"
     
    16581696#. translators: %1d is the number of impressions.
    16591697#: includes/class-stats-dashboard.php:70
     1698#, php-format
    16601699msgid "%1d impression"
    16611700msgid_plural "%1d impressions"
     
    17071746
    17081747#. translators: Placeholder %d is the number of found search results.
    1709 #: includes/class-wp-job-manager-ajax.php:193
     1748#: includes/class-wp-job-manager-ajax.php:198
     1749#, php-format
    17101750msgid "Search completed. Found %d matching record."
    17111751msgid_plural "Search completed. Found %d matching records."
     
    17131753msgstr[1] ""
    17141754
    1715 #: includes/class-wp-job-manager-ajax.php:291
     1755#: includes/class-wp-job-manager-ajax.php:296
    17161756msgid "You must be logged in to upload files using this method."
    17171757msgstr ""
     
    17531793#. translators: %1$s is version of PHP that WP Job Manager requires; %2$s is the version of PHP WordPress is running on.
    17541794#: includes/class-wp-job-manager-dependency-checker.php:66
     1795#, php-format
    17551796msgid "<strong>WP Job Manager</strong> requires a minimum PHP version of %1$s, but you are running %2$s."
    17561797msgstr ""
     
    17671808#. translators: %s is the URL for the page where users can go to update WordPress.
    17681809#: includes/class-wp-job-manager-dependency-checker.php:118
     1810#, php-format
    17691811msgid "Please <a href=\"%s\">update WordPress</a> to avoid issues."
    17701812msgstr ""
     
    18591901#: includes/class-wp-job-manager-post-types.php:376
    18601902#: includes/class-wp-job-manager-post-types.php:474
     1903#, php-format
    18611904msgid "Search %s"
    18621905msgstr ""
     
    18681911#: includes/class-wp-job-manager-post-types.php:378
    18691912#: includes/class-wp-job-manager-post-types.php:460
     1913#, php-format
    18701914msgid "All %s"
    18711915msgstr ""
     
    18771921#: includes/class-wp-job-manager-post-types.php:380
    18781922#: includes/class-wp-job-manager-post-types.php:480
     1923#, php-format
    18791924msgid "Parent %s"
    18801925msgstr ""
     
    18841929#: includes/class-wp-job-manager-post-types.php:319
    18851930#: includes/class-wp-job-manager-post-types.php:382
     1931#, php-format
    18861932msgid "Parent %s:"
    18871933msgstr ""
     
    18931939#: includes/class-wp-job-manager-post-types.php:384
    18941940#: includes/class-wp-job-manager-post-types.php:466
     1941#, php-format
    18951942msgid "Edit %s"
    18961943msgstr ""
     
    19001947#: includes/class-wp-job-manager-post-types.php:323
    19011948#: includes/class-wp-job-manager-post-types.php:386
     1949#, php-format
    19021950msgid "Update %s"
    19031951msgstr ""
     
    19071955#: includes/class-wp-job-manager-post-types.php:325
    19081956#: includes/class-wp-job-manager-post-types.php:388
     1957#, php-format
    19091958msgid "Add New %s"
    19101959msgstr ""
     
    19141963#: includes/class-wp-job-manager-post-types.php:327
    19151964#: includes/class-wp-job-manager-post-types.php:390
     1965#, php-format
    19161966msgid "New %s Name"
    19171967msgstr ""
     
    19351985#. translators: Placeholder %s is the singular label of the job listing post type.
    19361986#: includes/class-wp-job-manager-post-types.php:463
     1987#, php-format
    19371988msgid "Add %s"
    19381989msgstr ""
     
    19401991#. translators: Placeholder %s is the singular label of the job listing post type.
    19411992#: includes/class-wp-job-manager-post-types.php:468
     1993#, php-format
    19421994msgid "New %s"
    19431995msgstr ""
     
    19461998#: includes/class-wp-job-manager-post-types.php:470
    19471999#: includes/class-wp-job-manager-post-types.php:472
     2000#, php-format
    19482001msgid "View %s"
    19492002msgstr ""
     
    19512004#. translators: Placeholder %s is the singular label of the job listing post type.
    19522005#: includes/class-wp-job-manager-post-types.php:476
     2006#, php-format
    19532007msgid "No %s found"
    19542008msgstr ""
     
    19562010#. translators: Placeholder %s is the plural label of the job listing post type.
    19572011#: includes/class-wp-job-manager-post-types.php:478
     2012#, php-format
    19582013msgid "No %s found in trash"
    19592014msgstr ""
     
    19732028#. translators: Placeholder %s is the plural label of the job listing post type.
    19742029#: includes/class-wp-job-manager-post-types.php:487
     2030#, php-format
    19752031msgid "This is where you can create and manage %s."
    19762032msgstr ""
     
    19842040#. translators: Placeholder %s is the number of expired posts of this type.
    19852041#: includes/class-wp-job-manager-post-types.php:529
     2042#, php-format
    19862043msgid "Expired <span class=\"count\">(%s)</span>"
    19872044msgid_plural "Expired <span class=\"count\">(%s)</span>"
     
    19972054#. translators: Placeholder %s is the number of posts in a preview state.
    19982055#: includes/class-wp-job-manager-post-types.php:541
     2056#, php-format
    19992057msgid "Preview <span class=\"count\">(%s)</span>"
    20002058msgid_plural "Preview <span class=\"count\">(%s)</span>"
     
    21152173
    21162174#. translators: %s is the name of the form validation that failed.
    2117 #: includes/class-wp-job-manager-recaptcha.php:177
     2175#: includes/class-wp-job-manager-recaptcha.php:181
     2176#, php-format
    21182177msgid "\"%s\" check failed. Please try again."
    21192178msgstr ""
    21202179
    2121 #: includes/class-wp-job-manager-shortcodes.php:311
    2122 #: includes/class-wp-job-manager-shortcodes.php:351
     2180#: includes/class-wp-job-manager-shortcodes.php:333
     2181#: includes/class-wp-job-manager-shortcodes.php:373
    21232182msgid "Load more listings"
    21242183msgstr ""
     
    21262185#. translators: Placeholder %s is a URL to the document on wpjobmanager.com with info on usage tracking.
    21272186#: includes/class-wp-job-manager-usage-tracking.php:230
     2187#, php-format
    21282188msgid ""
    21292189"<p>We'd love if you helped us make WP Job Manager better by allowing us to collect\n"
     
    21342194#. translators: the href tag contains the URL for the page telling users what data WPJM tracks.
    21352195#: includes/class-wp-job-manager-usage-tracking.php:269
     2196#, php-format
    21362197msgid ""
    21372198"Help us make Job Manager better by allowing us to collect\n"
     
    21462207#. translators: Placeholders %1$s and %2$s are the names of the two cookies used in WP Job Manager.
    21472208#: includes/class-wp-job-manager.php:195
     2209#, php-format
    21482210msgid ""
    21492211"This site adds the following cookies to help users resume job submissions that they\n"
     
    21662228#: includes/class-wp-job-manager.php:581
    21672229#: includes/forms/class-wp-job-manager-form-submit-job.php:516
     2230#, php-format
    21682231msgid "You are only allowed to upload a maximum of %d files."
    21692232msgstr ""
     
    21912254#. translators: Placeholder %s is the job listing post title.
    21922255#: includes/emails/class-wp-job-manager-email-admin-new-job.php:63
     2256#, php-format
    21932257msgid "New Job Listing Submitted: %s"
    21942258msgstr ""
     
    22042268#. translators: Placeholder %s is the job listing post title.
    22052269#: includes/emails/class-wp-job-manager-email-admin-updated-job.php:63
     2270#, php-format
    22062271msgid "Job Listing Updated: %s"
    22072272msgstr ""
     
    22172282#. translators: Placeholder %s is the job listing post title.
    22182283#: includes/emails/class-wp-job-manager-email-employer-expiring-job.php:79
     2284#, php-format
    22192285msgid "Job Listing Expiring: %s"
    22202286msgstr ""
     
    23332399#. translators: Placeholder %s is the label for the required field.
    23342400#: includes/forms/class-wp-job-manager-form-submit-job.php:437
     2401#, php-format
    23352402msgid "%s is a required field"
    23362403msgstr ""
     
    23382405#. translators: Placeholder %s is the field label that is did not validate.
    23392406#: includes/forms/class-wp-job-manager-form-submit-job.php:448
     2407#, php-format
    23402408msgid "%s is invalid"
    23412409msgstr ""
     
    23492417#: includes/forms/class-wp-job-manager-form-submit-job.php:489
    23502418#: wp-job-manager-functions.php:1529
     2419#, php-format
    23512420msgid "\"%1$s\" (filetype %2$s) needs to be one of the following file types: %3$s"
    23522421msgstr ""
     
    23862455#. translators: Placeholder %s is the password hint.
    23872456#: includes/forms/class-wp-job-manager-form-submit-job.php:761
     2457#, php-format
    23882458msgid "Invalid Password: %s"
    23892459msgstr ""
     
    23992469#. translators: placeholder is the URL to the job dashboard page.
    24002470#: includes/forms/class-wp-job-manager-form-submit-job.php:821
     2471#, php-format
    24012472msgid "Draft was saved. Job listing drafts can be resumed from the <a href=\"%s\">job dashboard</a>."
    24022473msgstr ""
     
    24202491#. translators: First placeholder is the plugin name, second placeholder is the My Account URL.
    24212492#: includes/helper/class-wp-job-manager-helper.php:400
     2493#, php-format
    24222494msgid "<strong>Error:</strong> The license for <strong>%1$s</strong> is not activated on this website and has been removed. Manage your activations on your <a href=\"%2$s\" rel=\"noopener noreferrer\" target=\"_blank\">My Account page</a>."
    24232495msgstr ""
     
    24252497#. translators: First placeholder is the plugin name; second placeholder is the URL to purchase the plugin.
    24262498#: includes/helper/class-wp-job-manager-helper.php:405
     2499#, php-format
    24272500msgid "<strong>Error:</strong> The license for <strong>%1$s</strong> is not valid and has been removed. <a href=\"%2$s\" rel=\"noopener noreferrer\" target=\"_blank\">Purchase a new license</a> to receive updates and support."
    24282501msgstr ""
     
    24302503#. translators: First placeholder is the plugin name, second placeholder is the My Account URL.
    24312504#: includes/helper/class-wp-job-manager-helper.php:410
     2505#, php-format
    24322506msgid "<strong>Error:</strong> The license for <strong>%1$s</strong> has expired. You must <a href=\"%2$s\" rel=\"noopener noreferrer\" target=\"_blank\">renew your license</a> to receive updates and support."
    24332507msgstr ""
     
    24352509#. translators: First placeholder is the plugin name, second placeholder is the My Account URL.
    24362510#: includes/helper/class-wp-job-manager-helper.php:413
     2511#, php-format
    24372512msgid "<strong>Error:</strong> The license for <strong>%1$s</strong> is expiring soon. Please <a href=\"%2$s\" rel=\"noopener noreferrer\" target=\"_blank\">renew your license</a> to continue receiving updates and support."
    24382513msgstr ""
     
    24982573#. translators: %1$s is the URL to the license key page.
    24992574#: includes/helper/class-wp-job-manager-helper.php:1136
     2575#, php-format
    25002576msgid "<a href=\"%1$s\">Please add or review your license keys</a> to get updates for the following extensions:"
    25012577msgstr ""
     
    25352611#. translators: placeholder is the number of active addons, which will never be zero.
    25362612#: includes/helper/views/html-licenses.php:62
     2613#, php-format
    25372614msgid "Active (%d)"
    25382615msgstr ""
     
    25412618#: includes/helper/views/html-licenses.php:71
    25422619#: includes/helper/views/html-licenses.php:136
     2620#, php-format
    25432621msgid "Plugin Icon for %s"
    25442622msgstr ""
     
    25552633#. translators: placeholder is the number of inactive addons, which will never be zero.
    25562634#: includes/helper/views/html-licenses.php:127
     2635#, php-format
    25572636msgid "Inactive (%d)"
    25582637msgstr ""
     
    25602639#. translators: Placeholder %s is the lost license key URL.
    25612640#: includes/helper/views/html-licenses.php:187
     2641#, php-format
    25622642msgid "Lost your license key? <a href=\"%s\">You can find them on the My Account page</a>."
    25632643msgstr ""
     
    25922672#: includes/widgets/class-wp-job-manager-widget-featured-jobs.php:27
    25932673#: includes/widgets/class-wp-job-manager-widget-featured-jobs.php:35
     2674#, php-format
    25942675msgid "Featured %s"
    25952676msgstr ""
     
    26362717#: includes/widgets/class-wp-job-manager-widget-recent-jobs.php:27
    26372718#: includes/widgets/class-wp-job-manager-widget-recent-jobs.php:35
     2719#, php-format
    26382720msgid "Recent %s"
    26392721msgstr ""
     
    26772759#. translators: Placeholder %s is the username.
    26782760#: templates/account-signin.php:26
     2761#, php-format
    26792762msgid "You are currently signed in as <strong>%s</strong>."
    26802763msgstr ""
     
    27372820#. translators: %1$s placeholder is URL to the blog. %2$s placeholder is the name of the site.
    27382821#: templates/emails/admin-expiring-job.php:32
     2822#, php-format
    27392823msgid "The following job listing is expiring today from <a href=\"%1$s\">%2$s</a>."
    27402824msgstr ""
     
    27422826#. translators: %1$s placeholder is URL to the blog. %2$s placeholder is the name of the site.
    27432827#: templates/emails/admin-expiring-job.php:35
     2828#, php-format
    27442829msgid "The following job listing is expiring soon from <a href=\"%1$s\">%2$s</a>."
    27452830msgstr ""
     
    27472832#. translators: Placeholder is URL to site's WP admin.
    27482833#: templates/emails/admin-expiring-job.php:41
     2834#, php-format
    27492835msgid "Visit <a href=\"%s\">WordPress admin</a> to manage the listing."
    27502836msgstr ""
     
    27522838#. translators: %1$s placeholder is URL to the blog. %2$s placeholder is the name of the site.
    27532839#: templates/emails/admin-new-job.php:27
     2840#, php-format
    27542841msgid "A new job listing has been submitted to <a href=\"%s\">%s</a>."
    27552842msgstr ""
     
    27622849#. translators: Placeholder %s is the admin job listings URL.
    27632850#: templates/emails/admin-new-job.php:40
     2851#, php-format
    27642852msgid "It is awaiting approval by an administrator in <a href=\"%s\">WordPress admin</a>."
    27652853msgstr ""
     
    27672855#. translators: %1$s placeholder is URL to the blog. %2$s placeholder is the name of the site.
    27682856#: templates/emails/admin-updated-job.php:26
     2857#, php-format
    27692858msgid "A job listing has been updated on <a href=\"%s\">%s</a>."
    27702859msgstr ""
     
    27772866#. translators: Placeholder %s is the admin job listings URL.
    27782867#: templates/emails/admin-updated-job.php:34
     2868#, php-format
    27792869msgid "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>."
    27802870msgstr ""
     
    27822872#. translators: %1$s placeholder is URL to the blog. %2$s placeholder is the name of the site.
    27832873#: templates/emails/employer-expiring-job.php:33
     2874#, php-format
    27842875msgid "The following job listing is expiring today from <a href=\"%s\">%s</a>."
    27852876msgstr ""
     
    27872878#. translators: %1$s placeholder is URL to the blog. %2$s placeholder is the name of the site.
    27882879#: templates/emails/employer-expiring-job.php:42
     2880#, php-format
    27892881msgid "The following job listing is expiring soon from <a href=\"%s\">%s</a>."
    27902882msgstr ""
     
    27922884#. translators: Placeholder %s is the job listing dashboard URL.
    27932885#: templates/emails/employer-expiring-job.php:51
     2886#, php-format
    27942887msgid "Visit the <a href=\"%s\">job listing dashboard</a> to manage the listing."
    27952888msgstr ""
     
    27982891#: templates/emails/plain/admin-expiring-job.php:31
    27992892#: templates/emails/plain/employer-expiring-job.php:30
     2893#, php-format
    28002894msgid "The following job listing is expiring today from %1$s (%2$s)."
    28012895msgstr ""
     
    28042898#: templates/emails/plain/admin-expiring-job.php:38
    28052899#: templates/emails/plain/employer-expiring-job.php:33
     2900#, php-format
    28062901msgid "The following job listing is expiring soon from %1$s (%2$s)."
    28072902msgstr ""
     
    28092904#. translators: Placeholder %s is the edit job URL.
    28102905#: templates/emails/plain/admin-expiring-job.php:46
     2906#, php-format
    28112907msgid "Visit WordPress admin (%s) to manage the listing."
    28122908msgstr ""
     
    28142910#. translators: %1$s placeholder is the name of the site, %2$s placeholder is URL to the blog.
    28152911#: templates/emails/plain/admin-new-job.php:24
     2912#, php-format
    28162913msgid "A new job listing has been submitted to %1$s (%2$s)."
    28172914msgstr ""
     
    28192916#. translators: Placeholder %s is the admin job listings URL.
    28202917#: templates/emails/plain/admin-new-job.php:31
     2918#, php-format
    28212919msgid "It is awaiting approval by an administrator in WordPress admin (%s)."
    28222920msgstr ""
     
    28242922#. translators: %1$s placeholder is the name of the site, %2$s placeholder is URL to the blog.
    28252923#: templates/emails/plain/admin-updated-job.php:24
     2924#, php-format
    28262925msgid "A job listing has been updated on %1$s (%2$s)."
    28272926msgstr ""
     
    28292928#. translators: Placeholder %s is the admin job listings URL.
    28302929#: templates/emails/plain/admin-updated-job.php:31
     2930#, php-format
    28312931msgid "The job listing is not publicly available until the changes are approved by an administrator in the site's WordPress admin (%s)."
    28322932msgstr ""
     
    28342934#. translators: Placeholder %s is the job listing dashboard URL.
    28352935#: templates/emails/plain/employer-expiring-job.php:36
     2936#, php-format
    28362937msgid "Visit the job listing dashboard (%s) to manage the listing."
    28372938msgstr ""
    28382939
    2839 #: templates/form-fields/file-field.php:60
     2940#: templates/form-fields/file-field.php:61
     2941#, php-format
    28402942msgid "Maximum file size: %s."
    28412943msgstr ""
     
    28622964#. translators: %1$s is the email address, %2$s is the subject query args.
    28632965#: templates/job-application-email.php:19
     2966#, php-format
    28642967msgid "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>"
    28652968msgstr ""
     
    28832986#. translators: Placeholder is the search term.
    28842987#: templates/job-dashboard.php:64
     2988#, php-format
    28852989msgid "No results found for \"%s\"."
    28862990msgstr ""
     
    29283032
    29293033#: templates/job-submit.php:25
     3034#, php-format
    29303035msgid "You are editing an existing job. %s"
    29313036msgstr ""
     
    29453050#. translators: %1$s is the job listing post type name, %2$s is the job listing URL.
    29463051#: templates/job-submitted.php:36
     3052#, php-format
    29473053msgid "%1$s listed successfully. To view your listing <a href=\"%2$s\">click here</a>."
    29483054msgstr ""
     
    29503056#. translators: Placeholder %s is the job listing post type name.
    29513057#: templates/job-submitted.php:47
     3058#, php-format
    29523059msgid "%s submitted successfully. Your listing will be visible once approved."
    29533060msgstr ""
    29543061
    29553062#: templates/job-submitted.php:61
     3063#, php-format
    29563064msgid "  <a href=\"%1$s\"> View your %2$s</a>"
    29573065msgstr ""
    29583066
    29593067#: templates/job-submitted.php:69
     3068#, php-format
    29603069msgid "  <a href=\"%s\"> %s</a>"
    29613070msgstr ""
     
    29633072#. translators: %1$s is the job listing post type name.
    29643073#: templates/job-submitted.php:92
     3074#, php-format
    29653075msgid "%1$s submitted successfully."
    29663076msgstr ""
     
    30533163#. translators: %s is the list of allowed file types.
    30543164#: wp-job-manager-functions.php:1532
     3165#, php-format
    30553166msgid "Uploaded files need to be one of the following file types: %s"
    30563167msgstr ""
     
    30863197#. translators: %1$s is the job listing title; %2$s is the URL for the current WordPress instance.
    30873198#: wp-job-manager-template.php:249
     3199#, php-format
    30883200msgid "Application via %1$s listing on %2$s"
    30893201msgstr ""
    30903202
    3091 #: wp-job-manager-template.php:709
     3203#: wp-job-manager-template.php:715
    30923204msgid "Your email"
    30933205msgstr ""
    30943206
    3095 #: wp-job-manager-template.php:710
     3207#: wp-job-manager-template.php:716
    30963208msgid "you@yourdomain.com"
    30973209msgstr ""
    30983210
    3099 #: wp-job-manager-template.php:718
     3211#: wp-job-manager-template.php:724
    31003212msgid "Username"
    31013213msgstr ""
    31023214
    3103 #: wp-job-manager-template.php:727
     3215#: wp-job-manager-template.php:733
    31043216msgid "Password"
    31053217msgstr ""
    31063218
    3107 #: wp-job-manager-template.php:737
     3219#: wp-job-manager-template.php:743
    31083220msgid "Verify Password"
    31093221msgstr ""
    31103222
    3111 #: wp-job-manager-template.php:765
     3223#: wp-job-manager-template.php:771
    31123224msgid "Posted on "
    31133225msgstr ""
    31143226
    31153227#. translators: Placeholder %s is the relative, human readable time since the job listing was posted.
    3116 #: wp-job-manager-template.php:771
    3117 #: wp-job-manager-template.php:797
     3228#: wp-job-manager-template.php:777
     3229#: wp-job-manager-template.php:803
     3230#, php-format
    31183231msgid "Posted %s ago"
    31193232msgstr ""
    31203233
    31213234#. translators: Placeholder %s is the relative, human readable time the job listing is scheduled to be published.
    3122 #: wp-job-manager-template.php:774
     3235#: wp-job-manager-template.php:780
     3236#, php-format
    31233237msgid "Scheduled to publish in %s"
    31243238msgstr ""
    31253239
    3126 #: wp-job-manager-template.php:812
     3240#: wp-job-manager-template.php:818
    31273241msgid "Remote"
    31283242msgstr ""
    31293243
    3130 #: wp-job-manager-template.php:836
     3244#: wp-job-manager-template.php:842
    31313245msgid "Anywhere"
    31323246msgstr ""
  • wp-job-manager/tags/2.4.1/readme.txt

    r3313803 r3468765  
    33Tags: jobs, careers, company, hiring, job board
    44Requires at least: 6.4
    5 Tested up to: 6.8.1
     5Tested up to: 6.6
    66Requires PHP: 7.2
    7 Stable tag: 2.4.0
     7Stable tag: 2.4.1
    88License: GPLv3
    99License URI: http://www.gnu.org/licenses/gpl-3.0.html
     
    147147
    148148== Changelog ==
     149
     150### 2.4.1 - 2026-02-24
     151* Add permission check to listing query parameters (#2914)
     152* Fix structured data output for password-protected listings (#2913)
     153
     154* Update actions/cache to use v4 (#2896)
     155* reCaptcha script not being loaded (#2893)
     156* add a additional action to the do_feed_rss2
     157* fix hardcoded dashboard expiration date format
     158* Dev: Fix deprecated  methods
     159* Fix file input field for forms not marked as required
    149160
    150161### 2.4.0 - 2024-08-08
     
    188199* Fix PHP 7.x error for mixed returned type (#2726)
    189200
    190 ### 2.2.0 - 2024-01-29
    191 New:
    192 
    193 * Allow scheduling listings during job submission — add an option to show a 'Scheduled Date' field in the job submission form
    194 * Add new [jobs] shortcode parameter, featured_first so you can ensure featured listings always show up on top.
    195 * Add support for user sessions without a full account (used in the Job Alerts extension)
    196 
    197 Changes:
    198 
    199 * Improve styling for rich text e-mails
    200 * Include plain text alternative for rich text e-mails for better compatibility
    201 * Store previous license when plugin is deactivated for easier reactivation later.
    202 * Update design for settings and marketplace pages
    203 
    204 Fixes:
    205 
    206 * Fix custom role permission issues (#2673)
    207 * Fix RSS, Reset, Add Alert links not showing on search page without a keyword
    208 * Improve PHP 8 support
    209 * Fix numeric settings field issues
    210 * Improve e-mail formatting and encoding, remove extra whitespace
    211 * Add file type validation and error message to company logo upload
    212 * Fix cache issue when marking jobs as filled/not filled via bulk actions
    213 * Do not emit warning when user with insufficient access to Job Manager menu tries to access wp-admin
    214 
  • wp-job-manager/tags/2.4.1/templates/form-fields/file-field.php

    r2166302 r3468765  
    4747    class="<?php echo esc_attr( implode( ' ', $classes ) ); ?>"
    4848    data-file_types="<?php echo esc_attr( implode( '|', $allowed_mime_types ) ); ?>"
    49     <?php if ( ! empty( $field['multiple'] ) ) echo 'multiple'; ?>
     49    <?php if ( ! empty( $field['required'] ) ) echo ' required'; ?>
     50    <?php if ( ! empty( $field['multiple'] ) ) echo ' multiple'; ?>
    5051    <?php if ( $file_limit ) echo ' data-file_limit="' . absint( $file_limit ) . '"';?>
    5152    <?php if ( ! empty( $field['file_limit_message'] ) ) echo ' data-file_limit_message="' . esc_attr( $field['file_limit_message'] ) . '"';?>
  • wp-job-manager/tags/2.4.1/vendor/autoload.php

    r3078797 r3468765  
    1515        }
    1616    }
    17     trigger_error(
    18         $err,
    19         E_USER_ERROR
    20     );
     17    throw new RuntimeException($err);
    2118}
    2219
  • wp-job-manager/tags/2.4.1/vendor/composer/InstalledVersions.php

    r3078797 r3468765  
    2828{
    2929    /**
     30     * @var string|null if set (by reflection by Composer), this should be set to the path where this class is being copied to
     31     * @internal
     32     */
     33    private static $selfDir = null;
     34
     35    /**
    3036     * @var mixed[]|null
    3137     * @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}|array{}|null
    3238     */
    3339    private static $installed;
     40
     41    /**
     42     * @var bool
     43     */
     44    private static $installedIsLocalDir;
    3445
    3546    /**
     
    310321        self::$installed = $data;
    311322        self::$installedByVendor = array();
     323
     324        // when using reload, we disable the duplicate protection to ensure that self::$installed data is
     325        // always returned, but we cannot know whether it comes from the installed.php in __DIR__ or not,
     326        // so we have to assume it does not, and that may result in duplicate data being returned when listing
     327        // all installed packages for example
     328        self::$installedIsLocalDir = false;
     329    }
     330
     331    /**
     332     * @return string
     333     */
     334    private static function getSelfDir()
     335    {
     336        if (self::$selfDir === null) {
     337            self::$selfDir = strtr(__DIR__, '\\', '/');
     338        }
     339
     340        return self::$selfDir;
    312341    }
    313342
     
    323352
    324353        $installed = array();
     354        $copiedLocalDir = false;
    325355
    326356        if (self::$canGetVendors) {
     357            $selfDir = self::getSelfDir();
    327358            foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
     359                $vendorDir = strtr($vendorDir, '\\', '/');
    328360                if (isset(self::$installedByVendor[$vendorDir])) {
    329361                    $installed[] = self::$installedByVendor[$vendorDir];
     
    331363                    /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */
    332364                    $required = require $vendorDir.'/composer/installed.php';
    333                     $installed[] = self::$installedByVendor[$vendorDir] = $required;
    334                     if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
    335                         self::$installed = $installed[count($installed) - 1];
     365                    self::$installedByVendor[$vendorDir] = $required;
     366                    $installed[] = $required;
     367                    if (self::$installed === null && $vendorDir.'/composer' === $selfDir) {
     368                        self::$installed = $required;
     369                        self::$installedIsLocalDir = true;
    336370                    }
     371                }
     372                if (self::$installedIsLocalDir && $vendorDir.'/composer' === $selfDir) {
     373                    $copiedLocalDir = true;
    337374                }
    338375            }
     
    351388        }
    352389
    353         if (self::$installed !== array()) {
     390        if (self::$installed !== array() && !$copiedLocalDir) {
    354391            $installed[] = self::$installed;
    355392        }
  • wp-job-manager/tags/2.4.1/vendor/composer/autoload_static.php

    r3078797 r3468765  
    1212
    1313    public static $prefixLengthsPsr4 = array (
    14         'S' => 
     14        'S' =>
    1515        array (
    1616            'Symfony\\Polyfill\\Php80\\' => 23,
     
    1818            'Sabberworm\\CSS\\' => 15,
    1919        ),
    20         'P' => 
     20        'P' =>
    2121        array (
    2222            'Pelago\\Emogrifier\\' => 18,
     
    2525
    2626    public static $prefixDirsPsr4 = array (
    27         'Symfony\\Polyfill\\Php80\\' => 
     27        'Symfony\\Polyfill\\Php80\\' =>
    2828        array (
    2929            0 => __DIR__ . '/..' . '/symfony/polyfill-php80',
    3030        ),
    31         'Symfony\\Component\\CssSelector\\' => 
     31        'Symfony\\Component\\CssSelector\\' =>
    3232        array (
    3333            0 => __DIR__ . '/..' . '/symfony/css-selector',
    3434        ),
    35         'Sabberworm\\CSS\\' => 
     35        'Sabberworm\\CSS\\' =>
    3636        array (
    3737            0 => __DIR__ . '/..' . '/sabberworm/php-css-parser/src',
    3838        ),
    39         'Pelago\\Emogrifier\\' => 
     39        'Pelago\\Emogrifier\\' =>
    4040        array (
    4141            0 => __DIR__ . '/..' . '/pelago/emogrifier/src',
  • wp-job-manager/tags/2.4.1/vendor/composer/installed.php

    r3132877 r3468765  
    44        'pretty_version' => 'dev-trunk',
    55        'version' => 'dev-trunk',
    6         'reference' => 'a909c7d015e52f8c2add651b30a33c713c4e3033',
     6        'reference' => 'e45fc2de016422a9a71d29fc53d12af1d2b4b6d2',
    77        'type' => 'wordpress-plugin',
    88        'install_path' => __DIR__ . '/../../',
     
    1414            'pretty_version' => 'dev-trunk',
    1515            'version' => 'dev-trunk',
    16             'reference' => 'a909c7d015e52f8c2add651b30a33c713c4e3033',
     16            'reference' => 'e45fc2de016422a9a71d29fc53d12af1d2b4b6d2',
    1717            'type' => 'wordpress-plugin',
    1818            'install_path' => __DIR__ . '/../../',
  • wp-job-manager/tags/2.4.1/vendor/composer/platform_check.php

    r3078797 r3468765  
    2020        }
    2121    }
    22     trigger_error(
    23         'Composer detected issues in your platform: ' . implode(' ', $issues),
    24         E_USER_ERROR
     22    throw new \RuntimeException(
     23        'Composer detected issues in your platform: ' . implode(' ', $issues)
    2524    );
    2625}
  • wp-job-manager/tags/2.4.1/wp-job-manager-template.php

    r3078797 r3468765  
    338338    }
    339339
    340     // Only show structured data for un-filled and published job listings.
    341     $output_structured_data = ! is_position_filled( $post ) && 'publish' === $post->post_status;
     340    // Only show structured data for un-filled, published, and non-password-protected job listings.
     341    $output_structured_data = ! is_position_filled( $post )
     342        && 'publish' === $post->post_status
     343        && ! post_password_required( $post );
    342344
    343345    /**
     
    354356/**
    355357 * Gets the structured data for the job listing.
     358 *
     359 * Note: This function does not check if the job listing is published, filled,
     360 * password-protected, or otherwise hidden. Use wpjm_output_job_listing_structured_data()
     361 * to check if structured data should be output for a given job listing.
    356362 *
    357363 * @since 1.28.0
  • wp-job-manager/tags/2.4.1/wp-job-manager.php

    r3313803 r3468765  
    44 * Plugin URI: https://wpjobmanager.com/
    55 * Description: Manage job listings from the WordPress admin panel, and allow users to post jobs directly to your site.
    6  * Version: 2.4.0
     6 * Version: 2.4.1
    77 * Author: Automattic
    88 * Author URI: https://wpjobmanager.com/
    99 * Requires at least: 6.4
    10  * Tested up to: 6.8.1
     10 * Tested up to: 6.6
    1111 * Requires PHP: 7.4
    1212 * Text Domain: wp-job-manager
     
    2222
    2323// Define constants.
    24 define( 'JOB_MANAGER_VERSION', '2.4.0' );
     24define( 'JOB_MANAGER_VERSION', '2.4.1' );
    2525define( 'JOB_MANAGER_PLUGIN_DIR', untrailingslashit( plugin_dir_path( __FILE__ ) ) );
    2626define( 'JOB_MANAGER_PLUGIN_URL', untrailingslashit( plugins_url( basename( plugin_dir_path( __FILE__ ) ), basename( __FILE__ ) ) ) );
  • wp-job-manager/trunk/changelog.txt

    r3132877 r3468765  
    11# WP Job Manager
     2
     3## 2.4.1 - 2026-02-24
     4* Add permission check to listing query parameters (#2914)
     5* Fix structured data output for password-protected listings (#2913)
     6
     7* Update actions/cache to use v4 (#2896)
     8* reCaptcha script not being loaded (#2893)
     9* add a additional action to the do_feed_rss2
     10* fix hardcoded dashboard expiration date format
     11* Dev: Fix deprecated  methods
     12* Fix file input field for forms not marked as required
    213
    314## 2.4.0 - 2024-08-08
  • wp-job-manager/trunk/includes/class-job-dashboard-shortcode.php

    r3078797 r3468765  
    595595
    596596    /**
    597      * Show job title.
     597     * Show the job date
    598598     *
    599599     * @param \WP_Post $job
     
    602602     */
    603603    public static function the_date( $job ) {
    604         echo '<div>' . esc_html( wp_date( apply_filters( 'job_manager_get_dashboard_date_format', 'M d, Y' ), get_post_datetime( $job )->getTimestamp() ) ) . '</div>';
     604        $date_format = get_option( 'date_format' ) ?: 'M d, Y';
     605        echo '<div>' . esc_html( wp_date( apply_filters( 'job_manager_get_dashboard_date_format', $date_format ), get_post_datetime( $job )->getTimestamp() ) ) . '</div>';
    605606    }
    606607
  • wp-job-manager/trunk/includes/class-wp-job-manager-ajax.php

    r3028247 r3468765  
    145145        }
    146146
     147        // Ensure the current user can filter by post_status.
     148        if ( is_array( $filter_post_status ) && ! current_user_can( \WP_Job_Manager_Post_Types::CAP_EDIT_LISTINGS ) ) {
     149            $filter_post_status = null;
     150        }
     151
    147152        $types              = get_job_listing_types();
    148153        $job_types_filtered = ! is_null( $filter_job_types ) && count( $types ) !== count( $filter_job_types );
  • wp-job-manager/trunk/includes/class-wp-job-manager-post-types.php

    r3132877 r3468765  
    808808        add_action( 'rss2_ns', [ $this, 'job_feed_namespace' ] );
    809809        add_action( 'rss2_item', [ $this, 'job_feed_item' ] );
    810         do_feed_rss2( false );
     810        do_action( 'do_feed_rss2', false );
    811811        remove_filter( 'posts_search', 'get_job_listings_keyword_search', 10 );
    812812    }
  • wp-job-manager/trunk/includes/class-wp-job-manager-recaptcha.php

    r3078797 r3468765  
    7878            }
    7979
    80             add_action( 'wp_enqueue_scripts', [ $this, 'enqueue_scripts' ] );
     80            if ( did_action( 'wp_enqueue_scripts' ) ) {
     81                $this->enqueue_scripts();
     82            } else {
     83                add_action( 'wp_enqueue_scripts', [ $this, 'enqueue_scripts' ] );
     84            }
    8185        }
    8286    }
  • wp-job-manager/trunk/includes/class-wp-job-manager-shortcodes.php

    r3078797 r3468765  
    144144
    145145        return Job_Dashboard_Shortcode::instance()->filter_paginate_links( $link );
     146    }
     147
     148    /**
     149     * Handles actions which need to be run before the shortcode e.g. post actions.
     150     *
     151     * @deprecated 2.4.1 - Moved to Job_Dashboard_Shortcode.
     152     */
     153    public function shortcode_action_handler() {
     154        _deprecated_function( __METHOD__, '2.4.1', 'Job_Dashboard_Shortcode::handle_actions' );
     155        Job_Dashboard_Shortcode::instance()->handle_actions();
     156    }
     157
     158    /**
     159     * Handles actions on job dashboard.
     160     *
     161     * @throws Exception On action handling error.
     162     *
     163     * @deprecated 2.4.1 - Moved to Job_Dashboard_Shortcode.
     164     */
     165    public function job_dashboard_handler() {
     166        _deprecated_function( __METHOD__, '2.4.1', 'Job_Dashboard_Shortcode::handle_actions' );
     167        Job_Dashboard_Shortcode::instance()->handle_actions();
    146168    }
    147169
     
    588610    }
    589611
     612    /**
     613     * Add expiration details to the job dashboard date column.
     614     *
     615     * @param \WP_Post $job
     616     *
     617     * @deprecated 2.4.1 - Moved to Job_Dashboard_Shortcode.
     618     *
     619     * @output string
     620     */
     621    public function job_dashboard_date_column_expires( $job ) {
     622        _deprecated_function( __METHOD__, '2.4.1', 'Job_Dashboard_Shortcode::the_expiration_date' );
     623        Job_Dashboard_Shortcode::instance()->the_expiration_date( $job );
     624    }
     625
     626    /**
     627     * Add job status to the job dashboard title column.
     628     *
     629     * @param \WP_Post $job
     630     *
     631     * @deprecated 2.4.1 - Moved to Job_Dashboard_Shortcode.
     632     *
     633     * @output string
     634     */
     635    public function job_dashboard_title_column_status( $job ) {
     636        _deprecated_function( __METHOD__, '2.4.1', 'Job_Dashboard_Shortcode::the_job_status' );
     637        Job_Dashboard_Shortcode::instance()->the_status( $job );
     638    }
     639
     640
     641
    590642}
    591643
  • wp-job-manager/trunk/languages/wp-job-manager.pot

    r3132877 r3468765  
    1 # Copyright (C) 2024 Automattic
     1# Copyright (C) 2026 Automattic
    22# This file is distributed under the GPL2+.
    33msgid ""
    44msgstr ""
    5 "Project-Id-Version: WP Job Manager 2.4.0\n"
     5"Project-Id-Version: WP Job Manager 2.4.1\n"
    66"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wp-job-manager/\n"
    77"Last-Translator: \n"
     
    1010"Content-Type: text/plain; charset=UTF-8\n"
    1111"Content-Transfer-Encoding: 8bit\n"
    12 "POT-Creation-Date: 2024-07-25T08:58:08+00:00\n"
     12"POT-Creation-Date: 2026-02-24T15:29:38+00:00\n"
    1313"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
    14 "X-Generator: WP-CLI 2.10.0\n"
     14"X-Generator: WP-CLI 2.12.0\n"
    1515"X-Domain: wp-job-manager\n"
    1616
     
    6363#. translators: Placeholder (%s) is the URL to edit the primary language in WPML.
    6464#: includes/3rd-party/wpml.php:108
     65#, php-format
    6566msgid "<a href=\"%s\">Switch to primary language</a> to edit this setting."
    6667msgstr ""
     
    7273#. translators: Placeholder %s is the Terms and Conditions placeholder.
    7374#: includes/abstracts/abstract-wp-job-manager-form.php:383
     75#, php-format
    7476msgid "I accept the %s."
    7577msgstr ""
     
    248250#. translators: %s is the new version number for the addon.
    249251#: includes/admin/class-wp-job-manager-admin-notices.php:647
     252#, php-format
    250253msgid "New Version: %s"
    251254msgstr ""
     
    343346#. translators: Placeholder (%s) is the plural name of the job listings post type.
    344347#: includes/admin/class-wp-job-manager-cpt.php:81
     348#, php-format
    345349msgid "Approve %s"
    346350msgstr ""
     
    348352#. translators: Placeholder (%s) is the plural name of the job listings post type.
    349353#: includes/admin/class-wp-job-manager-cpt.php:83
     354#, php-format
    350355msgid "%s approved"
    351356msgstr ""
     
    353358#. translators: Placeholder (%s) is the plural name of the job listings post type.
    354359#: includes/admin/class-wp-job-manager-cpt.php:88
     360#, php-format
    355361msgid "Expire %s"
    356362msgstr ""
     
    358364#. translators: Placeholder (%s) is the plural name of the job listings post type.
    359365#: includes/admin/class-wp-job-manager-cpt.php:90
     366#, php-format
    360367msgid "%s expired"
    361368msgstr ""
     
    363370#. translators: Placeholder (%s) is the plural name of the job listings post type.
    364371#: includes/admin/class-wp-job-manager-cpt.php:95
     372#, php-format
    365373msgid "Mark %s Filled"
    366374msgstr ""
     
    368376#. translators: Placeholder (%s) is the plural name of the job listings post type.
    369377#: includes/admin/class-wp-job-manager-cpt.php:97
     378#, php-format
    370379msgid "%s marked as filled"
    371380msgstr ""
     
    373382#. translators: Placeholder (%s) is the plural name of the job listings post type.
    374383#: includes/admin/class-wp-job-manager-cpt.php:102
     384#, php-format
    375385msgid "Mark %s Not Filled"
    376386msgstr ""
     
    378388#. translators: Placeholder (%s) is the plural name of the job listings post type.
    379389#: includes/admin/class-wp-job-manager-cpt.php:104
     390#, php-format
    380391msgid "%s marked as not filled"
    381392msgstr ""
     
    390401
    391402#: includes/admin/class-wp-job-manager-cpt.php:367
    392 #: includes/class-job-dashboard-shortcode.php:648
     403#: includes/class-job-dashboard-shortcode.php:649
    393404msgid "Filled"
    394405msgstr ""
     
    403414
    404415#: includes/admin/class-wp-job-manager-cpt.php:386
    405 #: includes/class-job-dashboard-shortcode.php:654
     416#: includes/class-job-dashboard-shortcode.php:655
    406417msgid "Featured"
    407418msgstr ""
     
    418429#. translators: %1$s is the singular name of the job listing post type; %2$s is the URL to view the listing.
    419430#: includes/admin/class-wp-job-manager-cpt.php:457
     431#, php-format
    420432msgid "%1$s updated. <a href=\"%2$s\">View</a>"
    421433msgstr ""
     
    431443#. translators: %s is the singular name of the job listing post type.
    432444#: includes/admin/class-wp-job-manager-cpt.php:461
     445#, php-format
    433446msgid "%s updated."
    434447msgstr ""
     
    436449#. translators: %1$s is the singular name of the job listing post type; %2$s is the revision number.
    437450#: includes/admin/class-wp-job-manager-cpt.php:463
     451#, php-format
    438452msgid "%1$s restored to revision from %2$s"
    439453msgstr ""
     
    441455#. translators: %1$s is the singular name of the job listing post type; %2$s is the URL to view the listing.
    442456#: includes/admin/class-wp-job-manager-cpt.php:465
     457#, php-format
    443458msgid "%1$s published. <a href=\"%2$s\">View</a>"
    444459msgstr ""
     
    446461#. translators: %1$s is the singular name of the job listing post type; %2$s is the URL to view the listing.
    447462#: includes/admin/class-wp-job-manager-cpt.php:467
     463#, php-format
    448464msgid "%s saved."
    449465msgstr ""
     
    451467#. translators: %1$s is the singular name of the job listing post type; %2$s is the URL to preview the listing.
    452468#: includes/admin/class-wp-job-manager-cpt.php:469
     469#, php-format
    453470msgid "%1$s submitted. <a target=\"_blank\" href=\"%2$s\">Preview</a>"
    454471msgstr ""
     
    456473#. translators: %1$s is the singular name of the post type; %2$s is the date the post will be published; %3$s is the URL to preview the listing.
    457474#: includes/admin/class-wp-job-manager-cpt.php:472
     475#, php-format
    458476msgid "%1$s scheduled for: <strong>%2$s</strong>. <a target=\"_blank\" href=\"%3$s\">Preview</a>"
    459477msgstr ""
     
    461479#. translators: %1$s is the singular name of the job listing post type; %2$s is the URL to view the listing.
    462480#: includes/admin/class-wp-job-manager-cpt.php:478
     481#, php-format
    463482msgid "%1$s draft updated. <a target=\"_blank\" href=\"%2$s\">Preview</a>"
    464483msgstr ""
     
    532551#. translators: %d is the post ID for the job listing.
    533552#: includes/admin/class-wp-job-manager-cpt.php:623
     553#, php-format
    534554msgid "ID: %d"
    535555msgstr ""
     
    546566#. translators: %s placeholder is the username of the user.
    547567#: includes/admin/class-wp-job-manager-cpt.php:676
     568#, php-format
    548569msgid "by %s"
    549570msgstr ""
     
    612633#. translators: Placeholder (%s) is the name of the job listing affected.
    613634#: includes/admin/class-wp-job-manager-promoted-jobs-admin.php:177
     635#, php-format
    614636msgid "Promotion for %s deactivated"
    615637msgstr ""
     
    714736#. translators: Placeholder %s is URL to set up a Google Maps API key.
    715737#: includes/admin/class-wp-job-manager-settings.php:145
     738#, php-format
    716739msgid "Google requires an API key to retrieve location information for job listings. Acquire an API key from the <a href=\"%s\">Google Maps API developer site</a>."
    717740msgstr ""
     
    11831206#. translators: Placeholder %s is URL to set up Google reCAPTCHA API key.
    11841207#: includes/admin/class-wp-job-manager-settings.php:543
     1208#, php-format
    11851209msgid "You can retrieve your reCAPTCHA site key from <a href=\"%s\">Google's reCAPTCHA admin dashboard</a>."
    11861210msgstr ""
     
    11921216#. translators: Placeholder %s is URL to set up Google reCAPTCHA API key.
    11931217#: includes/admin/class-wp-job-manager-settings.php:552
     1218#, php-format
    11941219msgid "You can retrieve your reCAPTCHA secret key from <a href=\"%s\">Google's reCAPTCHA admin dashboard</a>."
    11951220msgstr ""
     
    12531278#. translators: Placeholder %s is the url to the WordPress core documentation for capabilities and roles.
    12541279#: includes/admin/class-wp-job-manager-settings.php:614
     1280#, php-format
    12551281msgid "Enter which <a href=\"%s\">roles or capabilities</a> allow visitors to browse job listings. If no value is selected, everyone (including logged out guests) will be able to browse job listings."
    12561282msgstr ""
     
    12621288#. translators: Placeholder %s is the url to the WordPress core documentation for capabilities and roles.
    12631289#: includes/admin/class-wp-job-manager-settings.php:624
     1290#, php-format
    12641291msgid "Enter which <a href=\"%s\">roles or capabilities</a> allow visitors to view a single job listing. If no value is selected, everyone (including logged out guests) will be able to view job listings."
    12651292msgstr ""
     
    13081335#. translators: Placeholder %s is the singular name for a job listing post type.
    13091336#: includes/admin/class-wp-job-manager-writepanels.php:154
     1337#, php-format
    13101338msgid "%s Data"
    13111339msgstr ""
     
    13271355#. translators: Used in user select. %1$s is the user's display name; #%2$s is the user ID; %3$s is the user email.
    13281356#: includes/admin/class-wp-job-manager-writepanels.php:532
    1329 #: includes/class-wp-job-manager-ajax.php:426
     1357#: includes/class-wp-job-manager-ajax.php:431
     1358#, php-format
    13301359msgid "%1$s (#%2$s – %3$s)"
    13311360msgstr ""
     
    13451374#. translators: %1$s is placeholder for singular name of the job listing post type; %2$s is the intl formatted date the listing was last modified.
    13461375#: includes/admin/class-wp-job-manager-writepanels.php:619
     1376#, php-format
    13471377msgid "%1$s was last modified by the user on %2$s."
    13481378msgstr ""
     
    14151445#. translators: Placeholder %s is the path to WPJM documentation site.
    14161446#: includes/admin/views/html-admin-setup-step-1.php:19
     1447#, php-format
    14171448msgid "If you'd prefer to skip this and set up your pages manually, our <a target=\"_blank\" href=\"%s\">documentation</a> will walk you through each step."
    14181449msgstr ""
     
    14361467#. translators: %1$s is URL to WordPress core shortcode documentation. %2$s is URL to WPJM specific shortcode reference.
    14371468#: includes/admin/views/html-admin-setup-step-2.php:20
     1469#, php-format
    14381470msgid ""
    14391471"(These pages are created using <a href=\"%1$s\" title=\"What is a shortcode?\" class=\"help-page-link\">shortcodes</a>,\n"
     
    15311563#. translators: %1$s is the URL to WPJM support documentation; %2$s is the URL to WPJM support forums.
    15321564#: includes/admin/views/html-admin-setup-step-3.php:52
     1565#, php-format
    15331566msgid ""
    15341567"If you need help, you can find more detail in our\n"
     
    16061639#. translators: Placeholder %s is the job listing title.
    16071640#: includes/class-job-dashboard-shortcode.php:451
     1641#, php-format
    16081642msgid "%s has been filled"
    16091643msgstr ""
     
    16151649#. translators: Placeholder %s is the job listing title.
    16161650#: includes/class-job-dashboard-shortcode.php:464
     1651#, php-format
    16171652msgid "%s has been marked as not filled"
    16181653msgstr ""
     
    16201655#. translators: Placeholder %s is the job listing title.
    16211656#: includes/class-job-dashboard-shortcode.php:472
     1657#, php-format
    16221658msgid "%s has been deleted"
    16231659msgstr ""
     
    16301666#. translators: Placeholder is the expiration date of the job listing.
    16311667#: includes/class-job-dashboard-shortcode.php:548
     1668#, php-format
    16321669msgid "Expires in %s"
    16331670msgstr ""
     
    16511688#. translators: %1d is the number of page views.
    16521689#: includes/class-stats-dashboard.php:68
     1690#, php-format
    16531691msgid "%1d view"
    16541692msgid_plural "%1d views"
     
    16581696#. translators: %1d is the number of impressions.
    16591697#: includes/class-stats-dashboard.php:70
     1698#, php-format
    16601699msgid "%1d impression"
    16611700msgid_plural "%1d impressions"
     
    17071746
    17081747#. translators: Placeholder %d is the number of found search results.
    1709 #: includes/class-wp-job-manager-ajax.php:193
     1748#: includes/class-wp-job-manager-ajax.php:198
     1749#, php-format
    17101750msgid "Search completed. Found %d matching record."
    17111751msgid_plural "Search completed. Found %d matching records."
     
    17131753msgstr[1] ""
    17141754
    1715 #: includes/class-wp-job-manager-ajax.php:291
     1755#: includes/class-wp-job-manager-ajax.php:296
    17161756msgid "You must be logged in to upload files using this method."
    17171757msgstr ""
     
    17531793#. translators: %1$s is version of PHP that WP Job Manager requires; %2$s is the version of PHP WordPress is running on.
    17541794#: includes/class-wp-job-manager-dependency-checker.php:66
     1795#, php-format
    17551796msgid "<strong>WP Job Manager</strong> requires a minimum PHP version of %1$s, but you are running %2$s."
    17561797msgstr ""
     
    17671808#. translators: %s is the URL for the page where users can go to update WordPress.
    17681809#: includes/class-wp-job-manager-dependency-checker.php:118
     1810#, php-format
    17691811msgid "Please <a href=\"%s\">update WordPress</a> to avoid issues."
    17701812msgstr ""
     
    18591901#: includes/class-wp-job-manager-post-types.php:376
    18601902#: includes/class-wp-job-manager-post-types.php:474
     1903#, php-format
    18611904msgid "Search %s"
    18621905msgstr ""
     
    18681911#: includes/class-wp-job-manager-post-types.php:378
    18691912#: includes/class-wp-job-manager-post-types.php:460
     1913#, php-format
    18701914msgid "All %s"
    18711915msgstr ""
     
    18771921#: includes/class-wp-job-manager-post-types.php:380
    18781922#: includes/class-wp-job-manager-post-types.php:480
     1923#, php-format
    18791924msgid "Parent %s"
    18801925msgstr ""
     
    18841929#: includes/class-wp-job-manager-post-types.php:319
    18851930#: includes/class-wp-job-manager-post-types.php:382
     1931#, php-format
    18861932msgid "Parent %s:"
    18871933msgstr ""
     
    18931939#: includes/class-wp-job-manager-post-types.php:384
    18941940#: includes/class-wp-job-manager-post-types.php:466
     1941#, php-format
    18951942msgid "Edit %s"
    18961943msgstr ""
     
    19001947#: includes/class-wp-job-manager-post-types.php:323
    19011948#: includes/class-wp-job-manager-post-types.php:386
     1949#, php-format
    19021950msgid "Update %s"
    19031951msgstr ""
     
    19071955#: includes/class-wp-job-manager-post-types.php:325
    19081956#: includes/class-wp-job-manager-post-types.php:388
     1957#, php-format
    19091958msgid "Add New %s"
    19101959msgstr ""
     
    19141963#: includes/class-wp-job-manager-post-types.php:327
    19151964#: includes/class-wp-job-manager-post-types.php:390
     1965#, php-format
    19161966msgid "New %s Name"
    19171967msgstr ""
     
    19351985#. translators: Placeholder %s is the singular label of the job listing post type.
    19361986#: includes/class-wp-job-manager-post-types.php:463
     1987#, php-format
    19371988msgid "Add %s"
    19381989msgstr ""
     
    19401991#. translators: Placeholder %s is the singular label of the job listing post type.
    19411992#: includes/class-wp-job-manager-post-types.php:468
     1993#, php-format
    19421994msgid "New %s"
    19431995msgstr ""
     
    19461998#: includes/class-wp-job-manager-post-types.php:470
    19471999#: includes/class-wp-job-manager-post-types.php:472
     2000#, php-format
    19482001msgid "View %s"
    19492002msgstr ""
     
    19512004#. translators: Placeholder %s is the singular label of the job listing post type.
    19522005#: includes/class-wp-job-manager-post-types.php:476
     2006#, php-format
    19532007msgid "No %s found"
    19542008msgstr ""
     
    19562010#. translators: Placeholder %s is the plural label of the job listing post type.
    19572011#: includes/class-wp-job-manager-post-types.php:478
     2012#, php-format
    19582013msgid "No %s found in trash"
    19592014msgstr ""
     
    19732028#. translators: Placeholder %s is the plural label of the job listing post type.
    19742029#: includes/class-wp-job-manager-post-types.php:487
     2030#, php-format
    19752031msgid "This is where you can create and manage %s."
    19762032msgstr ""
     
    19842040#. translators: Placeholder %s is the number of expired posts of this type.
    19852041#: includes/class-wp-job-manager-post-types.php:529
     2042#, php-format
    19862043msgid "Expired <span class=\"count\">(%s)</span>"
    19872044msgid_plural "Expired <span class=\"count\">(%s)</span>"
     
    19972054#. translators: Placeholder %s is the number of posts in a preview state.
    19982055#: includes/class-wp-job-manager-post-types.php:541
     2056#, php-format
    19992057msgid "Preview <span class=\"count\">(%s)</span>"
    20002058msgid_plural "Preview <span class=\"count\">(%s)</span>"
     
    21152173
    21162174#. translators: %s is the name of the form validation that failed.
    2117 #: includes/class-wp-job-manager-recaptcha.php:177
     2175#: includes/class-wp-job-manager-recaptcha.php:181
     2176#, php-format
    21182177msgid "\"%s\" check failed. Please try again."
    21192178msgstr ""
    21202179
    2121 #: includes/class-wp-job-manager-shortcodes.php:311
    2122 #: includes/class-wp-job-manager-shortcodes.php:351
     2180#: includes/class-wp-job-manager-shortcodes.php:333
     2181#: includes/class-wp-job-manager-shortcodes.php:373
    21232182msgid "Load more listings"
    21242183msgstr ""
     
    21262185#. translators: Placeholder %s is a URL to the document on wpjobmanager.com with info on usage tracking.
    21272186#: includes/class-wp-job-manager-usage-tracking.php:230
     2187#, php-format
    21282188msgid ""
    21292189"<p>We'd love if you helped us make WP Job Manager better by allowing us to collect\n"
     
    21342194#. translators: the href tag contains the URL for the page telling users what data WPJM tracks.
    21352195#: includes/class-wp-job-manager-usage-tracking.php:269
     2196#, php-format
    21362197msgid ""
    21372198"Help us make Job Manager better by allowing us to collect\n"
     
    21462207#. translators: Placeholders %1$s and %2$s are the names of the two cookies used in WP Job Manager.
    21472208#: includes/class-wp-job-manager.php:195
     2209#, php-format
    21482210msgid ""
    21492211"This site adds the following cookies to help users resume job submissions that they\n"
     
    21662228#: includes/class-wp-job-manager.php:581
    21672229#: includes/forms/class-wp-job-manager-form-submit-job.php:516
     2230#, php-format
    21682231msgid "You are only allowed to upload a maximum of %d files."
    21692232msgstr ""
     
    21912254#. translators: Placeholder %s is the job listing post title.
    21922255#: includes/emails/class-wp-job-manager-email-admin-new-job.php:63
     2256#, php-format
    21932257msgid "New Job Listing Submitted: %s"
    21942258msgstr ""
     
    22042268#. translators: Placeholder %s is the job listing post title.
    22052269#: includes/emails/class-wp-job-manager-email-admin-updated-job.php:63
     2270#, php-format
    22062271msgid "Job Listing Updated: %s"
    22072272msgstr ""
     
    22172282#. translators: Placeholder %s is the job listing post title.
    22182283#: includes/emails/class-wp-job-manager-email-employer-expiring-job.php:79
     2284#, php-format
    22192285msgid "Job Listing Expiring: %s"
    22202286msgstr ""
     
    23332399#. translators: Placeholder %s is the label for the required field.
    23342400#: includes/forms/class-wp-job-manager-form-submit-job.php:437
     2401#, php-format
    23352402msgid "%s is a required field"
    23362403msgstr ""
     
    23382405#. translators: Placeholder %s is the field label that is did not validate.
    23392406#: includes/forms/class-wp-job-manager-form-submit-job.php:448
     2407#, php-format
    23402408msgid "%s is invalid"
    23412409msgstr ""
     
    23492417#: includes/forms/class-wp-job-manager-form-submit-job.php:489
    23502418#: wp-job-manager-functions.php:1529
     2419#, php-format
    23512420msgid "\"%1$s\" (filetype %2$s) needs to be one of the following file types: %3$s"
    23522421msgstr ""
     
    23862455#. translators: Placeholder %s is the password hint.
    23872456#: includes/forms/class-wp-job-manager-form-submit-job.php:761
     2457#, php-format
    23882458msgid "Invalid Password: %s"
    23892459msgstr ""
     
    23992469#. translators: placeholder is the URL to the job dashboard page.
    24002470#: includes/forms/class-wp-job-manager-form-submit-job.php:821
     2471#, php-format
    24012472msgid "Draft was saved. Job listing drafts can be resumed from the <a href=\"%s\">job dashboard</a>."
    24022473msgstr ""
     
    24202491#. translators: First placeholder is the plugin name, second placeholder is the My Account URL.
    24212492#: includes/helper/class-wp-job-manager-helper.php:400
     2493#, php-format
    24222494msgid "<strong>Error:</strong> The license for <strong>%1$s</strong> is not activated on this website and has been removed. Manage your activations on your <a href=\"%2$s\" rel=\"noopener noreferrer\" target=\"_blank\">My Account page</a>."
    24232495msgstr ""
     
    24252497#. translators: First placeholder is the plugin name; second placeholder is the URL to purchase the plugin.
    24262498#: includes/helper/class-wp-job-manager-helper.php:405
     2499#, php-format
    24272500msgid "<strong>Error:</strong> The license for <strong>%1$s</strong> is not valid and has been removed. <a href=\"%2$s\" rel=\"noopener noreferrer\" target=\"_blank\">Purchase a new license</a> to receive updates and support."
    24282501msgstr ""
     
    24302503#. translators: First placeholder is the plugin name, second placeholder is the My Account URL.
    24312504#: includes/helper/class-wp-job-manager-helper.php:410
     2505#, php-format
    24322506msgid "<strong>Error:</strong> The license for <strong>%1$s</strong> has expired. You must <a href=\"%2$s\" rel=\"noopener noreferrer\" target=\"_blank\">renew your license</a> to receive updates and support."
    24332507msgstr ""
     
    24352509#. translators: First placeholder is the plugin name, second placeholder is the My Account URL.
    24362510#: includes/helper/class-wp-job-manager-helper.php:413
     2511#, php-format
    24372512msgid "<strong>Error:</strong> The license for <strong>%1$s</strong> is expiring soon. Please <a href=\"%2$s\" rel=\"noopener noreferrer\" target=\"_blank\">renew your license</a> to continue receiving updates and support."
    24382513msgstr ""
     
    24982573#. translators: %1$s is the URL to the license key page.
    24992574#: includes/helper/class-wp-job-manager-helper.php:1136
     2575#, php-format
    25002576msgid "<a href=\"%1$s\">Please add or review your license keys</a> to get updates for the following extensions:"
    25012577msgstr ""
     
    25352611#. translators: placeholder is the number of active addons, which will never be zero.
    25362612#: includes/helper/views/html-licenses.php:62
     2613#, php-format
    25372614msgid "Active (%d)"
    25382615msgstr ""
     
    25412618#: includes/helper/views/html-licenses.php:71
    25422619#: includes/helper/views/html-licenses.php:136
     2620#, php-format
    25432621msgid "Plugin Icon for %s"
    25442622msgstr ""
     
    25552633#. translators: placeholder is the number of inactive addons, which will never be zero.
    25562634#: includes/helper/views/html-licenses.php:127
     2635#, php-format
    25572636msgid "Inactive (%d)"
    25582637msgstr ""
     
    25602639#. translators: Placeholder %s is the lost license key URL.
    25612640#: includes/helper/views/html-licenses.php:187
     2641#, php-format
    25622642msgid "Lost your license key? <a href=\"%s\">You can find them on the My Account page</a>."
    25632643msgstr ""
     
    25922672#: includes/widgets/class-wp-job-manager-widget-featured-jobs.php:27
    25932673#: includes/widgets/class-wp-job-manager-widget-featured-jobs.php:35
     2674#, php-format
    25942675msgid "Featured %s"
    25952676msgstr ""
     
    26362717#: includes/widgets/class-wp-job-manager-widget-recent-jobs.php:27
    26372718#: includes/widgets/class-wp-job-manager-widget-recent-jobs.php:35
     2719#, php-format
    26382720msgid "Recent %s"
    26392721msgstr ""
     
    26772759#. translators: Placeholder %s is the username.
    26782760#: templates/account-signin.php:26
     2761#, php-format
    26792762msgid "You are currently signed in as <strong>%s</strong>."
    26802763msgstr ""
     
    27372820#. translators: %1$s placeholder is URL to the blog. %2$s placeholder is the name of the site.
    27382821#: templates/emails/admin-expiring-job.php:32
     2822#, php-format
    27392823msgid "The following job listing is expiring today from <a href=\"%1$s\">%2$s</a>."
    27402824msgstr ""
     
    27422826#. translators: %1$s placeholder is URL to the blog. %2$s placeholder is the name of the site.
    27432827#: templates/emails/admin-expiring-job.php:35
     2828#, php-format
    27442829msgid "The following job listing is expiring soon from <a href=\"%1$s\">%2$s</a>."
    27452830msgstr ""
     
    27472832#. translators: Placeholder is URL to site's WP admin.
    27482833#: templates/emails/admin-expiring-job.php:41
     2834#, php-format
    27492835msgid "Visit <a href=\"%s\">WordPress admin</a> to manage the listing."
    27502836msgstr ""
     
    27522838#. translators: %1$s placeholder is URL to the blog. %2$s placeholder is the name of the site.
    27532839#: templates/emails/admin-new-job.php:27
     2840#, php-format
    27542841msgid "A new job listing has been submitted to <a href=\"%s\">%s</a>."
    27552842msgstr ""
     
    27622849#. translators: Placeholder %s is the admin job listings URL.
    27632850#: templates/emails/admin-new-job.php:40
     2851#, php-format
    27642852msgid "It is awaiting approval by an administrator in <a href=\"%s\">WordPress admin</a>."
    27652853msgstr ""
     
    27672855#. translators: %1$s placeholder is URL to the blog. %2$s placeholder is the name of the site.
    27682856#: templates/emails/admin-updated-job.php:26
     2857#, php-format
    27692858msgid "A job listing has been updated on <a href=\"%s\">%s</a>."
    27702859msgstr ""
     
    27772866#. translators: Placeholder %s is the admin job listings URL.
    27782867#: templates/emails/admin-updated-job.php:34
     2868#, php-format
    27792869msgid "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>."
    27802870msgstr ""
     
    27822872#. translators: %1$s placeholder is URL to the blog. %2$s placeholder is the name of the site.
    27832873#: templates/emails/employer-expiring-job.php:33
     2874#, php-format
    27842875msgid "The following job listing is expiring today from <a href=\"%s\">%s</a>."
    27852876msgstr ""
     
    27872878#. translators: %1$s placeholder is URL to the blog. %2$s placeholder is the name of the site.
    27882879#: templates/emails/employer-expiring-job.php:42
     2880#, php-format
    27892881msgid "The following job listing is expiring soon from <a href=\"%s\">%s</a>."
    27902882msgstr ""
     
    27922884#. translators: Placeholder %s is the job listing dashboard URL.
    27932885#: templates/emails/employer-expiring-job.php:51
     2886#, php-format
    27942887msgid "Visit the <a href=\"%s\">job listing dashboard</a> to manage the listing."
    27952888msgstr ""
     
    27982891#: templates/emails/plain/admin-expiring-job.php:31
    27992892#: templates/emails/plain/employer-expiring-job.php:30
     2893#, php-format
    28002894msgid "The following job listing is expiring today from %1$s (%2$s)."
    28012895msgstr ""
     
    28042898#: templates/emails/plain/admin-expiring-job.php:38
    28052899#: templates/emails/plain/employer-expiring-job.php:33
     2900#, php-format
    28062901msgid "The following job listing is expiring soon from %1$s (%2$s)."
    28072902msgstr ""
     
    28092904#. translators: Placeholder %s is the edit job URL.
    28102905#: templates/emails/plain/admin-expiring-job.php:46
     2906#, php-format
    28112907msgid "Visit WordPress admin (%s) to manage the listing."
    28122908msgstr ""
     
    28142910#. translators: %1$s placeholder is the name of the site, %2$s placeholder is URL to the blog.
    28152911#: templates/emails/plain/admin-new-job.php:24
     2912#, php-format
    28162913msgid "A new job listing has been submitted to %1$s (%2$s)."
    28172914msgstr ""
     
    28192916#. translators: Placeholder %s is the admin job listings URL.
    28202917#: templates/emails/plain/admin-new-job.php:31
     2918#, php-format
    28212919msgid "It is awaiting approval by an administrator in WordPress admin (%s)."
    28222920msgstr ""
     
    28242922#. translators: %1$s placeholder is the name of the site, %2$s placeholder is URL to the blog.
    28252923#: templates/emails/plain/admin-updated-job.php:24
     2924#, php-format
    28262925msgid "A job listing has been updated on %1$s (%2$s)."
    28272926msgstr ""
     
    28292928#. translators: Placeholder %s is the admin job listings URL.
    28302929#: templates/emails/plain/admin-updated-job.php:31
     2930#, php-format
    28312931msgid "The job listing is not publicly available until the changes are approved by an administrator in the site's WordPress admin (%s)."
    28322932msgstr ""
     
    28342934#. translators: Placeholder %s is the job listing dashboard URL.
    28352935#: templates/emails/plain/employer-expiring-job.php:36
     2936#, php-format
    28362937msgid "Visit the job listing dashboard (%s) to manage the listing."
    28372938msgstr ""
    28382939
    2839 #: templates/form-fields/file-field.php:60
     2940#: templates/form-fields/file-field.php:61
     2941#, php-format
    28402942msgid "Maximum file size: %s."
    28412943msgstr ""
     
    28622964#. translators: %1$s is the email address, %2$s is the subject query args.
    28632965#: templates/job-application-email.php:19
     2966#, php-format
    28642967msgid "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>"
    28652968msgstr ""
     
    28832986#. translators: Placeholder is the search term.
    28842987#: templates/job-dashboard.php:64
     2988#, php-format
    28852989msgid "No results found for \"%s\"."
    28862990msgstr ""
     
    29283032
    29293033#: templates/job-submit.php:25
     3034#, php-format
    29303035msgid "You are editing an existing job. %s"
    29313036msgstr ""
     
    29453050#. translators: %1$s is the job listing post type name, %2$s is the job listing URL.
    29463051#: templates/job-submitted.php:36
     3052#, php-format
    29473053msgid "%1$s listed successfully. To view your listing <a href=\"%2$s\">click here</a>."
    29483054msgstr ""
     
    29503056#. translators: Placeholder %s is the job listing post type name.
    29513057#: templates/job-submitted.php:47
     3058#, php-format
    29523059msgid "%s submitted successfully. Your listing will be visible once approved."
    29533060msgstr ""
    29543061
    29553062#: templates/job-submitted.php:61
     3063#, php-format
    29563064msgid "  <a href=\"%1$s\"> View your %2$s</a>"
    29573065msgstr ""
    29583066
    29593067#: templates/job-submitted.php:69
     3068#, php-format
    29603069msgid "  <a href=\"%s\"> %s</a>"
    29613070msgstr ""
     
    29633072#. translators: %1$s is the job listing post type name.
    29643073#: templates/job-submitted.php:92
     3074#, php-format
    29653075msgid "%1$s submitted successfully."
    29663076msgstr ""
     
    30533163#. translators: %s is the list of allowed file types.
    30543164#: wp-job-manager-functions.php:1532
     3165#, php-format
    30553166msgid "Uploaded files need to be one of the following file types: %s"
    30563167msgstr ""
     
    30863197#. translators: %1$s is the job listing title; %2$s is the URL for the current WordPress instance.
    30873198#: wp-job-manager-template.php:249
     3199#, php-format
    30883200msgid "Application via %1$s listing on %2$s"
    30893201msgstr ""
    30903202
    3091 #: wp-job-manager-template.php:709
     3203#: wp-job-manager-template.php:715
    30923204msgid "Your email"
    30933205msgstr ""
    30943206
    3095 #: wp-job-manager-template.php:710
     3207#: wp-job-manager-template.php:716
    30963208msgid "you@yourdomain.com"
    30973209msgstr ""
    30983210
    3099 #: wp-job-manager-template.php:718
     3211#: wp-job-manager-template.php:724
    31003212msgid "Username"
    31013213msgstr ""
    31023214
    3103 #: wp-job-manager-template.php:727
     3215#: wp-job-manager-template.php:733
    31043216msgid "Password"
    31053217msgstr ""
    31063218
    3107 #: wp-job-manager-template.php:737
     3219#: wp-job-manager-template.php:743
    31083220msgid "Verify Password"
    31093221msgstr ""
    31103222
    3111 #: wp-job-manager-template.php:765
     3223#: wp-job-manager-template.php:771
    31123224msgid "Posted on "
    31133225msgstr ""
    31143226
    31153227#. translators: Placeholder %s is the relative, human readable time since the job listing was posted.
    3116 #: wp-job-manager-template.php:771
    3117 #: wp-job-manager-template.php:797
     3228#: wp-job-manager-template.php:777
     3229#: wp-job-manager-template.php:803
     3230#, php-format
    31183231msgid "Posted %s ago"
    31193232msgstr ""
    31203233
    31213234#. translators: Placeholder %s is the relative, human readable time the job listing is scheduled to be published.
    3122 #: wp-job-manager-template.php:774
     3235#: wp-job-manager-template.php:780
     3236#, php-format
    31233237msgid "Scheduled to publish in %s"
    31243238msgstr ""
    31253239
    3126 #: wp-job-manager-template.php:812
     3240#: wp-job-manager-template.php:818
    31273241msgid "Remote"
    31283242msgstr ""
    31293243
    3130 #: wp-job-manager-template.php:836
     3244#: wp-job-manager-template.php:842
    31313245msgid "Anywhere"
    31323246msgstr ""
  • wp-job-manager/trunk/readme.txt

    r3313803 r3468765  
    33Tags: jobs, careers, company, hiring, job board
    44Requires at least: 6.4
    5 Tested up to: 6.8.1
     5Tested up to: 6.6
    66Requires PHP: 7.2
    7 Stable tag: 2.4.0
     7Stable tag: 2.4.1
    88License: GPLv3
    99License URI: http://www.gnu.org/licenses/gpl-3.0.html
     
    147147
    148148== Changelog ==
     149
     150### 2.4.1 - 2026-02-24
     151* Add permission check to listing query parameters (#2914)
     152* Fix structured data output for password-protected listings (#2913)
     153
     154* Update actions/cache to use v4 (#2896)
     155* reCaptcha script not being loaded (#2893)
     156* add a additional action to the do_feed_rss2
     157* fix hardcoded dashboard expiration date format
     158* Dev: Fix deprecated  methods
     159* Fix file input field for forms not marked as required
    149160
    150161### 2.4.0 - 2024-08-08
     
    188199* Fix PHP 7.x error for mixed returned type (#2726)
    189200
    190 ### 2.2.0 - 2024-01-29
    191 New:
    192 
    193 * Allow scheduling listings during job submission — add an option to show a 'Scheduled Date' field in the job submission form
    194 * Add new [jobs] shortcode parameter, featured_first so you can ensure featured listings always show up on top.
    195 * Add support for user sessions without a full account (used in the Job Alerts extension)
    196 
    197 Changes:
    198 
    199 * Improve styling for rich text e-mails
    200 * Include plain text alternative for rich text e-mails for better compatibility
    201 * Store previous license when plugin is deactivated for easier reactivation later.
    202 * Update design for settings and marketplace pages
    203 
    204 Fixes:
    205 
    206 * Fix custom role permission issues (#2673)
    207 * Fix RSS, Reset, Add Alert links not showing on search page without a keyword
    208 * Improve PHP 8 support
    209 * Fix numeric settings field issues
    210 * Improve e-mail formatting and encoding, remove extra whitespace
    211 * Add file type validation and error message to company logo upload
    212 * Fix cache issue when marking jobs as filled/not filled via bulk actions
    213 * Do not emit warning when user with insufficient access to Job Manager menu tries to access wp-admin
    214 
  • wp-job-manager/trunk/templates/form-fields/file-field.php

    r2166302 r3468765  
    4747    class="<?php echo esc_attr( implode( ' ', $classes ) ); ?>"
    4848    data-file_types="<?php echo esc_attr( implode( '|', $allowed_mime_types ) ); ?>"
    49     <?php if ( ! empty( $field['multiple'] ) ) echo 'multiple'; ?>
     49    <?php if ( ! empty( $field['required'] ) ) echo ' required'; ?>
     50    <?php if ( ! empty( $field['multiple'] ) ) echo ' multiple'; ?>
    5051    <?php if ( $file_limit ) echo ' data-file_limit="' . absint( $file_limit ) . '"';?>
    5152    <?php if ( ! empty( $field['file_limit_message'] ) ) echo ' data-file_limit_message="' . esc_attr( $field['file_limit_message'] ) . '"';?>
  • wp-job-manager/trunk/vendor/autoload.php

    r3078797 r3468765  
    1515        }
    1616    }
    17     trigger_error(
    18         $err,
    19         E_USER_ERROR
    20     );
     17    throw new RuntimeException($err);
    2118}
    2219
  • wp-job-manager/trunk/vendor/composer/InstalledVersions.php

    r3078797 r3468765  
    2828{
    2929    /**
     30     * @var string|null if set (by reflection by Composer), this should be set to the path where this class is being copied to
     31     * @internal
     32     */
     33    private static $selfDir = null;
     34
     35    /**
    3036     * @var mixed[]|null
    3137     * @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}|array{}|null
    3238     */
    3339    private static $installed;
     40
     41    /**
     42     * @var bool
     43     */
     44    private static $installedIsLocalDir;
    3445
    3546    /**
     
    310321        self::$installed = $data;
    311322        self::$installedByVendor = array();
     323
     324        // when using reload, we disable the duplicate protection to ensure that self::$installed data is
     325        // always returned, but we cannot know whether it comes from the installed.php in __DIR__ or not,
     326        // so we have to assume it does not, and that may result in duplicate data being returned when listing
     327        // all installed packages for example
     328        self::$installedIsLocalDir = false;
     329    }
     330
     331    /**
     332     * @return string
     333     */
     334    private static function getSelfDir()
     335    {
     336        if (self::$selfDir === null) {
     337            self::$selfDir = strtr(__DIR__, '\\', '/');
     338        }
     339
     340        return self::$selfDir;
    312341    }
    313342
     
    323352
    324353        $installed = array();
     354        $copiedLocalDir = false;
    325355
    326356        if (self::$canGetVendors) {
     357            $selfDir = self::getSelfDir();
    327358            foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
     359                $vendorDir = strtr($vendorDir, '\\', '/');
    328360                if (isset(self::$installedByVendor[$vendorDir])) {
    329361                    $installed[] = self::$installedByVendor[$vendorDir];
     
    331363                    /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */
    332364                    $required = require $vendorDir.'/composer/installed.php';
    333                     $installed[] = self::$installedByVendor[$vendorDir] = $required;
    334                     if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
    335                         self::$installed = $installed[count($installed) - 1];
     365                    self::$installedByVendor[$vendorDir] = $required;
     366                    $installed[] = $required;
     367                    if (self::$installed === null && $vendorDir.'/composer' === $selfDir) {
     368                        self::$installed = $required;
     369                        self::$installedIsLocalDir = true;
    336370                    }
     371                }
     372                if (self::$installedIsLocalDir && $vendorDir.'/composer' === $selfDir) {
     373                    $copiedLocalDir = true;
    337374                }
    338375            }
     
    351388        }
    352389
    353         if (self::$installed !== array()) {
     390        if (self::$installed !== array() && !$copiedLocalDir) {
    354391            $installed[] = self::$installed;
    355392        }
  • wp-job-manager/trunk/vendor/composer/autoload_static.php

    r3078797 r3468765  
    1212
    1313    public static $prefixLengthsPsr4 = array (
    14         'S' => 
     14        'S' =>
    1515        array (
    1616            'Symfony\\Polyfill\\Php80\\' => 23,
     
    1818            'Sabberworm\\CSS\\' => 15,
    1919        ),
    20         'P' => 
     20        'P' =>
    2121        array (
    2222            'Pelago\\Emogrifier\\' => 18,
     
    2525
    2626    public static $prefixDirsPsr4 = array (
    27         'Symfony\\Polyfill\\Php80\\' => 
     27        'Symfony\\Polyfill\\Php80\\' =>
    2828        array (
    2929            0 => __DIR__ . '/..' . '/symfony/polyfill-php80',
    3030        ),
    31         'Symfony\\Component\\CssSelector\\' => 
     31        'Symfony\\Component\\CssSelector\\' =>
    3232        array (
    3333            0 => __DIR__ . '/..' . '/symfony/css-selector',
    3434        ),
    35         'Sabberworm\\CSS\\' => 
     35        'Sabberworm\\CSS\\' =>
    3636        array (
    3737            0 => __DIR__ . '/..' . '/sabberworm/php-css-parser/src',
    3838        ),
    39         'Pelago\\Emogrifier\\' => 
     39        'Pelago\\Emogrifier\\' =>
    4040        array (
    4141            0 => __DIR__ . '/..' . '/pelago/emogrifier/src',
  • wp-job-manager/trunk/vendor/composer/installed.php

    r3132877 r3468765  
    44        'pretty_version' => 'dev-trunk',
    55        'version' => 'dev-trunk',
    6         'reference' => 'a909c7d015e52f8c2add651b30a33c713c4e3033',
     6        'reference' => 'e45fc2de016422a9a71d29fc53d12af1d2b4b6d2',
    77        'type' => 'wordpress-plugin',
    88        'install_path' => __DIR__ . '/../../',
     
    1414            'pretty_version' => 'dev-trunk',
    1515            'version' => 'dev-trunk',
    16             'reference' => 'a909c7d015e52f8c2add651b30a33c713c4e3033',
     16            'reference' => 'e45fc2de016422a9a71d29fc53d12af1d2b4b6d2',
    1717            'type' => 'wordpress-plugin',
    1818            'install_path' => __DIR__ . '/../../',
  • wp-job-manager/trunk/vendor/composer/platform_check.php

    r3078797 r3468765  
    2020        }
    2121    }
    22     trigger_error(
    23         'Composer detected issues in your platform: ' . implode(' ', $issues),
    24         E_USER_ERROR
     22    throw new \RuntimeException(
     23        'Composer detected issues in your platform: ' . implode(' ', $issues)
    2524    );
    2625}
  • wp-job-manager/trunk/wp-job-manager-template.php

    r3078797 r3468765  
    338338    }
    339339
    340     // Only show structured data for un-filled and published job listings.
    341     $output_structured_data = ! is_position_filled( $post ) && 'publish' === $post->post_status;
     340    // Only show structured data for un-filled, published, and non-password-protected job listings.
     341    $output_structured_data = ! is_position_filled( $post )
     342        && 'publish' === $post->post_status
     343        && ! post_password_required( $post );
    342344
    343345    /**
     
    354356/**
    355357 * Gets the structured data for the job listing.
     358 *
     359 * Note: This function does not check if the job listing is published, filled,
     360 * password-protected, or otherwise hidden. Use wpjm_output_job_listing_structured_data()
     361 * to check if structured data should be output for a given job listing.
    356362 *
    357363 * @since 1.28.0
  • wp-job-manager/trunk/wp-job-manager.php

    r3313803 r3468765  
    44 * Plugin URI: https://wpjobmanager.com/
    55 * Description: Manage job listings from the WordPress admin panel, and allow users to post jobs directly to your site.
    6  * Version: 2.4.0
     6 * Version: 2.4.1
    77 * Author: Automattic
    88 * Author URI: https://wpjobmanager.com/
    99 * Requires at least: 6.4
    10  * Tested up to: 6.8.1
     10 * Tested up to: 6.6
    1111 * Requires PHP: 7.4
    1212 * Text Domain: wp-job-manager
     
    2222
    2323// Define constants.
    24 define( 'JOB_MANAGER_VERSION', '2.4.0' );
     24define( 'JOB_MANAGER_VERSION', '2.4.1' );
    2525define( 'JOB_MANAGER_PLUGIN_DIR', untrailingslashit( plugin_dir_path( __FILE__ ) ) );
    2626define( 'JOB_MANAGER_PLUGIN_URL', untrailingslashit( plugins_url( basename( plugin_dir_path( __FILE__ ) ), basename( __FILE__ ) ) ) );
Note: See TracChangeset for help on using the changeset viewer.