{"id":151855,"date":"2022-01-07T11:20:32","date_gmt":"2022-01-07T11:20:32","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/cyprus-pharmacies\/"},"modified":"2026-02-03T10:49:55","modified_gmt":"2026-02-03T10:49:55","slug":"cyprus-pharmacies","status":"publish","type":"plugin","link":"https:\/\/tah.wordpress.org\/plugins\/cyprus-pharmacies\/","author":14367600,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.2.8","stable_tag":"1.2.8","tested":"6.9.4","requires":"5.3","requires_php":"7.4","requires_plugins":null,"header_name":"Cyprus Pharmacies","header_author":"Savvas","header_description":"An easy way to show the all-night pharmacies of Cyprus per city.","assets_banners_color":"","last_updated":"2026-02-03 10:49:55","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/savvasha.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":3586,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","changelog"],"tags":{"1.1.1":{"tag":"1.1.1","author":"savvasha","date":"2022-01-07 11:20:30"},"1.1.2":{"tag":"1.1.2","author":"savvasha","date":"2022-10-29 06:04:18"},"1.2.0":{"tag":"1.2.0","author":"savvasha","date":"2023-03-14 17:35:02"},"1.2.1":{"tag":"1.2.1","author":"savvasha","date":"2024-03-21 09:34:42"},"1.2.2":{"tag":"1.2.2","author":"savvasha","date":"2024-04-03 11:56:26"},"1.2.3":{"tag":"1.2.3","author":"savvasha","date":"2024-04-04 04:52:02"},"1.2.4":{"tag":"1.2.4","author":"savvasha","date":"2025-04-18 16:06:46"},"1.2.5":{"tag":"1.2.5","author":"savvasha","date":"2024-11-13 07:27:41"},"1.2.7":{"tag":"1.2.7","author":"savvasha","date":"2025-07-07 15:41:12"},"1.2.8":{"tag":"1.2.8","author":"savvasha","date":"2026-02-03 10:49:55"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":2838717,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":2838717,"resolution":"256x256","location":"assets","locale":""},"icon.svg":{"filename":"icon.svg","revision":2838717,"resolution":false,"location":"assets","locale":false}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1.1","1.1.2","1.2.0","1.2.1","1.2.2","1.2.3","1.2.4","1.2.5","1.2.7","1.2.8"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":2654143,"resolution":"1","location":"assets","locale":""}},"screenshots":{"1":"The all-night pharmacies of Paphos for 4th and 5th of January"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[178617,29736,21312,97466,156993],"plugin_category":[],"plugin_contributors":[152192],"plugin_business_model":[],"class_list":["post-151855","plugin","type-plugin","status-publish","hentry","plugin_tags-cyprus","plugin_tags-greek","plugin_tags-night","plugin_tags-pharmacies","plugin_tags-pharmacy","plugin_contributors-savvasha","plugin_committers-savvasha"],"banners":[],"icons":{"svg":"https:\/\/ps.w.org\/cyprus-pharmacies\/assets\/icon.svg?rev=2838717","icon":"https:\/\/ps.w.org\/cyprus-pharmacies\/assets\/icon.svg?rev=2838717","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/cyprus-pharmacies\/assets\/screenshot-1.png?rev=2654143","caption":"The all-night pharmacies of Paphos for 4th and 5th of January"}],"raw_content":"<!--section=description-->\n<p>An easy way to show the all-night today and tomorrow pharmacies of Cyprus per city (Nicosia, Limassol, Larnaca, Paralimni, Paphos).<\/p>\n\n<p>A simple example<\/p>\n\n<pre><code>[cypharm show_title=false]\n<\/code><\/pre>\n\n<p><strong>More Options<\/strong><\/p>\n\n<p>The plugin supports the following optional parameters:<\/p>\n\n<ul>\n<li><code>city<\/code>: select the Cyprus city between Nicosia, Limassol, Larnaca, Paralimni and Paphos (defaults to <code>Paphos<\/code>)<\/li>\n<li><code>title<\/code>: Choose a custom title to use (defaults to <code>false<\/code>)<\/li>\n<\/ul>\n\n<p><strong>Performance Features<\/strong><\/p>\n\n<ul>\n<li><strong>Caching<\/strong>: API responses are cached for 12 hours to improve performance and reduce API calls<\/li>\n<li><strong>Cache Management<\/strong>: Admin interface to clear cache when needed<\/li>\n<li><strong>Smart Loading<\/strong>: Only makes API calls when cached data is expired or doesn't exist<\/li>\n<\/ul>\n\n<p><strong>Developer Features<\/strong><\/p>\n\n<ul>\n<li><strong>Customizable Cache Duration<\/strong>: Use the <code>cypharm_cache_duration<\/code> filter to modify cache duration<\/li>\n<li><strong>Cache Management<\/strong>: Programmatic cache clearing with <code>clear_cache()<\/code> method<\/li>\n<li><strong>Extensible<\/strong>: Easy to extend with additional caching features<\/li>\n<\/ul>\n\n<h3>Customizing Cache Duration<\/h3>\n\n<p>You can customize the cache duration by adding the following code to your theme's <code>functions.php<\/code> file:<\/p>\n\n<p><strong>Set cache to 24 hours:<\/strong>\n    <code>add_filter( 'cypharm_cache_duration', function() {\n    return 86400; \/\/ 24 hours in seconds\n});<\/code><\/p>\n\n<p><strong>Set cache to 1 hour:<\/strong>\n    <code>add_filter( 'cypharm_cache_duration', function() {\n    return 3600; \/\/ 1 hour in seconds\n});<\/code><\/p>\n\n<p><strong>Set cache to 30 minutes:<\/strong>\n    <code>add_filter( 'cypharm_cache_duration', function() {\n    return 1800; \/\/ 30 minutes in seconds\n});<\/code><\/p>\n\n<p><strong>Disable caching (not recommended for production):<\/strong>\n    <code>add_filter( 'cypharm_cache_duration', function() {\n    return 0; \/\/ No caching\n});<\/code><\/p>\n\n<p><strong>Using a named function (recommended):<\/strong>\n    <code>function my_custom_cypharm_cache_duration() {\n    return 7200; \/\/ 2 hours in seconds\n}\nadd_filter( 'cypharm_cache_duration', 'my_custom_cypharm_cache_duration' );<\/code><\/p>\n\n<h4>Credits<\/h4>\n\n<ul>\n<li><a href=\"https:\/\/www.data.gov.cy\/\">National Opendata Portal<\/a><\/li>\n<\/ul>\n\n<!--section=changelog-->\n<h4>1.2.8<\/h4>\n\n<ul>\n<li>UX: Added \"Settings\" link to plugin action links for easy access<\/li>\n<li>UX: Improved admin interface with better code examples<\/li>\n<\/ul>\n\n<h4>1.2.7<\/h4>\n\n<ul>\n<li>Performance: Added intelligent caching system to reduce API calls<\/li>\n<li>Performance: Cache pharmacy data for 12 hours to improve page load times<\/li>\n<li>Admin: Added cache management interface in Settings<\/li>\n<li>Developer: Added filter hook to customize cache duration<\/li>\n<li>Developer: Added cache clearing functionality for plugin activation\/deactivation<\/li>\n<li>Security: Maintained all previous security improvements<\/li>\n<\/ul>\n\n<h4>1.2.6<\/h4>\n\n<ul>\n<li>Security: Fixed XSS vulnerabilities by properly escaping all user data from external APIs<\/li>\n<li>Security: Added input validation for shortcode parameters to prevent invalid city values<\/li>\n<li>Security: Improved error handling for API responses with proper JSON validation<\/li>\n<li>Security: Added SSL verification to prevent man-in-the-middle attacks<\/li>\n<li>Security: Added proper user-agent headers for API requests<\/li>\n<li>Security: Enhanced error logging for debugging API issues<\/li>\n<\/ul>\n\n<h4>1.2.5<\/h4>\n\n<ul>\n<li>Fix: data.gov schema was changed.<\/li>\n<\/ul>\n\n<h4>1.2.4<\/h4>\n\n<ul>\n<li>Fix: Link to Google Maps is not working.<\/li>\n<\/ul>\n\n<h4>1.2.3<\/h4>\n\n<ul>\n<li>Fix: data.gov schema uses multiple date formats.<\/li>\n<\/ul>\n\n<h4>1.2.2<\/h4>\n\n<ul>\n<li>Fix: data.gov schema was changed.<\/li>\n<\/ul>\n\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>Tweak: Add a filter hook.<\/li>\n<li>Tweak: Add extra checks to avoid warnings for missing fields.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Tweak: Code refactoring<\/li>\n<li>New: Now the plugin is ready to be translated to your language!<\/li>\n<\/ul>\n\n<h4>1.1.2<\/h4>\n\n<ul>\n<li>FIX: Wrong surname was returned<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>FIX: Wrong community and telephone numbers<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Link to the Google Maps position of the pharmacy for Paphos Area.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First Release!<\/li>\n<\/ul>","raw_excerpt":"Show all-night today and tomorrow pharmacies of Cyprus","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/151855","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=151855"}],"author":[{"embeddable":true,"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/savvasha"}],"wp:attachment":[{"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=151855"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=151855"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=151855"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=151855"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=151855"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=151855"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}