{"id":271130,"date":"2026-01-03T10:42:28","date_gmt":"2026-01-03T10:42:28","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/acs-agenda-manager\/"},"modified":"2026-05-24T16:27:53","modified_gmt":"2026-05-24T16:27:53","slug":"acs-agenda-manager","status":"publish","type":"plugin","link":"https:\/\/ru.wordpress.org\/plugins\/acs-agenda-manager\/","author":14788390,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"3.6.0","stable_tag":"3.6.0","tested":"7.0","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"ACS Agenda Manager","header_author":"Andrea Cristalli","header_description":"A WordPress plugin for managing and displaying event agendas. Perfect for workshops, courses, and event organizers.","assets_banners_color":"fdfaf6","last_updated":"2026-05-24 16:27:53","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/www.paypal.com\/donate?business=KG9SDHM7VUP6Y&currency_code=CHF","header_plugin_uri":"https:\/\/github.com\/Esysc\/wordpress_agenda","header_author_uri":"https:\/\/github.com\/Esysc","rating":0,"author_block_rating":0,"active_installs":10,"downloads":450,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"3.3.4":{"tag":"3.3.4","author":"masteracs","date":"2026-01-03 11:55:16"},"3.4.0":{"tag":"3.4.0","author":"masteracs","date":"2026-01-03 19:16:10"},"3.5.0":{"tag":"3.5.0","author":"masteracs","date":"2026-05-22 22:24:28"},"3.5.1":{"tag":"3.5.1","author":"masteracs","date":"2026-05-23 19:20:50"},"3.5.2":{"tag":"3.5.2","author":"masteracs","date":"2026-05-24 10:46:33"},"3.6.0":{"tag":"3.6.0","author":"masteracs","date":"2026-05-24 16:27:53"}},"upgrade_notice":{"3.6.0":"<p>Feature release focused on native contact-form UX, stricter validation, updated translations, and expanded E2E regression coverage.<\/p>","3.5.2":"<p>Maintenance update focused on removing obsolete ACScontactform integration references from the plugin codebase and release materials.<\/p>","3.5.1":"<p>Maintenance update focused on reliability, admin UI hardening, aligned help instructions, and refreshed translations.<\/p>","3.3.4":"<p>Improved WordPress.org compliance with proper shortcode naming and complete Japanese translation.<\/p>","3.3.0":"<p>New Japanese language support, improved form validation, and better admin UI.<\/p>","3.0.0":"<p>Major update with complete code rewrite. Backup your database before upgrading.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3431596,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3431596,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3431596,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3431596,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{"blueprint.json":{"filename":"blueprint.json","revision":3546420,"resolution":false,"location":"assets","locale":"","contents":"{\"$schema\":\"https:\\\/\\\/playground.wordpress.net\\\/blueprint-schema.json\",\"landingPage\":\"\\\/agenda\\\/\",\"preferredVersions\":{\"php\":\"8.3\",\"wp\":\"latest\"},\"phpExtensionBundles\":[\"kitchen-sink\"],\"features\":{\"networking\":true},\"steps\":[{\"step\":\"installPlugin\",\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"acs-agenda-manager\"},\"options\":{\"activate\":true}},{\"step\":\"login\"},{\"step\":\"runPHP\",\"code\":\"<?php require_once '\\\/wordpress\\\/wp-load.php'; global $wpdb; $table = $wpdb->prefix . 'acs_agenda_manager'; $charset = $wpdb->get_charset_collate(); require_once ABSPATH . 'wp-admin\\\/includes\\\/upgrade.php'; dbDelta(\\\"CREATE TABLE IF NOT EXISTS {$table} (id INT(11) NOT NULL AUTO_INCREMENT, categorie VARCHAR(120) NOT NULL, title VARCHAR(120) NOT NULL, emplacement VARCHAR(120) NOT NULL, image VARCHAR(255) NOT NULL, intro TEXT NOT NULL, link VARCHAR(255) NOT NULL, date VARCHAR(255) NOT NULL, price VARCHAR(60) DEFAULT NULL, account TINYINT(1) DEFAULT 1, candopartial TINYINT(1) DEFAULT 0, redirect VARCHAR(255) DEFAULT NULL, last_date_ts INT DEFAULT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id), INDEX idx_date (date), INDEX idx_categorie (categorie), INDEX idx_last_date_ts (last_date_ts)) {$charset};\\\"); $count = (int) $wpdb->get_var(\\\"SELECT COUNT(*) FROM {$table}\\\"); $yoga_page = get_page_by_path('yoga-basics', OBJECT, 'page'); if (!$yoga_page) { $yoga_page_id = wp_insert_post(['post_title' => 'Yoga Basics', 'post_name' => 'yoga-basics', 'post_status' => 'publish', 'post_type' => 'page', 'post_content' => 'Yoga Basics is an introductory workshop focused on posture, breathing, and flexibility. Bring comfortable clothes and a yoga mat.']); $yoga_link = get_permalink($yoga_page_id); } else { $yoga_link = get_permalink($yoga_page); } $mind_page = get_page_by_path('mindfulness-practice', OBJECT, 'page'); if (!$mind_page) { $mind_page_id = wp_insert_post(['post_title' => 'Mindfulness Practice', 'post_name' => 'mindfulness-practice', 'post_status' => 'publish', 'post_type' => 'page', 'post_content' => 'Mindfulness Practice is a guided session to reduce stress and improve focus through breathing and gentle awareness exercises.']); $mind_link = get_permalink($mind_page_id); } else { $mind_link = get_permalink($mind_page); } $wpdb->update($table, ['link' => $yoga_link], ['title' => 'Yoga Basics', 'link' => ''], ['%s'], ['%s','%s']); $wpdb->update($table, ['link' => $mind_link], ['title' => 'Mindfulness Practice', 'link' => ''], ['%s'], ['%s','%s']); if ($count === 0) { $d1 = gmdate('d\\\/m\\\/y', strtotime('+5 days')); $d2 = gmdate('d\\\/m\\\/y', strtotime('+12 days')); $wpdb->insert($table, ['categorie' => 'Workshop', 'title' => 'Yoga Basics', 'emplacement' => 'Community Center', 'image' => '', 'intro' => 'Introduction class for all levels.', 'link' => $yoga_link, 'date' => $d1, 'price' => 'CHF 20.-', 'account' => 1, 'candopartial' => 0], ['%s','%s','%s','%s','%s','%s','%s','%s','%d','%d']); $wpdb->insert($table, ['categorie' => 'Course', 'title' => 'Mindfulness Practice', 'emplacement' => 'Studio Room B', 'image' => '', 'intro' => 'Weekly guided session focused on breathing and relaxation.', 'link' => $mind_link, 'date' => $d2, 'price' => 'CHF 35.-', 'account' => 1, 'candopartial' => 1], ['%s','%s','%s','%s','%s','%s','%s','%s','%d','%d']); } $agenda = get_page_by_path('agenda', OBJECT, 'page'); if (!$agenda) { wp_insert_post(['post_title' => 'Agenda', 'post_name' => 'agenda', 'post_status' => 'publish', 'post_type' => 'page', 'post_content' => '[acsagma_agenda]', 'comment_status' => 'closed', 'ping_status' => 'closed']); } update_option('acsagma_page', 'Agenda');\"},{\"step\":\"runPHP\",\"code\":\"<?php require_once '\\\/wordpress\\\/wp-load.php'; $mu_dir = WPMU_PLUGIN_DIR; if (!is_dir($mu_dir)) { wp_mkdir_p($mu_dir); } $shim = <<<'SHIM'\\n<?php\\ndefined('ABSPATH') || exit;\\nadd_action('init', function () {\\n    if (!class_exists('ACSAGMA_Template')) {\\n        return;\\n    }\\n    if (shortcode_exists('acsagma_agenda')) {\\n        remove_shortcode('acsagma_agenda');\\n    }\\n    add_shortcode('acsagma_agenda', function () {\\n        global $wpdb;\\n        $table = $wpdb->prefix . 'acs_agenda_manager';\\n        $rows = $wpdb->get_results('SELECT * FROM ' . $table . ' ORDER BY id ASC', ARRAY_A);\\n        $events = [];\\n        foreach ($rows as $row) {\\n            $dates = array_values(array_filter(array_map('trim', explode(',', (string) ($row['date'] ?? '')))));\\n            if (empty($dates)) {\\n                continue;\\n            }\\n            $dates_info = [];\\n            foreach ($dates as $date) {\\n                $dates_info[] = ['date' => $date];\\n            }\\n            $events[] = [\\n                'id' => (int) ($row['id'] ?? 0),\\n                'categorie' => (string) ($row['categorie'] ?? ''),\\n                'title' => (string) ($row['title'] ?? ''),\\n                'emplacement' => (string) ($row['emplacement'] ?? ''),\\n                'image' => (string) ($row['image'] ?? ''),\\n                'intro' => (string) ($row['intro'] ?? ''),\\n                'link' => (string) ($row['link'] ?? ''),\\n                'dates' => $dates,\\n                'dates_info' => $dates_info,\\n                'price' => (string) ($row['price'] ?? ''),\\n                'account' => (int) ($row['account'] ?? 1),\\n                'candopartial' => (int) ($row['candopartial'] ?? 0),\\n                'redirect' => (string) ($row['redirect'] ?? ''),\\n                'status' => null,\\n            ];\\n        }\\n        if (empty($events)) {\\n            return '<p>No upcoming events.<\\\/p>';\\n        }\\n        return ACSAGMA_Template::render_agenda($events);\\n    });\\n}, 1000);\\nSHIM; file_put_contents($mu_dir . '\\\/acsagma-playground-preview-shim.php', $shim);\"}]}"}},"all_blocks":[],"tagged_versions":["3.3.4","3.4.0","3.5.0","3.5.1","3.5.2","3.6.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3431570,"resolution":"1","location":"assets","locale":"","width":1280,"height":800},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3431570,"resolution":"2","location":"assets","locale":"","width":1280,"height":900},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3431570,"resolution":"3","location":"assets","locale":"","width":1280,"height":900},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3431570,"resolution":"4","location":"assets","locale":"","width":1280,"height":800},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3431570,"resolution":"5","location":"assets","locale":"","width":1280,"height":800}},"screenshots":{"1":"Main admin dashboard showing the event list with search and bulk actions","2":"Event editor dialog with form fields for title, location, and description","3":"Multi-date calendar picker for selecting event dates","4":"Frontend agenda display with modern responsive layout","5":"Plugin settings and configuration options"}},"plugin_section":[],"plugin_tags":[5595,416,1486,4062,18341],"plugin_category":[40],"plugin_contributors":[253217],"plugin_business_model":[],"class_list":["post-271130","plugin","type-plugin","status-publish","hentry","plugin_tags-agenda","plugin_tags-calendar","plugin_tags-events","plugin_tags-schedule","plugin_tags-workshop","plugin_category-calendar-and-events","plugin_contributors-masteracs","plugin_committers-masteracs"],"banners":{"banner":"https:\/\/ps.w.org\/acs-agenda-manager\/assets\/banner-772x250.png?rev=3431596","banner_2x":"https:\/\/ps.w.org\/acs-agenda-manager\/assets\/banner-1544x500.png?rev=3431596","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/acs-agenda-manager\/assets\/icon-128x128.png?rev=3431596","icon_2x":"https:\/\/ps.w.org\/acs-agenda-manager\/assets\/icon-256x256.png?rev=3431596","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/acs-agenda-manager\/assets\/screenshot-1.png?rev=3431570","caption":"Main admin dashboard showing the event list with search and bulk actions"},{"src":"https:\/\/ps.w.org\/acs-agenda-manager\/assets\/screenshot-2.png?rev=3431570","caption":"Event editor dialog with form fields for title, location, and description"},{"src":"https:\/\/ps.w.org\/acs-agenda-manager\/assets\/screenshot-3.png?rev=3431570","caption":"Multi-date calendar picker for selecting event dates"},{"src":"https:\/\/ps.w.org\/acs-agenda-manager\/assets\/screenshot-4.png?rev=3431570","caption":"Frontend agenda display with modern responsive layout"},{"src":"https:\/\/ps.w.org\/acs-agenda-manager\/assets\/screenshot-5.png?rev=3431570","caption":"Plugin settings and configuration options"}],"raw_content":"<!--section=description-->\n<p>ACS Agenda Manager provides an easy way to create and manage an event agenda on your WordPress site. Display upcoming events with dates, locations, images, and descriptions in a clean, responsive layout.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li>Multi-date support: Events can span multiple days with visual multi-date calendar picker<\/li>\n<li>Media integration: Upload and display event images via WordPress Media Library<\/li>\n<li>Image lightbox: Click images to view full-size in a popup overlay<\/li>\n<li>Location display: Show event locations prominently<\/li>\n<li>Linked pages: Connect events to detailed WordPress pages<\/li>\n<li>Automatic expiration: Past events are automatically hidden<\/li>\n<li>Modern responsive design: CSS Grid layout with glass-morphism effects<\/li>\n<li>Easy administration: Intuitive admin interface with card-based form sections<\/li>\n<li>Real-time validation: In-dialog error messages and success notifications<\/li>\n<li>Native contact form: Built-in organizer contact form available via the dedicated Contact action<\/li>\n<\/ul>\n\n<h4>Supported Languages<\/h4>\n\n<ul>\n<li>English (en_US) - Default<\/li>\n<li>French (fr_FR)<\/li>\n<li>German (de_DE, de_CH)<\/li>\n<li>Italian (it_IT)<\/li>\n<li>Japanese (ja)<\/li>\n<\/ul>\n\n<h4>Usage<\/h4>\n\n<p>Display the agenda on any page or post using the shortcode:<\/p>\n\n<pre><code>[acsagma_agenda]\n<\/code><\/pre>\n\n<p>The plugin automatically creates an \"Agenda\" page upon activation with the shortcode included.<\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin uses external services as follows:<\/p>\n\n<h4>Google Maps API<\/h4>\n\n<p>When a Google Maps API key is configured in the plugin settings, the plugin loads the Google Maps JavaScript API to display location maps for events.<\/p>\n\n<ul>\n<li><strong>What data is sent:<\/strong> Event location addresses (only when viewing events with locations)<\/li>\n<li><strong>When:<\/strong> The API is loaded when viewing pages that display the agenda with events containing location information<\/li>\n<li><strong>Service provider:<\/strong> Google LLC<\/li>\n<li><strong>Terms of Service:<\/strong> https:\/\/developers.google.com\/maps\/terms<\/li>\n<li><strong>Privacy Policy:<\/strong> https:\/\/policies.google.com\/privacy<\/li>\n<\/ul>\n\n<p>Note: Google Maps integration is optional. The plugin works without an API key, but maps will not be displayed.<\/p>\n\n<h3>Credits<\/h3>\n\n<ul>\n<li>jQuery UI Datepicker: bundled with WordPress core<\/li>\n<li>Icons: WordPress Dashicons<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>acs-agenda-manager<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress<\/li>\n<li>Navigate to Agenda in the admin menu to start adding events<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20do%20i%20display%20the%20agenda%3F\"><h3>How do I display the agenda?<\/h3><\/dt>\n<dd><p>Use the <code>[acsagma_agenda]<\/code> shortcode on any page or post.<\/p><\/dd>\n<dt id=\"can%20events%20have%20multiple%20dates%3F\"><h3>Can events have multiple dates?<\/h3><\/dt>\n<dd><p>Yes, events can have multiple dates. Use the calendar in the event editor to select multiple dates.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20an%20event%20expires%3F\"><h3>What happens when an event expires?<\/h3><\/dt>\n<dd><p>By default, events are hidden after their last date passes. You can control this behavior with the \"Partial Attendance\" setting under \"Advanced settings\" in the event editor.<\/p><\/dd>\n<dt id=\"can%20i%20customize%20the%20appearance%3F\"><h3>Can I customize the appearance?<\/h3><\/dt>\n<dd><p>Yes, you can override the CSS in your theme or copy the template file to your theme for full customization.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>3.6.0<\/h4>\n\n<ul>\n<li>Added dedicated Contact button and split dialog modes so Read More shows linked page preview content while Contact shows event intro plus the contact form (without linked page preview)<\/li>\n<li>Improved contact-form UX and styling, including clearer field states for validation feedback<\/li>\n<li>Strengthened contact email validation in frontend and backend (rejects invalid one-letter TLD addresses)<\/li>\n<li>Added and updated E2E coverage for contact mode behavior, validation messages, and settings persistence<\/li>\n<li>Updated translations and regenerated locale assets for new and adjusted contact\/validation strings<\/li>\n<\/ul>\n\n<h4>3.5.2<\/h4>\n\n<ul>\n<li>Removed obsolete ACScontactform integration references from the plugin codebase, documentation, and tests<\/li>\n<\/ul>\n\n<h4>3.5.1<\/h4>\n\n<ul>\n<li>Fixed intermittent E2E\/global-setup login reliability in CI after fresh environment restarts<\/li>\n<li>Improved admin image preview hardening by validating URLs and rendering preview nodes via safe DOM APIs<\/li>\n<li>Improved date-chip accessibility with visible keyboard focus styling in the admin calendar UI<\/li>\n<li>Updated help\/README wording for Advanced settings and Partial Attendance to keep instructions aligned<\/li>\n<li>Refined translation entries and rebuilt locale assets for updated help\/instruction strings<\/li>\n<\/ul>\n\n<h4>3.5.0<\/h4>\n\n<ul>\n<li>Added frontend toolbar with search, category filter, date-range filter (today\/week\/month), sort toggle, and compact\/full layout toggle<\/li>\n<li>Added windowed client-side pagination (current \u00b1 1 with ellipses)<\/li>\n<li>Added Read More button to expand additional event content per card<\/li>\n<li>Added <code>acsagma_max_events<\/code> filter hook to make DB fetch limit configurable (default 500)<\/li>\n<li>Performance: new <code>last_date_ts<\/code> DB column pre-filters expired events in SQL on every shortcode render; backfilled automatically on upgrade<\/li>\n<li>Fixed event filter: encoding changed from hyphen-string to JSON \u2014 fixes breakage when titles\/categories contain hyphens and fixes category filter being silently ignored<\/li>\n<li>Fixed week\/month date-range filters incorrectly excluding today's events mid-day<\/li>\n<li>Fixed event sort\/group order for partial-attendance mode 2 events with leading expired dates<\/li>\n<li>Fixed Settings rename deleting the Agenda page<\/li>\n<li>Fixed capabilities check for admin delete actions<\/li>\n<li>Fixed event list count not matching the filtered query<\/li>\n<li>Fixed <code>type=\"button\"<\/code> missing on Read More button<\/li>\n<li>Prevented HTML injection in month heading rendering<\/li>\n<li>Accessibility: <code>role=\"navigation\"<\/code> on pagination, <code>aria-current=\"page\"<\/code> on active page button, <code>aria-hidden<\/code> on decorative dashicon<\/li>\n<li>Translated all new strings into French, German (DE\/CH), Italian, and Japanese<\/li>\n<\/ul>\n\n<h4>3.4.0<\/h4>\n\n<ul>\n<li>Added \"Delete Data on Uninstall\" option in Settings to optionally remove all plugin data when uninstalling<\/li>\n<li>Added proper uninstall cleanup with uninstall.php<\/li>\n<li>Translations are now automatically installed to WordPress languages directory on activation<\/li>\n<li>Removed Swiss French (fr_CH) and Swiss Italian (it_CH) translations (not supported by WordPress core)<\/li>\n<li>Fixed SQL injection prevention in uninstall script<\/li>\n<\/ul>\n\n<h4>3.3.4<\/h4>\n\n<ul>\n<li>Fixed shortcode naming for WordPress.org compliance<\/li>\n<li>Improved admin menu branding: renamed \"Agenda\" to \"ACS Agenda\" for better identification<\/li>\n<li>Complete Japanese translation now available<\/li>\n<li>Updated all translation files with correct shortcode references<\/li>\n<li>Added comprehensive E2E test coverage for advanced fields, help page, image management, settings, and form validation<\/li>\n<\/ul>\n\n<h4>3.3.3<\/h4>\n\n<ul>\n<li>Fixed global variable naming in help-page.php template to use proper acsagma prefix<\/li>\n<li>Updated test environment to exclude development files for Plugin Check compliance<\/li>\n<li>Added Plugin Check integration to Docker test setup<\/li>\n<\/ul>\n\n<h4>3.3.2<\/h4>\n\n<ul>\n<li>Fixed all WordPress.org plugin review compliance issues<\/li>\n<li>Updated all prefixes from 'acs' (3 chars) to 'acsagma' (7 chars) for uniqueness<\/li>\n<li>Fixed AJAX action names to use proper acsagma_ prefix<\/li>\n<li>Fixed menu slugs after prefix rename<\/li>\n<li>Fixed E2E tests: calendar navigation, frontend event display, and filter functionality<\/li>\n<li>Updated calendar tests to read dropdown values correctly<\/li>\n<li>Fixed event creation date to use future dates for frontend visibility<\/li>\n<\/ul>\n\n<h4>3.3.1<\/h4>\n\n<ul>\n<li>Added automated screenshot generation for WordPress.org<\/li>\n<li>Added GitHub Actions workflow for WordPress.org deployment<\/li>\n<li>Fixed Docker test environment SELinux compatibility<\/li>\n<li>Fixed MySQL 8.4 authentication compatibility with WP-CLI<\/li>\n<\/ul>\n\n<h4>3.3.0<\/h4>\n\n<ul>\n<li>Added Japanese language support<\/li>\n<li>Added success notifications for event operations<\/li>\n<li>Added in-dialog validation error messages<\/li>\n<li>Improved form with card-based sections (Basic Info, Schedule, Media, Links &amp; Pricing)<\/li>\n<li>Fixed date field validation and dialog button styling<\/li>\n<li>Split CSS into modular files for better organization<\/li>\n<\/ul>\n\n<h4>3.2.0<\/h4>\n\n<ul>\n<li>Added image lightbox for full-size image viewing<\/li>\n<li>Added close button for calendar date picker<\/li>\n<li>Modern frontend redesign with CSS Grid and glass-morphism effects<\/li>\n<li>Improved mobile responsive design<\/li>\n<li>Fixed calendar to properly disable past dates<\/li>\n<\/ul>\n\n<h4>3.1.0<\/h4>\n\n<ul>\n<li>Added E2E test suite using Playwright<\/li>\n<li>Fixed \"Headers already sent\" error when deleting events<\/li>\n<\/ul>\n\n<h4>3.0.0<\/h4>\n\n<ul>\n<li>Complete rewrite with modern PHP 7.4+ code<\/li>\n<li>New class-based architecture<\/li>\n<li>Improved security and performance<\/li>\n<li>Better admin UI with template files<\/li>\n<li>User guide integrated in admin<\/li>\n<li>Added German translations (de_DE, de_CH)<\/li>\n<\/ul>\n\n<h4>2.1.1<\/h4>\n\n<ul>\n<li>Added French and Italian translations<\/li>\n<li>Various bug fixes<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>Initial public release<\/li>\n<\/ul>","raw_excerpt":"A WordPress plugin for managing and displaying event agendas. Perfect for workshops, courses, conferences, and event organizers.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ru.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/271130","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ru.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ru.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ru.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=271130"}],"author":[{"embeddable":true,"href":"https:\/\/ru.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/masteracs"}],"wp:attachment":[{"href":"https:\/\/ru.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=271130"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ru.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=271130"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ru.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=271130"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ru.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=271130"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ru.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=271130"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ru.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=271130"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}