diff --git a/.psalm/psalm-baseline.xml b/.psalm/psalm-baseline.xml index 41f2cb722..03de20499 100644 --- a/.psalm/psalm-baseline.xml +++ b/.psalm/psalm-baseline.xml @@ -1,5 +1,15 @@ + + + + + + + + + + $result @@ -11,6 +21,11 @@ false|void + + + + + $url @@ -260,12 +275,6 @@ term_id]]> - - - \WP_Job_Manager_Post_Types::TAX_LISTING_CATEGORY - \WP_Job_Manager_Post_Types::TAX_LISTING_TYPE - - false diff --git a/assets/lib/jquery-chosen/chosen.css b/assets/lib/jquery-chosen/chosen.css index fa425807d..b8954d3b3 100644 --- a/assets/lib/jquery-chosen/chosen.css +++ b/assets/lib/jquery-chosen/chosen.css @@ -427,7 +427,7 @@ This file is generated by `grunt build`, do not edit it by hand. .chosen-container-multi .chosen-choices .search-choice .search-choice-close, .chosen-container .chosen-results-scroll-down span, .chosen-container .chosen-results-scroll-up span { - background-image: url('./images/chosen-sprite@2x.png') !important; + background-image: url('./images/chosen-sprite-2x.png') !important; background-size: 52px 37px !important; background-repeat: no-repeat !important; } diff --git a/assets/lib/jquery-chosen/images/chosen-sprite@2x.png b/assets/lib/jquery-chosen/images/chosen-sprite-2x.png similarity index 100% rename from assets/lib/jquery-chosen/images/chosen-sprite@2x.png rename to assets/lib/jquery-chosen/images/chosen-sprite-2x.png diff --git a/assets/lib/jquery-ui/images/ui-bg_glass_55_fbf9ee_1x400.png b/assets/lib/jquery-ui/images/ui-bg_glass_55_fbf9ee_1x400.png new file mode 100644 index 000000000..195f7bf64 Binary files /dev/null and b/assets/lib/jquery-ui/images/ui-bg_glass_55_fbf9ee_1x400.png differ diff --git a/assets/lib/jquery-ui/images/ui-bg_glass_65_ffffff_1x400.png b/assets/lib/jquery-ui/images/ui-bg_glass_65_ffffff_1x400.png new file mode 100644 index 000000000..2af088a2f Binary files /dev/null and b/assets/lib/jquery-ui/images/ui-bg_glass_65_ffffff_1x400.png differ diff --git a/assets/lib/jquery-ui/images/ui-bg_glass_75_dadada_1x400.png b/assets/lib/jquery-ui/images/ui-bg_glass_75_dadada_1x400.png new file mode 100644 index 000000000..7ec3fe227 Binary files /dev/null and b/assets/lib/jquery-ui/images/ui-bg_glass_75_dadada_1x400.png differ diff --git a/assets/lib/jquery-ui/images/ui-bg_glass_75_e6e6e6_1x400.png b/assets/lib/jquery-ui/images/ui-bg_glass_75_e6e6e6_1x400.png new file mode 100644 index 000000000..fbfce09cb Binary files /dev/null and b/assets/lib/jquery-ui/images/ui-bg_glass_75_e6e6e6_1x400.png differ diff --git a/assets/lib/jquery-ui/images/ui-bg_glass_95_fef1ec_1x400.png b/assets/lib/jquery-ui/images/ui-bg_glass_95_fef1ec_1x400.png new file mode 100644 index 000000000..1ccbb6779 Binary files /dev/null and b/assets/lib/jquery-ui/images/ui-bg_glass_95_fef1ec_1x400.png differ diff --git a/assets/lib/jquery-ui/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/assets/lib/jquery-ui/images/ui-bg_highlight-soft_75_cccccc_1x100.png new file mode 100644 index 000000000..183ff9ddd Binary files /dev/null and b/assets/lib/jquery-ui/images/ui-bg_highlight-soft_75_cccccc_1x100.png differ diff --git a/assets/lib/jquery-ui/images/ui-icons_222222_256x240.png b/assets/lib/jquery-ui/images/ui-icons_222222_256x240.png new file mode 100644 index 000000000..9dfc5a781 Binary files /dev/null and b/assets/lib/jquery-ui/images/ui-icons_222222_256x240.png differ diff --git a/assets/lib/jquery-ui/images/ui-icons_2e83ff_256x240.png b/assets/lib/jquery-ui/images/ui-icons_2e83ff_256x240.png new file mode 100644 index 000000000..cf2d24684 Binary files /dev/null and b/assets/lib/jquery-ui/images/ui-icons_2e83ff_256x240.png differ diff --git a/assets/lib/jquery-ui/images/ui-icons_454545_256x240.png b/assets/lib/jquery-ui/images/ui-icons_454545_256x240.png new file mode 100644 index 000000000..35e205975 Binary files /dev/null and b/assets/lib/jquery-ui/images/ui-icons_454545_256x240.png differ diff --git a/assets/lib/jquery-ui/images/ui-icons_888888_256x240.png b/assets/lib/jquery-ui/images/ui-icons_888888_256x240.png new file mode 100644 index 000000000..8eab1adc3 Binary files /dev/null and b/assets/lib/jquery-ui/images/ui-icons_888888_256x240.png differ diff --git a/assets/lib/jquery-ui/images/ui-icons_cd0a0a_256x240.png b/assets/lib/jquery-ui/images/ui-icons_cd0a0a_256x240.png new file mode 100644 index 000000000..56eee1f8f Binary files /dev/null and b/assets/lib/jquery-ui/images/ui-icons_cd0a0a_256x240.png differ diff --git a/assets/lib/jquery-ui/jquery-ui.min.css b/assets/lib/jquery-ui/jquery-ui.min.css new file mode 100644 index 000000000..782ed718a --- /dev/null +++ b/assets/lib/jquery-ui/jquery-ui.min.css @@ -0,0 +1,7 @@ +/*! jQuery UI - v1.13.3 - 2024-04-26 +* https://jqueryui.com +* Includes: core.css, accordion.css, autocomplete.css, menu.css, button.css, controlgroup.css, checkboxradio.css, datepicker.css, dialog.css, draggable.css, resizable.css, progressbar.css, selectable.css, selectmenu.css, slider.css, sortable.css, spinner.css, tabs.css, tooltip.css, theme.css +* To view and modify this theme, visit https://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=highlight_soft&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=glass&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=glass&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=glass&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px +* Copyright OpenJS Foundation and other contributors; Licensed MIT */ + +.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;-ms-filter:"alpha(opacity=0)"}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin:2px 0 0 0;padding:.5em .5em .5em .7em;font-size:100%}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:0}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{margin:0;cursor:pointer;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-item-wrapper{position:relative;padding:3px 1em 3px .4em}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item-wrapper{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-button{padding:.4em 1em;display:inline-block;position:relative;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2em;box-sizing:border-box;text-indent:-9999px;white-space:nowrap}input.ui-button.ui-button-icon-only{text-indent:0}.ui-button-icon-only .ui-icon{position:absolute;top:50%;left:50%;margin-top:-8px;margin-left:-8px}.ui-button.ui-icon-notext .ui-icon{padding:0;width:2.1em;height:2.1em;text-indent:-9999px;white-space:nowrap}input.ui-button.ui-icon-notext .ui-icon{width:auto;height:auto;text-indent:0;white-space:normal;padding:.4em 1em}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-controlgroup{vertical-align:middle;display:inline-block}.ui-controlgroup > .ui-controlgroup-item{float:left;margin-left:0;margin-right:0}.ui-controlgroup > .ui-controlgroup-item:focus,.ui-controlgroup > .ui-controlgroup-item.ui-visual-focus{z-index:9999}.ui-controlgroup-vertical > .ui-controlgroup-item{display:block;float:none;width:100%;margin-top:0;margin-bottom:0;text-align:left}.ui-controlgroup-vertical .ui-controlgroup-item{box-sizing:border-box}.ui-controlgroup .ui-controlgroup-label{padding:.4em 1em}.ui-controlgroup .ui-controlgroup-label span{font-size:80%}.ui-controlgroup-horizontal .ui-controlgroup-label + .ui-controlgroup-item{border-left:none}.ui-controlgroup-vertical .ui-controlgroup-label + .ui-controlgroup-item{border-top:none}.ui-controlgroup-horizontal .ui-controlgroup-label.ui-widget-content{border-right:none}.ui-controlgroup-vertical .ui-controlgroup-label.ui-widget-content{border-bottom:none}.ui-controlgroup-vertical .ui-spinner-input{width:75%;width:calc( 100% - 2.4em )}.ui-controlgroup-vertical .ui-spinner .ui-spinner-up{border-top-style:solid}.ui-checkboxradio-label .ui-icon-background{box-shadow:inset 1px 1px 1px #ccc;border-radius:.12em;border:none}.ui-checkboxradio-radio-label .ui-icon-background{width:16px;height:16px;border-radius:1em;overflow:visible;border:none}.ui-checkboxradio-radio-label.ui-checkboxradio-checked .ui-icon,.ui-checkboxradio-radio-label.ui-checkboxradio-checked:hover .ui-icon{background-image:none;width:8px;height:8px;border-width:4px;border-style:solid}.ui-checkboxradio-disabled{pointer-events:none}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-datepicker .ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;left:.5em;top:.3em}.ui-dialog{position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:20px;margin:-10px 0 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-n{height:2px;top:0}.ui-dialog .ui-resizable-e{width:2px;right:0}.ui-dialog .ui-resizable-s{height:2px;bottom:0}.ui-dialog .ui-resizable-w{width:2px;left:0}.ui-dialog .ui-resizable-se,.ui-dialog .ui-resizable-sw,.ui-dialog .ui-resizable-ne,.ui-dialog .ui-resizable-nw{width:7px;height:7px}.ui-dialog .ui-resizable-se{right:0;bottom:0}.ui-dialog .ui-resizable-sw{left:0;bottom:0}.ui-dialog .ui-resizable-ne{right:0;top:0}.ui-dialog .ui-resizable-nw{left:0;top:0}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-draggable-handle{-ms-touch-action:none;touch-action:none}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block;-ms-touch-action:none;touch-action:none}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==");height:100%;-ms-filter:"alpha(opacity=25)";opacity:0.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-selectable{-ms-touch-action:none;touch-action:none}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black}.ui-selectmenu-menu{padding:0;margin:0;position:absolute;top:0;left:0;display:none}.ui-selectmenu-menu .ui-menu{overflow:auto;overflow-x:hidden;padding-bottom:1px}.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup{font-size:1em;font-weight:bold;line-height:1.5;padding:2px 0.4em;margin:0.5em 0 0 0;height:auto;border:0}.ui-selectmenu-open{display:block}.ui-selectmenu-text{display:block;margin-right:20px;overflow:hidden;text-overflow:ellipsis}.ui-selectmenu-button.ui-button{text-align:left;white-space:nowrap;width:14em}.ui-selectmenu-icon.ui-icon{float:right;margin-top:0}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:pointer;-ms-touch-action:none;touch-action:none}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-sortable-handle{-ms-touch-action:none;touch-action:none}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:none;background:none;color:inherit;padding:.222em 0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:2em}.ui-spinner-button{width:1.6em;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top-style:none;border-bottom-style:none;border-right-style:none}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px}body .ui-tooltip{border-width:2px}.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em}.ui-widget.ui-widget-content{border:1px solid #d3d3d3}.ui-widget-content{border:1px solid #aaa;background:#fff;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{border:1px solid #aaa;background:#ccc url("images/ui-bg_highlight-soft_75_cccccc_1x100.png") 50% 50% repeat-x;color:#222;font-weight:bold}.ui-widget-header a{color:#222}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default,.ui-button,html .ui-button.ui-state-disabled:hover,html .ui-button.ui-state-disabled:active{border:1px solid #d3d3d3;background:#e6e6e6 url("images/ui-bg_glass_75_e6e6e6_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#555}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited,a.ui-button,a:link.ui-button,a:visited.ui-button,.ui-button{color:#555;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus,.ui-button:hover,.ui-button:focus{border:1px solid #999;background:#dadada url("images/ui-bg_glass_75_dadada_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited,a.ui-button:hover,a.ui-button:focus{color:#212121;text-decoration:none}.ui-visual-focus{box-shadow:0 0 3px 1px rgb(94,158,214)}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active,a.ui-button:active,.ui-button:active,.ui-button.ui-state-active:hover{border:1px solid #aaa;background:#fff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-icon-background,.ui-state-active .ui-icon-background{border:#aaa;background-color:#212121}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url("images/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% repeat-x;color:#363636}.ui-state-checked{border:1px solid #fcefa1;background:#fbf9ee}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url("images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;-ms-filter:"alpha(opacity=70)";font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;-ms-filter:"alpha(opacity=35)";background-image:none}.ui-state-disabled .ui-icon{-ms-filter:"alpha(opacity=35)"}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-widget-header .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon,.ui-button:hover .ui-icon,.ui-button:focus .ui-icon{background-image:url("images/ui-icons_454545_256x240.png")}.ui-state-active .ui-icon,.ui-button:active .ui-icon{background-image:url("images/ui-icons_454545_256x240.png")}.ui-state-highlight .ui-icon,.ui-button .ui-state-highlight.ui-icon{background-image:url("images/ui-icons_2e83ff_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("images/ui-icons_cd0a0a_256x240.png")}.ui-button .ui-icon{background-image:url("images/ui-icons_888888_256x240.png")}.ui-icon-blank.ui-icon-blank.ui-icon-blank{background-image:none}.ui-icon-caret-1-n{background-position:0 0}.ui-icon-caret-1-ne{background-position:-16px 0}.ui-icon-caret-1-e{background-position:-32px 0}.ui-icon-caret-1-se{background-position:-48px 0}.ui-icon-caret-1-s{background-position:-65px 0}.ui-icon-caret-1-sw{background-position:-80px 0}.ui-icon-caret-1-w{background-position:-96px 0}.ui-icon-caret-1-nw{background-position:-112px 0}.ui-icon-caret-2-n-s{background-position:-128px 0}.ui-icon-caret-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-65px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-65px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:1px -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:4px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:4px}.ui-widget-overlay{background:#aaa;opacity:.3;-ms-filter:"alpha(opacity=30)"}.ui-widget-shadow{-webkit-box-shadow:-8px -8px 8px #aaa;box-shadow:-8px -8px 8px #aaa} \ No newline at end of file diff --git a/includes/3rd-party/3rd-party.php b/includes/3rd-party/3rd-party.php index a4896d537..1fead82f4 100644 --- a/includes/3rd-party/3rd-party.php +++ b/includes/3rd-party/3rd-party.php @@ -5,6 +5,10 @@ * @package wp-job-manager */ +if ( ! defined( 'ABSPATH' ) ) { + exit; +} + // Require files for each 3rd-party plugin. require_once JOB_MANAGER_PLUGIN_DIR . '/includes/3rd-party/jetpack.php'; require_once JOB_MANAGER_PLUGIN_DIR . '/includes/3rd-party/wpml.php'; diff --git a/includes/3rd-party/all-in-one-seo-pack.php b/includes/3rd-party/all-in-one-seo-pack.php index 46e7051cd..e445073b4 100644 --- a/includes/3rd-party/all-in-one-seo-pack.php +++ b/includes/3rd-party/all-in-one-seo-pack.php @@ -5,6 +5,10 @@ * @package wp-job-manager */ +if ( ! defined( 'ABSPATH' ) ) { + exit; +} + /** * Skip filled job listings. * diff --git a/includes/3rd-party/jetpack.php b/includes/3rd-party/jetpack.php index f8496d8d5..568168eff 100644 --- a/includes/3rd-party/jetpack.php +++ b/includes/3rd-party/jetpack.php @@ -5,6 +5,10 @@ * @package wp-job-manager */ +if ( ! defined( 'ABSPATH' ) ) { + exit; +} + /** * Skip filled job listings. * diff --git a/includes/3rd-party/polylang.php b/includes/3rd-party/polylang.php index 2c326c705..f6b4a7f23 100644 --- a/includes/3rd-party/polylang.php +++ b/includes/3rd-party/polylang.php @@ -5,6 +5,10 @@ * @package wp-job-manager */ +if ( ! defined( 'ABSPATH' ) ) { + exit; +} + /** * Load routines only if Polylang is loaded. * diff --git a/includes/3rd-party/rp4wp.php b/includes/3rd-party/rp4wp.php index bbfaa8f88..96e84a02e 100644 --- a/includes/3rd-party/rp4wp.php +++ b/includes/3rd-party/rp4wp.php @@ -5,6 +5,10 @@ * @package wp-job-manager */ +if ( ! defined( 'ABSPATH' ) ) { + exit; +} + add_filter( 'rp4wp_get_template', 'wpjm_rp4wp_template', 10, 3 ); add_filter( 'rp4wp_related_meta_fields', 'wpjm_rp4wp_related_meta_fields', 10, 3 ); add_filter( 'rp4wp_related_meta_fields_weight', 'wpjm_rp4wp_related_meta_fields_weight', 10, 3 ); diff --git a/includes/3rd-party/wp-all-import.php b/includes/3rd-party/wp-all-import.php index ccf24e397..a73cc77c3 100644 --- a/includes/3rd-party/wp-all-import.php +++ b/includes/3rd-party/wp-all-import.php @@ -5,6 +5,10 @@ * @package wp-job-manager */ +if ( ! defined( 'ABSPATH' ) ) { + exit; +} + add_action( 'pmxi_saved_post', 'wpjm_pmxi_saved_post', 10, 1 ); /** diff --git a/includes/3rd-party/wpcom.php b/includes/3rd-party/wpcom.php index 9d9bb15ad..8994828a4 100644 --- a/includes/3rd-party/wpcom.php +++ b/includes/3rd-party/wpcom.php @@ -5,6 +5,10 @@ * @package wp-job-manager */ +if ( ! defined( 'ABSPATH' ) ) { + exit; +} + /** * Configure license configuration for WP Job Manager when purchased from WP.com Marketplace. * diff --git a/includes/3rd-party/wpml.php b/includes/3rd-party/wpml.php index 61fe7fe25..8bcd80d83 100644 --- a/includes/3rd-party/wpml.php +++ b/includes/3rd-party/wpml.php @@ -5,6 +5,10 @@ * @package wp-job-manager */ +if ( ! defined( 'ABSPATH' ) ) { + exit; +} + /** * Load routines only if WPML is loaded. * diff --git a/includes/3rd-party/yoast.php b/includes/3rd-party/yoast.php index 738ce1fc3..ef9197fcf 100644 --- a/includes/3rd-party/yoast.php +++ b/includes/3rd-party/yoast.php @@ -7,6 +7,10 @@ * @package wp-job-manager */ +if ( ! defined( 'ABSPATH' ) ) { + exit; +} + /** * Skip filled job listings. * diff --git a/includes/class-job-dashboard-shortcode.php b/includes/class-job-dashboard-shortcode.php index 9ba967b18..5dac81f7c 100644 --- a/includes/class-job-dashboard-shortcode.php +++ b/includes/class-job-dashboard-shortcode.php @@ -545,7 +545,7 @@ public static function the_expiration_date( $job ) { if ( 'publish' === $job->post_status && ! empty( $expiration ) ) { // translators: Placeholder is the expiration date of the job listing. - echo '
' . UI_Elements::rel_time( $expiration, __( 'Expires in %s', 'wp-job-manager' ) ) . '
'; + echo '
' . UI_Elements::rel_time( $expiration, __( 'Expires in %s', 'wp-job-manager' ) ) . '
'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- Rendered by UI_Elements::rel_time(), which escapes its own input. } } @@ -576,7 +576,10 @@ public static function the_location( $job ) { ?>
- +
$action['label'], diff --git a/includes/class-stats-dashboard.php b/includes/class-stats-dashboard.php index 6aa99e9bb..5a0586ce3 100644 --- a/includes/class-stats-dashboard.php +++ b/includes/class-stats-dashboard.php @@ -7,6 +7,10 @@ namespace WP_Job_Manager; +if ( ! defined( 'ABSPATH' ) ) { + exit; +} + /** * Job listing stats for the jobs dashboard. * diff --git a/includes/class-wp-job-manager-post-types.php b/includes/class-wp-job-manager-post-types.php index 361350b48..ccf1c70a6 100644 --- a/includes/class-wp-job-manager-post-types.php +++ b/includes/class-wp-job-manager-post-types.php @@ -1563,11 +1563,7 @@ public function noindex_expired_filled_job_listings() { return; } - if ( function_exists( 'wp_robots_no_robots' ) ) { - add_filter( 'wp_robots', 'wp_robots_no_robots' ); - } else { - wp_no_robots(); - } + add_filter( 'wp_robots', 'wp_robots_no_robots' ); } /** diff --git a/includes/class-wp-job-manager-usage-tracking-data.php b/includes/class-wp-job-manager-usage-tracking-data.php index 533ddd07d..1bf93b333 100644 --- a/includes/class-wp-job-manager-usage-tracking-data.php +++ b/includes/class-wp-job-manager-usage-tracking-data.php @@ -27,14 +27,24 @@ public static function get_usage_data() { $count_posts = wp_count_posts( \WP_Job_Manager_Post_Types::PT_LISTING ); if ( taxonomy_exists( \WP_Job_Manager_Post_Types::TAX_LISTING_CATEGORY ) ) { - $categories = wp_count_terms( \WP_Job_Manager_Post_Types::TAX_LISTING_CATEGORY, [ 'hide_empty' => false ] ); + $categories = wp_count_terms( + [ + 'taxonomy' => \WP_Job_Manager_Post_Types::TAX_LISTING_CATEGORY, + 'hide_empty' => false, + ] + ); } $usage_data = [ 'employers' => self::get_employer_count(), 'job_categories' => $categories, 'job_categories_desc' => self::get_job_category_has_description_count(), - 'job_types' => wp_count_terms( \WP_Job_Manager_Post_Types::TAX_LISTING_TYPE, [ 'hide_empty' => false ] ), + 'job_types' => wp_count_terms( + [ + 'taxonomy' => \WP_Job_Manager_Post_Types::TAX_LISTING_TYPE, + 'hide_empty' => false, + ] + ), 'job_types_desc' => self::get_job_type_has_description_count(), 'job_types_emp_type' => self::get_job_type_has_employment_type_count(), 'jobs_type' => self::get_job_type_count(), diff --git a/includes/class-wp-job-manager.php b/includes/class-wp-job-manager.php index 75523ec7d..757c0e7d4 100644 --- a/includes/class-wp-job-manager.php +++ b/includes/class-wp-job-manager.php @@ -124,7 +124,7 @@ public function __construct() { add_action( 'after_switch_theme', 'flush_rewrite_rules', 15 ); // Actions. - add_action( 'after_setup_theme', [ $this, 'load_plugin_textdomain' ] ); + add_action( 'init', [ $this, 'load_legacy_textdomain' ] ); add_action( 'after_setup_theme', [ $this, 'include_template_functions' ], 11 ); add_action( 'widgets_init', [ $this, 'widgets_init' ] ); add_action( 'wp_loaded', [ $this, 'register_shared_assets' ] ); @@ -208,11 +208,20 @@ public function add_privacy_policy_content() { } /** - * Loads textdomain for plugin. + * Loads translations from the legacy `WP_LANG_DIR/wp-job-manager/` path. + * + * WordPress auto-loads translations from `WP_LANG_DIR/plugins/` for + * .org-distributed plugins, so a general `load_plugin_textdomain()` call + * isn't needed. This keeps the old custom path working for sites that + * already place `.mo` files there. */ - public function load_plugin_textdomain() { - load_textdomain( 'wp-job-manager', WP_LANG_DIR . '/wp-job-manager/wp-job-manager-' . apply_filters( 'plugin_locale', get_locale(), 'wp-job-manager' ) . '.mo' ); - load_plugin_textdomain( 'wp-job-manager', false, JOB_MANAGER_PLUGIN_DIR . '/languages/' ); + public function load_legacy_textdomain() { + $locale = apply_filters( 'plugin_locale', determine_locale(), 'wp-job-manager' ); + $mofile = WP_LANG_DIR . '/wp-job-manager/wp-job-manager-' . $locale . '.mo'; + + if ( is_readable( $mofile ) ) { + load_textdomain( 'wp-job-manager', $mofile ); + } } /** @@ -312,8 +321,7 @@ public function register_shared_assets() { global $wp_scripts; $jquery_version = isset( $wp_scripts->registered['jquery-ui-core']->ver ) ? $wp_scripts->registered['jquery-ui-core']->ver : '1.9.2'; - $jquery_version = preg_replace( '/-wp/', '', $jquery_version ); - wp_register_style( 'jquery-ui', '//code.jquery.com/ui/' . $jquery_version . '/themes/smoothness/jquery-ui.min.css', [], $jquery_version ); + wp_register_style( 'jquery-ui', JOB_MANAGER_PLUGIN_URL . '/assets/lib/jquery-ui/jquery-ui.min.css', [], $jquery_version ); // Register datepicker JS. It will be enqueued if needed when a date field is used. self::register_script( 'wp-job-manager-datepicker', 'js/datepicker.js', [ 'jquery', 'jquery-ui-datepicker' ], true ); diff --git a/includes/promoted-jobs/class-wp-job-manager-promoted-jobs-api.php b/includes/promoted-jobs/class-wp-job-manager-promoted-jobs-api.php index bedb9bcd2..4a5b61a0e 100644 --- a/includes/promoted-jobs/class-wp-job-manager-promoted-jobs-api.php +++ b/includes/promoted-jobs/class-wp-job-manager-promoted-jobs-api.php @@ -5,6 +5,10 @@ * @package wp-job-manager */ +if ( ! defined( 'ABSPATH' ) ) { + exit; +} + /** * Handles functionality related to the Promoted Jobs REST API. * diff --git a/includes/promoted-jobs/class-wp-job-manager-promoted-jobs-status-handler.php b/includes/promoted-jobs/class-wp-job-manager-promoted-jobs-status-handler.php index e4b4c2ec0..33cea1aba 100644 --- a/includes/promoted-jobs/class-wp-job-manager-promoted-jobs-status-handler.php +++ b/includes/promoted-jobs/class-wp-job-manager-promoted-jobs-status-handler.php @@ -5,6 +5,10 @@ * @package wp-job-manager */ +if ( ! defined( 'ABSPATH' ) ) { + exit; +} + /** * Handles functionality related to the Promoted Jobs Status Update. * diff --git a/includes/ui/class-modal-dialog.php b/includes/ui/class-modal-dialog.php index 9f3f9dbdc..ca0fed3bd 100644 --- a/includes/ui/class-modal-dialog.php +++ b/includes/ui/class-modal-dialog.php @@ -83,19 +83,17 @@ public function render( $content ) { $style = esc_attr( $this->options['style'] ?? '' ); $content = str_replace( '{close}', $id . '.close(); event.preventDefault();', $content ); - return << -
-
-
-
-
{$content}
- -
-
-
- -HTML; + return '' + . '
' + . '
' + . '
' + . '
' + . '
' . $content . '
' + . '' + . '
' + . '
' + . '
' + . '
'; } diff --git a/includes/ui/class-redirect-message.php b/includes/ui/class-redirect-message.php index a3210ba86..8341579b7 100644 --- a/includes/ui/class-redirect-message.php +++ b/includes/ui/class-redirect-message.php @@ -125,14 +125,11 @@ private static function get_transient_message( $key, $delete = true ) { */ private static function add_inline_script( $query_var ) { $query_var = esc_js( $query_var ); - return << - const url = new URL( location.href ); - url.searchParams.delete('{$query_var}'); - history.replaceState(null, '', url) - - -HTML; + return ''; } } diff --git a/includes/ui/class-ui-elements.php b/includes/ui/class-ui-elements.php index e8f8bd77d..b04dfe402 100644 --- a/includes/ui/class-ui-elements.php +++ b/includes/ui/class-ui-elements.php @@ -158,17 +158,15 @@ public static function actions_menu( $content ) { $close = esc_attr( 'event.currentTarget.contains(event.relatedTarget) || setTimeout(() => this.open = false, 100 )' ); - return << - - - -
- {$content} -
- -HTML; + return '
' + . '' + . '' + . '' + . '
' + . $content + . '
' + . '
'; } diff --git a/readme.txt b/readme.txt index 12c024b75..fb605d27c 100644 --- a/readme.txt +++ b/readme.txt @@ -2,13 +2,13 @@ Contributors: mikejolley, automattic, adamkheckler, alexsanford1, annezazu, cena, chaselivingston, csonnek, davor.altman, donnapep, donncha, drawmyface, erania-pinnera, fjorgemota, jacobshere, jakeom, jeherve, jenhooks, jgs, jonryan, kraftbj, lamdayap, lschuyler, macmanx, nancythanki, orangesareorange, rachelsquirrel, renathoc, ryancowles, richardmtl, scarstocea Tags: jobs, careers, company, hiring, job board Requires at least: 6.4 -Tested up to: 6.6 -Requires PHP: 7.2 +Tested up to: 6.9 +Requires PHP: 7.4 Stable tag: 2.4.1 -License: GPLv3 -License URI: http://www.gnu.org/licenses/gpl-3.0.html +License: GPL-2.0-or-later +License URI: https://www.gnu.org/licenses/gpl-2.0.html -Create a careers page for your company website, or build a public job board for your community. +Create a careers page for your company website, or build a public job board for your community. == Description == @@ -150,24 +150,76 @@ You can view (and contribute) translations via the [translate.wordpress.org](htt ### 2.4.1 - 2026-02-24 * Add permission check to listing query parameters (#2914) * Fix structured data output for password-protected listings (#2913) - * Update actions/cache to use v4 (#2896) * reCaptcha script not being loaded (#2893) * add a additional action to the do_feed_rss2 * fix hardcoded dashboard expiration date format * Dev: Fix deprecated methods * Fix file input field for forms not marked as required - * Fix broken access control issue reported on Patchstack. ### 2.4.0 - 2024-08-08 * Fix job dashboard actions menu in Safari - * Fix PHP 8.3 support - * Remove support for Internet Explorer 11 - * Fix Wordpress 6.6 compatibility - * Fix classic editor support for job listings +### 2.3.0 - 2024-04-29 +New! + +* Job Statistics — enable insights like job listing page views, unique visits and search impressions to be collected and displayed to employers in the jobs dashboard. +* Add Google reCAPTCHA v3 support + +Improvements: + +* New: Job statistics overlay +* Change: Redesign job dashboard +* Change: Allow job duplication in the job dashboard for any job +* Security: Don't return unpublished jobs only in the promote job endpoint +* Fix renewals for WordPress.com licenses +* Fix issues with rich e-mails on some e-mail providers +* Fix e-mail styling in some e-mail clients +* Fix expiry date not showing up in backend editor +* Fix: Add fallback to date format in case it's missing +* Fix: Prevent past dates from being used in the datepicker + +For developers: + +* Add filter to disable promoted jobs +* Add placeholder options to select field +* Job dashboard template has been rewritten + +### 2.2.2 - 2024-02-15 +* Fix issue with rich e-mails on some e-mail providers (#2753) +* Fix: 'featured_first' argument now works when 'show_filters' is set to false. +* Improve checkbox and radio inputs for styled forms + +### 2.2.1 - 2024-01-31 +* Fix PHP 7.x error for mixed returned type (#2726) + +### 2.2.0 - 2024-01-29 +New: + +* Allow scheduling listings during job submission — add an option to show a 'Scheduled Date' field in the job submission form +* Add new [jobs] shortcode parameter, featured_first so you can ensure featured listings always show up on top. +* Add support for user sessions without a full account (used in the Job Alerts extension) + +Changes: + +* Improve styling for rich text e-mails +* Include plain text alternative for rich text e-mails for better compatibility +* Store previous license when plugin is deactivated for easier reactivation later. +* Update design for settings and marketplace pages + +Fixes: + +* Fix custom role permission issues (#2673) +* Fix RSS, Reset, Add Alert links not showing on search page without a keyword +* Improve PHP 8 support +* Fix numeric settings field issues +* Improve e-mail formatting and encoding, remove extra whitespace +* Add file type validation and error message to company logo upload +* Fix cache issue when marking jobs as filled/not filled via bulk actions +* Do not emit warning when user with insufficient access to Job Manager menu tries to access wp-admin + diff --git a/templates/access-denied-browse-job_listings.php b/templates/access-denied-browse-job_listings.php index d9238b83b..21665382a 100644 --- a/templates/access-denied-browse-job_listings.php +++ b/templates/access-denied-browse-job_listings.php @@ -16,4 +16,4 @@ exit; } ?> -

+

diff --git a/templates/access-denied-single-job_listing.php b/templates/access-denied-single-job_listing.php index bb08df534..42a5dfaa9 100644 --- a/templates/access-denied-single-job_listing.php +++ b/templates/access-denied-single-job_listing.php @@ -17,4 +17,4 @@ } ?> -

+

diff --git a/templates/content-single-job_listing-meta.php b/templates/content-single-job_listing-meta.php index d8545f968..59f1761bb 100644 --- a/templates/content-single-job_listing-meta.php +++ b/templates/content-single-job_listing-meta.php @@ -47,9 +47,9 @@ ?> -
  • +
  • post_status ) : ?> -
  • +
  • diff --git a/templates/content-single-job_listing.php b/templates/content-single-job_listing.php index b35d5dfca..4da4c377d 100644 --- a/templates/content-single-job_listing.php +++ b/templates/content-single-job_listing.php @@ -21,7 +21,7 @@ if ( job_manager_user_can_view_job_listing( $post->ID ) ) : ?>
    post_status ) : ?> -
    +
    %s.', 'wp-job-manager' ), + __( 'A new job listing has been submitted to %2$s.', 'wp-job-manager' ), home_url(), get_bloginfo( 'name' ) ) diff --git a/templates/emails/admin-updated-job.php b/templates/emails/admin-updated-job.php index daf258f6b..8396245aa 100644 --- a/templates/emails/admin-updated-job.php +++ b/templates/emails/admin-updated-job.php @@ -23,7 +23,7 @@

    %s.', 'wp-job-manager' ), home_url(), esc_html( get_bloginfo( 'name' ) ) ) ); + sprintf( __( 'A job listing has been updated on %2$s.', 'wp-job-manager' ), home_url(), esc_html( get_bloginfo( 'name' ) ) ) ); switch ( $job->post_status ) { case 'publish': printf( ' ' . esc_html__( 'The changes have been published and are now available to the public.', 'wp-job-manager' ) ); diff --git a/templates/emails/email-styles.php b/templates/emails/email-styles.php index 0022bb1fa..18f541a3f 100644 --- a/templates/emails/email-styles.php +++ b/templates/emails/email-styles.php @@ -52,26 +52,25 @@ $color_button_text = esc_attr( $style_vars['color_button_text'] ); $font_family = wp_strip_all_tags( $style_vars['font_family'] ); -echo <<%s.', 'wp-job-manager' ), + __( 'The following job listing is expiring today from %2$s.', 'wp-job-manager' ), home_url(), get_bloginfo( 'name' ) ) @@ -39,7 +39,7 @@ echo wp_kses_post( sprintf( // translators: %1$s placeholder is URL to the blog. %2$s placeholder is the name of the site. - __( 'The following job listing is expiring soon from %s.', 'wp-job-manager' ), + __( 'The following job listing is expiring soon from %2$s.', 'wp-job-manager' ), home_url(), get_bloginfo( 'name' ) ) diff --git a/templates/form-fields/file-field.php b/templates/form-fields/file-field.php index f52719b90..c0fe24181 100644 --- a/templates/form-fields/file-field.php +++ b/templates/form-fields/file-field.php @@ -58,6 +58,9 @@ class="" - + diff --git a/templates/form-fields/term-checklist-field.php b/templates/form-fields/term-checklist-field.php index cebff543e..8fbdc671c 100644 --- a/templates/form-fields/term-checklist-field.php +++ b/templates/form-fields/term-checklist-field.php @@ -35,6 +35,7 @@ ob_start(); wp_terms_checklist( 0, $args ); $checklist = ob_get_clean(); + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- wp_terms_checklist() returns trusted core HTML; wp_kses_post() would strip the elements. echo str_replace( "disabled='disabled'", '', $checklist ); ?> diff --git a/templates/form-fields/uploaded-file-html.php b/templates/form-fields/uploaded-file-html.php index edac1bf10..e8b5e9aa1 100644 --- a/templates/form-fields/uploaded-file-html.php +++ b/templates/form-fields/uploaded-file-html.php @@ -25,9 +25,9 @@ } $extension = ! empty( $extension ) ? $extension : substr( strrchr( $image_src, '.' ), 1 ); if ( 'image' === wp_ext2type( $extension ) ) : ?> - [] + [] - [] + [] diff --git a/templates/job-dashboard-overlay.php b/templates/job-dashboard-overlay.php index 3d2bb8ebb..0be29ff7f 100644 --- a/templates/job-dashboard-overlay.php +++ b/templates/job-dashboard-overlay.php @@ -30,6 +30,7 @@

    get_permalink( $job->ID ), 'label' => __( 'View', 'wp-job-manager' ), diff --git a/templates/job-dashboard.php b/templates/job-dashboard.php index 3cf4aef3f..54cd75352 100644 --- a/templates/job-dashboard.php +++ b/templates/job-dashboard.php @@ -57,14 +57,17 @@
    - $search_input // translators: Placeholder is the search term. - ? sprintf( __( 'No results found for "%s".', 'wp-job-manager' ), $search_input ) - : __( 'You do not have any active listings.', 'wp-job-manager' ) + ? sprintf( __( 'No results found for "%s".', 'wp-job-manager' ), esc_html( $search_input ) ) + : __( 'You do not have any active listings.', 'wp-job-manager' ), ] - ); ?> + ); + ?>
    @@ -97,6 +100,7 @@ class="jm-dashboard-empty"> } } + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- Rendered by UI_Elements::actions_menu(); wp_kses_post() would strip the onfocusout handler that auto-closes the menu. echo UI_Elements::actions_menu( $actions_html ); ?>
    diff --git a/templates/job-stats.php b/templates/job-stats.php index ea78abfe2..dcc6c3e45 100644 --- a/templates/job-stats.php +++ b/templates/job-stats.php @@ -102,7 +102,10 @@ - + @@ -112,6 +115,7 @@
    diff --git a/templates/job-submit.php b/templates/job-submit.php index 2dea23117..d3ae48047 100644 --- a/templates/job-submit.php +++ b/templates/job-submit.php @@ -22,6 +22,7 @@ ' . esc_html__( "You are editing an existing job. %s", 'wp-job-manager' ) . '

    ', '' . esc_html__( 'Create A New Job', 'wp-job-manager' ) . '' ); } ?> diff --git a/templates/job-submitted.php b/templates/job-submitted.php index 1f560dcf4..3442fe414 100644 --- a/templates/job-submitted.php +++ b/templates/job-submitted.php @@ -66,7 +66,8 @@ } elseif ( $job_dashboard_link && $job_dashboard_title ) { // If there is both a job_dashboard page and a title on the page $job_submitted_content .= wp_kses_post( sprintf( - __( ' %s', 'wp-job-manager' ), + // translators: %1$s is the URL to the job dashboard; %2$s is the page title. + __( ' %2$s', 'wp-job-manager' ), $job_dashboard_link, $job_dashboard_title ) diff --git a/templates/notice.php b/templates/notice.php index ca3906af4..3698cc9b6 100644 --- a/templates/notice.php +++ b/templates/notice.php @@ -45,7 +45,10 @@
    - +
    @@ -53,19 +56,33 @@
    - + - +
    -
    +
    + +
    diff --git a/wp-job-manager-deprecated.php b/wp-job-manager-deprecated.php index 17fd9460e..40cffcf99 100644 --- a/wp-job-manager-deprecated.php +++ b/wp-job-manager-deprecated.php @@ -5,6 +5,10 @@ * @package wp-job-manager */ +if ( ! defined( 'ABSPATH' ) ) { + exit; +} + if ( ! function_exists( 'order_featured_job_listing' ) ) : /** * Was used for sorting. diff --git a/wp-job-manager-functions.php b/wp-job-manager-functions.php index 491ebd6fb..7b1d1e00b 100644 --- a/wp-job-manager-functions.php +++ b/wp-job-manager-functions.php @@ -7,6 +7,10 @@ * @package wp-job-manager */ +if ( ! defined( 'ABSPATH' ) ) { + exit; +} + if ( ! function_exists( 'get_job_listings' ) ) : /** * Queries job listings with certain criteria and returns them. diff --git a/wp-job-manager-template.php b/wp-job-manager-template.php index 327272aa7..70f9db867 100644 --- a/wp-job-manager-template.php +++ b/wp-job-manager-template.php @@ -10,6 +10,10 @@ * @version 1.25.3 */ +if ( ! defined( 'ABSPATH' ) ) { + exit; +} + /** * Gets and includes template files. *