{"id":387675,"date":"2026-10-26T23:15:34","date_gmt":"2026-10-26T23:15:34","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/takt-site-features\/"},"modified":"2026-10-26T23:15:17","modified_gmt":"2026-10-26T23:15:17","slug":"takt-site-features","status":"publish","type":"plugin","link":"https:\/\/tr.wordpress.org\/plugins\/takt-site-features\/","author":20998230,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.0.3","stable_tag":"2.0.3","tested":"7.1.4","requires":"7.1","requires_php":"8.1","requires_plugins":null,"header_name":"Takt Site Features","header_author":"Arber Gashi","header_description":"Free site features for Takt: events, music, albums, football clubs, complete starter sites, importers and an optional WooCommerce fan shop.","assets_banners_color":"","last_updated":"2026-10-26 23:15:17","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/www.pro-business.ch\/en\/takt\/","header_author_uri":"https:\/\/pro-business.ch","rating":0,"author_block_rating":0,"active_installs":0,"downloads":61,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"2.0.3":{"tag":"2.0.3","author":"arbergashi","date":"2026-10-26 23:15:17","revision":3767469}},"upgrade_notice":{"2.0.3":"<p>Requires WordPress 7.1 and PHP 8.1. Refines form validation and private participant-list access. Existing content, settings, registrations and ticket rights are retained; no setup or reimport is required.<\/p>","2.0.2":"<p>Requires WordPress 7.1 and PHP 8.1. Refines request validation and output handling following manual review. Existing content, settings, registrations and ticket rights are retained; no setup or reimport is required.<\/p>","2.0.1":"<p>Requires WordPress 7.1 and PHP 8.1. Hardens form validation, permissions, nonces and output handling. Existing content, settings, registrations and tickets are retained. No setup or reimport is required.<\/p>","2.0.0":"<p>Requires WordPress 7.1. Adds Club TV, season reviews, registrations and ticket offers. Existing content, single tickets and module choices remain. Passes are paid once, expire on a fixed date and never renew automatically. Digital issuance is opt-in; test checkout and admission before selling.<\/p>","1.0.3":"<p>Adds optional responsive slideshow heights and protects embedded media and\nform controls from slideshow gestures. Existing saved content and heights are\nretained; no setup or reimport is required.<\/p>","1.0.2":"<p>Adds standings CSV preview\/export, regional translations and dates, richer\npartner layouts and corrected tentative calendar events. Existing content,\nsaved menus and module choices are retained. Review CSV rows before applying\nand saving them.<\/p>","1.0.0":"<p>The complete feature set is now free. Existing content and module settings are\nretained; license checks and private updates are retired.<\/p>"},"ratings":[],"assets_icons":{"icon.svg":{"filename":"icon.svg","revision":3767468,"resolution":false,"location":"assets","locale":false}},"assets_banners":[],"assets_blueprints":{},"all_blocks":{"takt-pro\/club-group":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"takt-pro\/club-group","version":"0.1.0","title":"Club group","category":"widgets","icon":"groups","description":"A club board, committee or working group with its members and responsibilities.","keywords":["club","board","committee","members"],"textdomain":"takt-site-features","attributes":{"groupId":{"type":"number","default":0},"display":{"type":"string","enum":["complete","header","members"],"default":"complete"},"headingLevel":{"type":"number","default":2},"columns":{"type":"number","default":3},"showPortraits":{"type":"boolean","default":true},"showContact":{"type":"boolean","default":true},"showMemberContact":{"type":"boolean","default":false},"showSummary":{"type":"boolean","default":true},"showMemberDetails":{"type":"boolean","default":false},"showImage":{"type":"boolean","default":true},"showParent":{"type":"boolean","default":true},"showHeading":{"type":"boolean","default":true}},"usesContext":["postId","postType"],"supports":{"align":["wide","full"],"spacing":{"margin":true,"padding":true},"color":{"background":true,"text":true},"html":false},"editorScript":"file:.\/editor.js","style":"file:.\/style.css","render":"file:.\/render.php"},"takt-pro\/player-stats":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"takt-pro\/player-stats","version":"0.1.0","title":"Player statistics","category":"widgets","icon":"chart-bar","description":"Season statistics for the current club player.","textdomain":"takt-site-features","attributes":{"seasonId":{"type":"number","default":0},"teamId":{"type":"number","default":0},"showMinutes":{"type":"boolean","default":true},"showCards":{"type":"boolean","default":true},"showHeading":{"type":"boolean","default":false},"heading":{"type":"string","default":""},"emptyText":{"type":"string","default":""}},"usesContext":["postId","postType"],"supports":{"align":["wide","full"],"spacing":{"margin":true},"html":false},"editorScript":"file:.\/editor.js","style":"file:.\/style.css","render":"file:.\/render.php"},"takt-pro\/match-timeline":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"takt-pro\/match-timeline","version":"0.1.0","title":"Match timeline","category":"widgets","icon":"editor-ol","description":"Goals, cards, substitutions and moments from the current match.","textdomain":"takt-site-features","attributes":{"showSide":{"type":"boolean","default":true},"showHeading":{"type":"boolean","default":false},"heading":{"type":"string","default":""},"emptyText":{"type":"string","default":""}},"usesContext":["postId","postType"],"supports":{"align":["wide","full"],"spacing":{"margin":true},"html":false},"editorScript":"file:.\/editor.js","style":"file:.\/style.css","render":"file:.\/render.php"},"takt-pro\/event-details":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"takt-pro\/event-details","version":"0.2.0","title":"Event details","category":"theme","icon":"calendar","description":"Date, time, venue, link and a calendar download for the current event. Use inside event templates or query loops.","textdomain":"takt-site-features","usesContext":["postId","postType"],"attributes":{"display":{"type":"string","default":"full","enum":["full","badge","meta"]},"showCalendar":{"type":"boolean","default":true}},"supports":{"html":false,"spacing":{"margin":true},"color":{"text":true,"background":true}},"editorScript":"file:.\/editor.js","style":"file:.\/style.css","render":"file:.\/render.php"},"takt-pro\/match-list":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"takt-pro\/match-list","version":"0.1.0","title":"Fixtures and results","category":"widgets","icon":"list-view","description":"A team-, season- or competition-filtered list of club fixtures and results.","keywords":["football","fixtures","results","schedule"],"textdomain":"takt-site-features","attributes":{"view":{"type":"string","default":"upcoming"},"teamId":{"type":"number","default":0},"seasonId":{"type":"number","default":0},"competitionId":{"type":"number","default":0},"count":{"type":"number","default":10},"offset":{"type":"number","default":0},"pagination":{"type":"boolean","default":false},"useVisitorFilters":{"type":"boolean","default":false},"showCalendar":{"type":"boolean","default":true},"showTicketStatus":{"type":"boolean","default":false},"emptyText":{"type":"string","default":""}},"usesContext":["postId","postType"],"supports":{"align":["wide","full"],"spacing":{"margin":true,"padding":true},"color":{"background":true,"text":true},"html":false},"editorScript":"file:.\/editor.js","style":"file:.\/style.css","render":"file:.\/render.php"},"takt-pro\/milestones":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"takt-pro\/milestones","version":"0.1.0","title":"Milestones","category":"text","icon":"backup","description":"A timeline of your story: one entry per year or event, with a title and free content.","keywords":["timeline","history","milestones","chronology","story"],"textdomain":"takt-site-features","attributes":{"align":{"type":"string"},"compact":{"type":"boolean","default":false}},"supports":{"align":["wide"],"html":false,"anchor":true,"spacing":{"margin":true,"padding":true},"typography":{"fontSize":true},"color":{"text":true,"background":true,"link":true}},"editorScript":"file:.\/editor.js","style":"file:.\/style.css","render":"file:.\/render.php"},"takt-pro\/season-review":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"takt-pro\/season-review","version":"0.1.0","title":"Season review","category":"widgets","icon":"awards","description":"A season header, saved historical squad, results and matching league tables.","keywords":["club","season","squad","history"],"textdomain":"takt-site-features","attributes":{"archiveId":{"type":"number","default":0},"display":{"type":"string","enum":["header","roster","results","table","complete"],"default":"complete"},"headingLevel":{"type":"number","default":2},"columns":{"type":"number","default":3},"showImage":{"type":"boolean","default":true},"showSummary":{"type":"boolean","default":true},"showNavigation":{"type":"boolean","default":true},"showHeading":{"type":"boolean","default":true},"tableId":{"type":"number","default":0},"resultsPerPage":{"type":"number","default":12},"showFullRecord":{"type":"boolean","default":true}},"usesContext":["postId","postType"],"supports":{"align":["wide","full"],"spacing":{"margin":true,"padding":true},"color":{"background":true,"text":true},"html":false},"editorScript":"file:.\/editor.js","style":"file:.\/style.css","render":"file:.\/render.php"},"takt-pro\/sponsors":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"takt-pro\/sponsors","version":"0.1.0","title":"Club partners","category":"widgets","icon":"heart","description":"Partner logos, editorial cards or featured profiles, filtered by team, season and level.","keywords":["football","sponsors","partners","logos"],"textdomain":"takt-site-features","attributes":{"teamId":{"type":"number","default":0},"seasonId":{"type":"number","default":0},"levelId":{"type":"number","default":0},"layout":{"type":"string","default":"logos","enum":["logos","cards","featured"]},"count":{"type":"number","default":24},"columns":{"type":"number","default":4},"showDescription":{"type":"boolean","default":false},"showLevel":{"type":"boolean","default":false},"linkDestination":{"type":"string","default":"website","enum":["website","profile"]},"emptyText":{"type":"string","default":""}},"usesContext":["postId","postType"],"supports":{"align":["wide","full"],"spacing":{"margin":true,"padding":true},"color":{"background":true,"text":true},"html":false},"editorScript":"file:.\/editor.js","style":"file:.\/style.css","render":"file:.\/render.php"},"takt-pro\/event-registration":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"takt-pro\/event-registration","version":"1.0.0","title":"Event registration","category":"theme","icon":"tickets-alt","description":"Optional registration with email confirmation and a waiting list. Enable it in the event's settings first.","textdomain":"takt-site-features","usesContext":["postId","postType"],"attributes":{"heading":{"type":"string","default":""},"onlyWhenAbsent":{"type":"boolean","default":false}},"supports":{"html":false,"anchor":true,"spacing":{"margin":true,"padding":true},"color":{"text":true,"background":true}},"editorScript":"file:.\/editor.js","style":"file:.\/style.css","render":"file:.\/render.php","viewScript":"file:.\/view.js"},"takt-pro\/match-calendar-link":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"takt-pro\/match-calendar-link","version":"0.1.0","title":"Match calendar link","category":"widgets","icon":"calendar-alt","description":"A separately placeable subscription link for a club match calendar.","keywords":["football","calendar","subscription","fixtures"],"textdomain":"takt-site-features","attributes":{"teamId":{"type":"number","default":0},"seasonId":{"type":"number","default":0},"competitionId":{"type":"number","default":0},"useVisitorFilters":{"type":"boolean","default":false},"alignment":{"type":"string","default":"right"},"presentation":{"type":"string","default":"separated"},"label":{"type":"string","default":""}},"usesContext":["postId","postType"],"supports":{"align":["wide","full"],"spacing":{"margin":true,"padding":true},"html":false},"editorScript":"file:.\/editor.js","style":"file:.\/style.css","render":"file:.\/render.php"},"takt-pro\/breadcrumbs":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"takt-pro\/breadcrumbs","version":"0.2.0","title":"Breadcrumbs","category":"theme","icon":"menu-alt","description":"The trail from the front page to the page being read, with the matching structured data.","textdomain":"takt-site-features","attributes":{"display":{"type":"string","default":"trail","enum":["trail","back"]},"separator":{"type":"string","default":"\u203a"},"showSchema":{"type":"boolean","default":true}},"supports":{"html":false,"align":["wide","full"],"spacing":{"margin":true},"color":{"text":true},"typography":{"fontSize":true}},"editorScript":"file:.\/editor.js","style":"file:.\/style.css","render":"file:.\/render.php"},"takt-pro\/person-hero":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"takt-pro\/person-hero","version":"0.1.0","title":"Club person profile","category":"widgets","icon":"id-alt","description":"A complete profile header for a player, coach or staff member.","keywords":["football","player","coach","profile","squad"],"textdomain":"takt-site-features","attributes":{"showPortrait":{"type":"boolean","default":true},"showRole":{"type":"boolean","default":true},"showNumber":{"type":"boolean","default":true},"showPosition":{"type":"boolean","default":true},"showTeams":{"type":"boolean","default":true},"showOrganization":{"type":"boolean","default":true},"showSummary":{"type":"boolean","default":true},"showFacts":{"type":"boolean","default":true},"showContact":{"type":"boolean","default":true}},"usesContext":["postId","postType"],"supports":{"align":["wide","full"],"spacing":{"margin":true,"padding":true},"color":{"background":true,"text":true},"html":false},"editorScript":"file:.\/editor.js","style":"file:.\/style.css","render":"file:.\/render.php"},"takt-pro\/squad":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"takt-pro\/squad","version":"0.1.0","title":"Squad and staff","category":"widgets","icon":"groups","description":"Players, coaches and staff filtered by team and role.","keywords":["football","squad","players","coaches"],"textdomain":"takt-site-features","attributes":{"teamId":{"type":"number","default":0},"role":{"type":"string","default":""},"count":{"type":"number","default":24},"columns":{"type":"number","default":4},"showBio":{"type":"boolean","default":false},"emptyText":{"type":"string","default":""}},"usesContext":["postId","postType"],"supports":{"align":["wide","full"],"spacing":{"margin":true,"padding":true},"color":{"background":true,"text":true},"html":false},"editorScript":"file:.\/editor.js","style":"file:.\/style.css","render":"file:.\/render.php"},"takt-pro\/match-actions":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"takt-pro\/match-actions","version":"0.1.0","title":"Matchday actions","category":"widgets","icon":"tickets-alt","description":"Tickets, broadcast, directions and practical matchday information for one match.","keywords":["football","tickets","matchday","broadcast"],"textdomain":"takt-site-features","attributes":{"matchId":{"type":"number","default":0},"showCalendar":{"type":"boolean","default":true}},"usesContext":["postId","postType"],"supports":{"align":["wide","full"],"spacing":{"margin":true},"html":false},"editorScript":"file:.\/editor.js","style":"file:.\/style.css","render":"file:.\/render.php"},"takt-pro\/reading-time":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"takt-pro\/reading-time","version":"0.2.0","title":"Reading time","category":"theme","icon":"clock","description":"How long the current post takes to read, counted from its own words.","textdomain":"takt-site-features","usesContext":["postId","postType"],"attributes":{"wordsPerMinute":{"type":"number","default":200},"showIcon":{"type":"boolean","default":true}},"supports":{"html":false,"spacing":{"margin":true},"color":{"text":true},"typography":{"fontSize":true}},"editorScript":"file:.\/editor.js","style":"file:.\/style.css","render":"file:.\/render.php"},"takt-pro\/upcoming-events":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"takt-pro\/upcoming-events","version":"0.1.0","title":"Upcoming events","category":"widgets","icon":"calendar-alt","description":"The next dates with day, month, title and venue.","keywords":["events","dates","tour","concerts"],"textdomain":"takt-site-features","attributes":{"count":{"type":"number","default":5},"moreLabel":{"type":"string","default":""},"moreUrl":{"type":"string","default":""},"emptyText":{"type":"string","default":""}},"supports":{"align":["wide","full"],"spacing":{"margin":true,"padding":true},"color":{"background":true,"text":true},"html":false},"editorScript":"file:.\/editor.js","style":"file:.\/style.css","render":"file:.\/render.php"},"takt-pro\/hero-slideshow":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"takt-pro\/hero-slideshow","version":"0.2.0","title":"Hero slideshow","category":"media","icon":"slides","description":"Full-width slideshow of photos with your text on top. Crossfades automatically, pauses on hover, respects reduced-motion settings.","keywords":["hero","slider","slideshow","cover","gallery"],"textdomain":"takt-site-features","attributes":{"images":{"type":"array","default":[],"items":{"type":"object"}},"interval":{"type":"number","default":6},"autoplay":{"type":"boolean","default":true},"pauseOnHover":{"type":"boolean","default":true},"dim":{"type":"number","default":55},"minHeight":{"type":"number","default":34},"desktopHeight":{"type":"string","default":""},"tabletHeight":{"type":"string","default":""},"mobileHeight":{"type":"string","default":""},"showDots":{"type":"boolean","default":true},"showArrows":{"type":"boolean","default":false},"kenBurns":{"type":"boolean","default":true},"align":{"type":"string","default":"full"}},"supports":{"align":["wide","full"],"html":false,"spacing":{"padding":true,"margin":true},"color":{"text":true,"background":false}},"editorScript":"file:.\/editor.js","style":"file:.\/style.css","viewScript":"file:.\/view.js","render":"file:.\/render.php"},"takt-pro\/club-tv":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"takt-pro\/club-tv","version":"0.2.0","title":"Club TV","category":"widgets","icon":"video-alt3","description":"An editorial video spotlight and a paginated selection of existing club news.","keywords":["club","video","news"],"textdomain":"takt-site-features","attributes":{"categoryId":{"type":"number","default":0},"featuredPostId":{"type":"number","default":0},"featuredLabel":{"type":"string","default":""},"presentation":{"type":"string","enum":["split","cinema"],"default":"split"},"archiveHeading":{"type":"string","default":""},"count":{"type":"number","default":6},"columns":{"type":"number","default":3},"headingLevel":{"type":"number","default":2}},"supports":{"align":["wide","full"],"spacing":{"margin":true,"padding":true},"color":{"background":true,"text":true},"html":false},"editorScript":"file:.\/editor.js","style":"file:.\/style.css","render":"file:.\/render.php"},"takt-pro\/team-navigation":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"takt-pro\/team-navigation","version":"0.1.0","title":"Team navigation","category":"widgets","icon":"networking","description":"A prominent navigation grid for all club teams.","keywords":["football","teams","navigation","club"],"textdomain":"takt-site-features","attributes":{"count":{"type":"number","default":12},"columns":{"type":"number","default":3},"showDescription":{"type":"boolean","default":true},"emptyText":{"type":"string","default":""}},"supports":{"align":["wide","full"],"spacing":{"margin":true,"padding":true},"color":{"background":true,"text":true},"html":false},"editorScript":"file:.\/editor.js","style":"file:.\/style.css","render":"file:.\/render.php"},"takt-pro\/club-navigation":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"takt-pro\/club-navigation","version":"0.1.0","title":"Club navigation","category":"widgets","icon":"menu-alt3","description":"Context navigation connecting a team with its squad, matches, table and partners.","keywords":["football","soccer","club","team","navigation"],"textdomain":"takt-site-features","attributes":{"teamId":{"type":"number","default":0}},"usesContext":["postId","postType"],"supports":{"align":["wide","full"],"spacing":{"margin":true},"html":false},"editorScript":"file:.\/editor.js","style":"file:.\/style.css","render":"file:.\/render.php"},"takt-pro\/album-meta":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"takt-pro\/album-meta","version":"0.1.0","title":"Album details","category":"theme","icon":"format-gallery","description":"Date and photo count of an album, the list of collections, a back link, or the empty-state text.","textdomain":"takt-site-features","usesContext":["postId"],"attributes":{"display":{"type":"string","default":"line","enum":["line","collections","back","empty"]}},"supports":{"html":false,"spacing":{"margin":true}},"editorScript":"file:.\/editor.js","style":"file:.\/style.css","render":"file:.\/render.php"},"takt-pro\/match-filters":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"takt-pro\/match-filters","version":"0.1.0","title":"Match center filters","category":"widgets","icon":"filter","description":"Visitor controls for filtering matches by team, season and competition.","keywords":["football","fixtures","results","filter"],"textdomain":"takt-site-features","supports":{"align":["wide","full"],"spacing":{"margin":true},"html":false},"editorScript":"file:.\/editor.js","style":"file:.\/style.css","render":"file:.\/render.php"},"takt-pro\/release-meta":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"takt-pro\/release-meta","version":"0.1.0","title":"Release details","category":"theme","icon":"album","description":"Year, type and label of a release; buy and listen buttons; type filter; back link.","textdomain":"takt-site-features","usesContext":["postId"],"attributes":{"display":{"type":"string","default":"line","enum":["line","actions","types","back"]}},"supports":{"html":false,"spacing":{"margin":true}},"editorScript":"file:.\/editor.js","style":"file:.\/style.css","render":"file:.\/render.php"},"takt-pro\/match-lineup":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"takt-pro\/match-lineup","version":"0.1.0","title":"Match lineup","category":"widgets","icon":"groups","description":"Starting elevens and substitutes for the current match.","textdomain":"takt-site-features","attributes":{"showSubstitutes":{"type":"boolean","default":true},"showFormation":{"type":"boolean","default":true},"showHeading":{"type":"boolean","default":false},"heading":{"type":"string","default":""},"emptyText":{"type":"string","default":""}},"usesContext":["postId","postType"],"supports":{"align":["wide","full"],"spacing":{"margin":true},"html":false},"editorScript":"file:.\/editor.js","style":"file:.\/style.css","render":"file:.\/render.php"},"takt-pro\/season-archive":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"takt-pro\/season-archive","version":"0.1.0","title":"Season archive","category":"widgets","icon":"calendar-alt","description":"Published season reviews in a magazine layout, with optional team selection and pagination.","keywords":["club","season","archive","history"],"textdomain":"takt-site-features","attributes":{"teamId":{"type":"number","default":0},"count":{"type":"number","default":9},"columns":{"type":"number","default":3},"highlightLatest":{"type":"boolean","default":true},"showImages":{"type":"boolean","default":true},"showSummary":{"type":"boolean","default":true},"showHeading":{"type":"boolean","default":false}},"supports":{"align":["wide","full"],"spacing":{"margin":true,"padding":true},"color":{"background":true,"text":true},"html":false},"editorScript":"file:.\/editor.js","style":"file:.\/style.css","render":"file:.\/render.php"},"takt-pro\/club-profile-details":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"takt-pro\/club-profile-details","version":"0.1.0","title":"Club profile details","category":"widgets","icon":"id-alt","description":"Structured details for the current team, squad member or club partner.","keywords":["football","profile","squad","partner"],"textdomain":"takt-site-features","usesContext":["postId","postType"],"supports":{"align":["wide"],"spacing":{"margin":true},"html":false},"editorScript":"file:.\/editor.js","style":"file:.\/style.css","render":"file:.\/render.php"},"takt-pro\/player":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"takt-pro\/player","version":"0.2.0","title":"Player","category":"widgets","icon":"controls-play","description":"Playlist player for preview clips: cover, controls, progress, volume and a scrollable tracklist.","keywords":["music","audio","audio player","playlist","preview"],"textdomain":"takt-site-features","usesContext":["postId","postType"],"attributes":{"source":{"type":"string","default":"all","enum":["all","release","current"]},"releaseId":{"type":"number","default":0},"limit":{"type":"number","default":30},"showCover":{"type":"boolean","default":true},"coverSize":{"type":"string","default":"medium","enum":["small","medium","large"]},"showTracklist":{"type":"boolean","default":true},"showVolume":{"type":"boolean","default":true},"controlShape":{"type":"string","default":"round","enum":["round","soft","square"]},"scheme":{"type":"string","default":"dark","enum":["dark","light"]},"accent":{"type":"string","default":""},"glow":{"type":"boolean","default":true}},"styles":[{"name":"panel","label":"Panel","isDefault":true},{"name":"bar","label":"Bar"},{"name":"minimal","label":"Minimal"}],"example":{"attributes":{"source":"all","limit":4,"showCover":true,"showTracklist":true}},"supports":{"align":["wide","full"],"anchor":true,"html":false,"spacing":{"margin":true,"padding":true},"color":{"background":true,"text":true,"link":false,"gradients":true},"border":{"color":true,"radius":true,"style":true,"width":true},"shadow":true,"typography":{"fontSize":true,"lineHeight":true,"__experimentalFontFamily":true}},"editorScript":"file:.\/editor.js","style":"file:.\/style.css","viewScript":"file:.\/view.js","render":"file:.\/render.php"},"takt-pro\/sponsor-hero":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"takt-pro\/sponsor-hero","version":"0.1.0","title":"Partner profile hero","category":"widgets","icon":"businessperson","description":"A complete identity header for a club partner or sponsor.","keywords":["football","club","partner","sponsor","logo"],"textdomain":"takt-site-features","attributes":{"showLogo":{"type":"boolean","default":true},"showSummary":{"type":"boolean","default":true},"showDetails":{"type":"boolean","default":true},"showWebsite":{"type":"boolean","default":true}},"usesContext":["postId","postType"],"supports":{"align":["wide","full"],"spacing":{"margin":true,"padding":true},"color":{"background":true,"text":true},"html":false},"editorScript":"file:.\/editor.js","style":"file:.\/style.css","render":"file:.\/render.php"},"takt-pro\/match-card":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"takt-pro\/match-card","version":"0.1.0","title":"Next match \/ latest result","category":"widgets","icon":"awards","description":"A club fixture or result, selected automatically from structured match data.","keywords":["football","fixture","result","score"],"textdomain":"takt-site-features","attributes":{"view":{"type":"string","default":"next"},"presentation":{"type":"string","default":"card"},"teamId":{"type":"number","default":0},"useVisitorFilters":{"type":"boolean","default":false},"showCompetition":{"type":"boolean","default":true},"showVenue":{"type":"boolean","default":true},"linkToMatch":{"type":"boolean","default":false},"headingLevel":{"type":"number","default":1},"emptyText":{"type":"string","default":""}},"usesContext":["postId","postType"],"supports":{"align":["wide","full"],"spacing":{"margin":true},"html":false},"editorScript":"file:.\/editor.js","style":"file:.\/style.css","render":"file:.\/render.php"},"takt-pro\/discography":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"takt-pro\/discography","version":"0.1.0","title":"Discography","category":"widgets","icon":"album","description":"Grid of releases with cover, year and title.","keywords":["music","albums","cds","releases"],"textdomain":"takt-site-features","attributes":{"count":{"type":"number","default":8},"type":{"type":"string","default":""},"columns":{"type":"number","default":4}},"supports":{"align":["wide","full"],"html":false,"spacing":{"margin":true,"padding":true}},"editorScript":"file:.\/editor.js","style":"file:.\/style.css","render":"file:.\/render.php"},"takt-pro\/league-table":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"takt-pro\/league-table","version":"0.1.0","title":"League table","category":"widgets","icon":"list-view","description":"A responsive league table with the club row highlighted.","keywords":["football","standings","ranking"],"textdomain":"takt-site-features","attributes":{"tableId":{"type":"number","default":0},"teamId":{"type":"number","default":0},"seasonId":{"type":"number","default":0},"headingLevel":{"type":"number","default":3},"showForm":{"type":"boolean","default":true},"showFullRecord":{"type":"boolean","default":true},"emptyText":{"type":"string","default":""}},"usesContext":["postId","postType"],"supports":{"align":["wide","full"],"spacing":{"margin":true},"html":false},"editorScript":"file:.\/editor.js","style":"file:.\/style.css","render":"file:.\/render.php"},"takt-pro\/tracklist":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"takt-pro\/tracklist","version":"0.1.0","title":"Tracklist","category":"theme","icon":"playlist-audio","description":"Tracks of the current release with duration and a preview player.","textdomain":"takt-site-features","usesContext":["postId"],"attributes":{"showNumbers":{"type":"boolean","default":true}},"supports":{"html":false,"spacing":{"margin":true}},"editorScript":"file:.\/editor.js","style":"file:.\/style.css","viewScript":"file:.\/view.js","render":"file:.\/render.php"},"takt-pro\/team-hero":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"takt-pro\/team-hero","version":"0.1.0","title":"Team profile hero","category":"widgets","icon":"shield","description":"A complete identity header for the current club team.","keywords":["football","team","profile","hero"],"textdomain":"takt-site-features","attributes":{"showImage":{"type":"boolean","default":true},"showShortName":{"type":"boolean","default":true},"showSummary":{"type":"boolean","default":true},"showVenue":{"type":"boolean","default":true},"showWebsite":{"type":"boolean","default":true}},"usesContext":["postId","postType"],"supports":{"align":["wide","full"],"spacing":{"margin":true,"padding":true},"html":false},"editorScript":"file:.\/editor.js","style":"file:.\/style.css","render":"file:.\/render.php"},"takt-pro\/events-toggle":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"takt-pro\/events-toggle","version":"0.2.0","title":"Events navigation","category":"theme","icon":"calendar","description":"Switch between upcoming and past events, subscribe to the calendar, a back link, or the empty-state text.","textdomain":"takt-site-features","attributes":{"display":{"type":"string","default":"toggle","enum":["toggle","back","empty"]}},"supports":{"html":false,"spacing":{"margin":true}},"editorScript":"file:.\/editor.js","style":"file:.\/style.css","render":"file:.\/render.php"},"takt-pro\/player-ranking":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"takt-pro\/player-ranking","version":"0.1.0","title":"Player ranking","category":"widgets","icon":"awards","description":"A ranked leader board from player season statistics.","keywords":["football","players","ranking","goals","assists"],"textdomain":"takt-site-features","attributes":{"metric":{"type":"string","default":"goals"},"teamId":{"type":"number","default":0},"seasonId":{"type":"number","default":0},"count":{"type":"number","default":5},"showPortrait":{"type":"boolean","default":true},"emptyText":{"type":"string","default":""}},"usesContext":["postId","postType"],"supports":{"align":["wide","full"],"spacing":{"margin":true},"html":false},"editorScript":"file:.\/editor.js","style":"file:.\/style.css","render":"file:.\/render.php"},"takt-pro\/person-match-history":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"takt-pro\/person-match-history","version":"0.1.0","title":"Player match history","category":"widgets","icon":"calendar-alt","description":"Recent appearances and match events for the current club person.","keywords":["football","player","appearances","matches"],"textdomain":"takt-site-features","attributes":{"teamId":{"type":"number","default":0},"seasonId":{"type":"number","default":0},"count":{"type":"number","default":8},"showHeading":{"type":"boolean","default":false},"heading":{"type":"string","default":""},"emptyText":{"type":"string","default":""}},"usesContext":["postId","postType"],"supports":{"align":["wide","full"],"spacing":{"margin":true},"html":false},"editorScript":"file:.\/editor.js","style":"file:.\/style.css","render":"file:.\/render.php"},"takt-pro\/club-organization":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"takt-pro\/club-organization","version":"0.1.0","title":"Club organization","category":"widgets","icon":"networking","description":"Club boards, committees and working groups with their direct subgroups.","keywords":["club","board","committee","organization"],"textdomain":"takt-site-features","attributes":{"parentId":{"type":"number","default":0},"inheritContext":{"type":"boolean","default":true},"columns":{"type":"number","default":3},"showImages":{"type":"boolean","default":false},"showContact":{"type":"boolean","default":false},"showSummary":{"type":"boolean","default":true},"showChildren":{"type":"boolean","default":true},"showHeading":{"type":"boolean","default":false}},"usesContext":["postId","postType"],"supports":{"align":["wide","full"],"spacing":{"margin":true,"padding":true},"color":{"background":true,"text":true},"html":false},"editorScript":"file:.\/editor.js","style":"file:.\/style.css","render":"file:.\/render.php"},"takt-pro\/milestone":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"takt-pro\/milestone","version":"0.1.0","title":"Milestone","category":"text","icon":"marker","description":"One entry in a Milestones timeline.","textdomain":"takt-site-features","parent":["takt-pro\/milestones"],"attributes":{"year":{"type":"string","default":""},"title":{"type":"string","default":""}},"supports":{"html":false,"reusable":false,"anchor":true},"editorScript":"file:.\/editor.js","render":"file:.\/render.php"}},"tagged_versions":["2.0.3"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[6133,416,1486,1238,218],"plugin_category":[37,40,50],"plugin_contributors":[288803],"plugin_business_model":[],"class_list":["post-387675","plugin","type-plugin","status-publish","hentry","plugin_tags-albums","plugin_tags-calendar","plugin_tags-events","plugin_tags-football","plugin_tags-music","plugin_category-arts-and-entertainment","plugin_category-calendar-and-events","plugin_category-media","plugin_contributors-arbergashi","plugin_committers-arbergashi"],"banners":[],"icons":{"svg":"https:\/\/ps.w.org\/takt-site-features\/assets\/icon.svg?rev=3767468","icon":"https:\/\/ps.w.org\/takt-site-features\/assets\/icon.svg?rev=3767468","icon_2x":false,"generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Your website should help people follow your team, find their next event,\ndiscover your work and feel part of your community. Takt Site Features brings\nthat content together in WordPress, with focused editing tools and blocks you\ncan place where they make sense.<\/p>\n\n<p>It is the free site-feature component of Takt. The Takt theme provides the\nvisual design; this plugin provides the structured content and optional tools.\nEvery feature is included. There is no paid Takt edition, license key,\nsubscription, website limit or trial period.<\/p>\n\n<p><strong>A home for the whole club<\/strong><\/p>\n\n<p>Introduce your teams, players and staff. Publish fixtures and results, show\nlineups and match timelines, maintain league tables and player statistics, and\ngive sponsors a clear place on the site. Visitors can explore upcoming matches,\nfind venue information and subscribe to a fixture calendar.<\/p>\n\n<p>Present the people behind the club through boards, offices and committees.\nEach group has its own responsibilities, public contact information and ordered\nmember list. Reuse a person across several groups with a different role in each,\nand organize departments as subgroups. Native WordPress blocks and editable\ntemplates let you choose how the organization is presented.<\/p>\n\n<p>Tell the club's history with editable milestones, honours, setbacks and archive\nsources. Season reviews preserve intentionally saved historical squad details\nseparately from today's profiles and connect to the corresponding results and\nstandings. Existing club records and customer layouts remain in place.<\/p>\n\n<p>Bring league standings in from a spreadsheet with CSV import, validation and a\ncomplete preview. Apply the reviewed rows to the editor, then save the table\nthrough WordPress. Export the saved standings whenever you need them elsewhere.\nOfficial ranking order and point deductions are preserved.<\/p>\n\n<p>The guided Club Setup lets you choose your identity and pages, review the\nplanned changes, then create an editable starting point. Include a Ticket\nCorner, photo albums and, if your club has one, a restaurant page with opening\nhours, food information and contact details. Optional sample content can help\nyou get started and can be removed when your own content is ready.\nRepeated setup preserves your pages, including deliberately emptied content,\nexisting logos and customer edits. Navigation changes require an unambiguous\nmenu choice, and setup retains the ownership of its own sample records.<\/p>\n\n<p><strong>Tickets and a fan shop that fit your club<\/strong><\/p>\n\n<p>Link a match to a product in your own WooCommerce shop, add a direct Ticketcorner\nbooking link, or offer both purchase options together. The Ticket Corner brings\nupcoming fixtures, ticket availability and editable visitor information into\none place. External booking links also work without WooCommerce.<\/p>\n\n<p>For merchandise, the optional shop integration includes jersey personalization.\nWooCommerce manages products, prices, stock, orders and checkout. You choose and\nconfigure the payment, shipping and tax services for your store. The optional\nDigital admission tickets module issues one QR ticket per paid unit and provides\nmobile check-in for authorized staff. Customers can show tickets on a phone,\nprint them or save them as a PDF through their browser. Ticketcorner is an independent\nprovider, and the connection is a booking link rather than an API integration.<\/p>\n\n<p>Open Club &gt; Tickets to manage existing ticket products and match purchase\nchannels, then edit products with the normal WooCommerce tools. Single tickets,\nseason passes and annual passes can coexist. Passes are paid once, have fixed\nstart and end dates, and never renew automatically. Select the included matches\nor events explicitly. With digital admission enabled, each purchased unit has\none QR code for one admission to each included event. Purchased rights are\nretained when a product changes; new fixtures are not added automatically.\nThe digital module is optional and is not enabled by offer management.<\/p>\n\n<p><strong>Tell the story beyond matchday<\/strong><\/p>\n\n<p>Build a Club TV page from existing WordPress posts. Choose an editorial video\nspotlight and a news category, show locally selected poster images, and browse\nthe archive with pagination. Use uploaded videos or YouTube\/Vimeo embeds;\nsupported livestream links use the provider's broadcast service. Optional\nclick-to-load controls let visitors decide when an external player connects.\nNo stream server, automatic broadcast status or video hosting account is supplied.\nClub &gt; Club TV brings existing video posts and Club TV pages into one searchable\nadministration view. Edit them directly or create a video post or Club TV page\nwith native WordPress blocks; no duplicate content library is created.<\/p>\n\n<p>Organize photo albums and present galleries with WordPress image blocks. Share\nevents and venues, publish tour dates and calendar subscriptions, or introduce\nmusic releases with track information and audio players. These modules also\nserve bands, artists and cultural organizations. Enable the modules you need\nand leave the others switched off.<\/p>\n\n<p><strong>Make the presentation your own<\/strong><\/p>\n\n<p>With Takt or a Takt child theme active, use editable page patterns and visual\npresets, add optional icons to native navigation links and submenus, and choose\nthe site's color mode and default title preference. Album and event import\ntools and optional login styling are available for sites that need them.<\/p>\n\n<p>Content modules work with other themes; Takt-specific patterns and presets need\nTakt. Content is stored in your own WordPress database and media library. The\nsite's settings control language and dates, and WooCommerce controls currency\nand number formatting. English is the source language. Bundled translations\ncover Albanian (sq), Italian (it_IT), French (fr_FR), German (de_DE), Dutch\n(nl_NL), Swedish (sv_SE), Portuguese for Portugal (pt_PT) and Spanish for Spain\n(es_ES), Norwegian Bokm\u00e5l (nb_NO), Finnish (fi), Icelandic (is_IS), Turkish\n(tr_TR), Greek (el) and Polish (pl_PL), plus formal German (de_DE_formal) and\nGerman for Switzerland (de_CH).\nThe same languages cover the block editor controls. Choose the public language\nunder Settings &gt; General &gt; Site Language and an editor's administration language\nunder Users &gt; Profile. Existing page content and menu labels remain as authored.<\/p>\n\n<p>Full dates and times use the website's Date Format, Time Format and Timezone\nsettings, including US month\/day\/year and 12-hour clocks or European formats\nand 24-hour clocks. WordPress provides localized month and weekday names.\nCompact event ranges use a translated format; stored dates, calendar feeds,\nHTML datetime attributes and structured data retain their technical formats.\nAn unconfirmed match kickoff appears in calendar subscriptions as a tentative\ndate on the site's local calendar, without blocking the entire day as busy.\nConfirming the time updates the same event; cancellations remain cancelled.<\/p>\n\n<p><strong>Free software, with practical defaults<\/strong><\/p>\n\n<p>Takt does not require a developer account or contact a license service. Existing\nTakt Pro content and module settings are retained when updating. Structured\nclub data is maintained by your editors; an official league data feed is not\nincluded. Sample clubs, photographs and match details demonstrate the layouts\nand should be reviewed and replaced for your own website.<\/p>\n\n<h3>Resources<\/h3>\n\n<p>Plugin code and original design: Arber Gashi, GPLv2 or later.\nBarlow and Barlow Condensed: The Barlow Project Authors, SIL Open Font License 1.1.\nFull font license and sources: assets\/fonts\/LICENSE.txt and assets\/fonts\/OFL.txt.\nOriginal demo images and documented CC0 image: assets\/demo\/CREDITS.txt.\nQR generation: Project Nayuki QR Code generator 1.8.0, MIT license retained\nin assets\/vendor\/qrcodegen\/qrcodegen.js. Source, version and checksum:\nassets\/vendor\/qrcodegen\/README.txt.\nLocal camera decoding: jsQR 1.4.0, Cosmo Wolfe and contributors, Apache-2.0.\nLicense, pinned upstream source and checksum: assets\/vendor\/jsqr\/.<\/p>\n\n<h3>Source code<\/h3>\n\n<p>The complete, maintained PHP, JavaScript and CSS source is included in this\nplugin. Edit the files in includes\/, blocks\/, patterns\/ and assets\/ directly.\nBlock editor sources are blocks\/<em>\/editor.js; their dependency declarations are\nthe adjacent editor.asset.php files. Admin scripts and styles are in assets\/js\/\nand assets\/css\/. These files are shipped and executed as readable source:\nthere is no Takt JavaScript or CSS compilation, bundling or minification step.\nWordPress supplies the wp.<\/em> JavaScript libraries declared as dependencies.\nThe two third-party QR libraries are unmodified upstream distributions. Their\nREADME files link the exact source releases; they run locally without a CDN or\nimage-upload service and load only on the ticket sheet or admission desk.<\/p>\n\n<p>The public plugin slug and translation domain are takt-site-features. The\nbootstrap filename takt-pro.php, PHP namespace Takt\\Pro, saved takt-pro\/* block\nnames and takt_pro_* option keys are retained for compatibility with existing\nsites. They do not identify a paid edition. Existing content and settings must\nnot be renamed or deleted when updating the plugin.<\/p>\n\n<!--section=installation-->\n<p>Takt Site Features 2.0 requires WordPress 7.1 or later and PHP 8.1 or later.\nUpdate WordPress before installing this version.<\/p>\n\n<ol>\n<li>Install and activate the Takt theme if you want its integrated visual design.<\/li>\n<li>Install and activate this free Takt companion plugin.<\/li>\n<li>Open Appearance &gt; Takt and enable the modules needed by your website.<\/li>\n<li>For a club, open Appearance &gt; Club Setup. Enter the club details, choose the\npages and optional sample content, and review the changes before creating them.\nExisting customer edits are retained on repeated runs.<\/li>\n<li>Replace sample details, add your own teams or other content, and edit the\nnavigation and page layouts in the WordPress editor.<\/li>\n<li>Install and configure WooCommerce only if you want your own shop. Test your\ncheckout, payment methods and ticket fulfillment before accepting orders.<\/li>\n<\/ol>\n\n<p>For an existing manual Takt Pro installation, follow the folder-transition\nprocedure below before installing this package.<\/p>\n\n<h4>Moving an existing manual installation<\/h4>\n\n<p>Existing manual installations using the old takt-pro folder need a one-time\nfolder transition before installing this WordPress.org package. It is not an\nin-place automatic update across the two directory names:<\/p>\n\n<ol>\n<li>Back up the database and plugin files, then deactivate the old Takt plugin.\nDo not click Delete: uninstalling removes the shared module settings and\npreset, and may remove content if its optional purge flag was enabled.<\/li>\n<li>Using the hosting file manager or SFTP, rename\nwp-content\/plugins\/takt-pro to wp-content\/plugins\/takt-site-features.\nIf that destination already exists, stop and resolve the duplicate before\ncontinuing. Do not activate both copies.<\/li>\n<li>In Plugins &gt; Add New &gt; Upload Plugin, select this ZIP and choose to replace\nthe existing plugin. Activate Takt Site Features after replacement.<\/li>\n<li>Check the module selections, saved content and pages. Once the plugin is\npublished, subsequent updates use the native WordPress.org update mechanism.<\/li>\n<\/ol>\n\n<p>Renaming and replacing the single folder does not run uninstall.php. Existing\ncontent, block identifiers and option keys stay the same; no second product or\nparallel installation is required. Ask your hosting administrator to perform\nthe folder step if you do not have file-manager or SFTP access.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20everything%20free%3F\"><h3>Is everything free?<\/h3><\/dt>\n<dd><p>Yes. Every feature formerly offered as Takt Pro is free. No license key,\nsubscription or purchase is required. There is no site limit or expiry.<\/p><\/dd>\n<dt id=\"is%20this%20a%20second%20product%20or%20a%20paid%20upgrade%3F\"><h3>Is this a second product or a paid upgrade?<\/h3><\/dt>\n<dd><p>No. It is the free site-feature component of Takt. WordPress.org separates theme\ndesign from custom content types and custom blocks, so they are installed as a\ncompanion plugin. Historical technical names are retained for compatibility.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20my%20existing%20takt%20pro%20website%3F\"><h3>What happens to my existing Takt Pro website?<\/h3><\/dt>\n<dd><p>Existing content, media, metadata, module switches and presets are retained.\nThe former license check and private updater are retired. Historical entitlement\nrecords remain stored for recovery but are no longer used or transmitted.\nPlugin updates use WordPress's native update mechanism.<\/p><\/dd>\n<dt id=\"where%20do%20i%20change%20takt%27s%20color%20mode%20or%20design%20version%3F\"><h3>Where do I change Takt's color mode or design version?<\/h3><\/dt>\n<dd><p>With this plugin and Takt or a Takt child theme active, open Appearance &gt;\nCustomize &gt; Color scheme or Takt design and compatibility. These optional\ncontrols retain the existing theme-mod IDs and saved values. Deactivating the\nplugin removes the controls; the theme keeps using the saved choices and\nremains fully functional. Native Site Editor styles and per-page template\nchoices are available without the plugin.<\/p><\/dd>\n<dt id=\"does%20disabling%20or%20deleting%20the%20plugin%20remove%20my%20content%3F\"><h3>Does disabling or deleting the plugin remove my content?<\/h3><\/dt>\n<dd><p>No. Disabling a module or the plugin can hide its editing tools and custom\nrendering, but the stored content remains. Uninstall removes settings and keeps\ncontent unless the site owner explicitly enables TAKT_PRO_REMOVE_DATA first.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20send%20data%20to%20the%20developer%3F\"><h3>Does the plugin send data to the developer?<\/h3><\/dt>\n<dd><p>No. Takt does not require an account, contact a license service or send telemetry.\nWordPress performs its ordinary update checks. Optional third-party embeds and\nWooCommerce follow their own privacy settings and policies. Profile information\nis stored in your site's database and appears when you choose to publish it.<\/p><\/dd>\n<dt id=\"do%20i%20need%20woocommerce%3F\"><h3>Do I need WooCommerce?<\/h3><\/dt>\n<dd><p>Only for shop features. Events, music, albums, clubs and the other content\nfeatures work without WooCommerce. Digital paid admission tickets require it;\nfree event registrations and waiting lists do not.<\/p><\/dd>\n<dt id=\"can%20a%20club%20sell%20tickets%20in%20its%20own%20shop%20and%20use%20ticketcorner%3F\"><h3>Can a club sell tickets in its own shop and use Ticketcorner?<\/h3><\/dt>\n<dd><p>Yes. For a match, select a public WooCommerce product by name or SKU and add the\ndirect HTTPS Ticketcorner booking URL if needed. Both purchase actions can\nappear together. The existing ticket URL also supports another provider.\nWooCommerce handles the club shop's prices, stock, variations and checkout.\nThe Ticket Corner page lists upcoming fixtures and availability, with editable\nvisitor FAQs. External booking links work without WooCommerce. Enable Digital\nadmission tickets separately to issue QR tickets from paid WooCommerce orders.\nAssign the restricted Takt admission staff role to gate helpers and use Ticket\ncheck-in to verify a code before explicitly confirming admission. Check-in needs\nan internet connection; camera images stay on the operator's device.<\/p><\/dd>\n<dt id=\"can%20i%20sell%20season%20or%20annual%20passes%20alongside%20single%20tickets%3F\"><h3>Can I sell season or annual passes alongside single tickets?<\/h3><\/dt>\n<dd><p>Yes. Use Club &gt; Tickets to open a WooCommerce ticket offer. Select Season pass\nor Annual pass, set its fixed validity dates and choose up to 200 included public\nmatches or events. WooCommerce handles the one-time payment; Takt does not create\na subscription or automatic renewal. The final validity date includes the whole\nday in the website's time zone recorded at purchase.<\/p>\n\n<p>When Digital admission tickets is enabled, each purchased unit receives one code\nthat can be admitted once at each included event. Changing the product does not\nchange existing purchases. Current event status and dates are checked again at\nadmission; a cancelled event or a fixture moved outside the purchased period\ndoes not silently extend the pass. Existing single-ticket codes remain valid\nunder their original rules. Refunds and order changes revoke affected units.<\/p><\/dd>\n<dt id=\"can%20visitors%20register%20for%20an%20event%20or%20join%20a%20waiting%20list%3F\"><h3>Can visitors register for an event or join a waiting list?<\/h3><\/dt>\n<dd><p>Yes. Enable registration for an individual event, choose its capacity and insert\nthe Event registration block. Each person confirms their email before a place\nis allocated. A voluntary waiting list offers freed places for up to 24 hours.\nParticipants can cancel through their private email link. Organizers manage\nprivate participant lists, exports and notices about event changes in WordPress.\nRegistration capacity is separate from WooCommerce ticket stock.<\/p><\/dd>\n<dt id=\"can%20events%20repeat%20while%20individual%20dates%20remain%20editable%3F\"><h3>Can events repeat while individual dates remain editable?<\/h3><\/dt>\n<dd><p>Yes. Use Event series on a saved event to preview weekly or monthly occurrences,\nup to 104 within two years. Apply only after reviewing the proposed changes.\nIndividual edits, past dates and events with participants or tickets are\nprotected. Shortening a series proposes cancellations; it does not delete pages.<\/p><\/dd>\n<dt id=\"can%20i%20import%20and%20export%20league%20tables%3F\"><h3>Can I import and export league tables?<\/h3><\/dt>\n<dd><p>Yes. In Teams &gt; League tables, open a table and use CSV import and export in the\nStandings panel. Import UTF-8 CSV or TSV, optionally with a BOM, using comma,\nsemicolon or tab separators. Files may contain up to 256 KB and 100 club rows.\nUse all these headers in any order:<\/p>\n\n<pre><code>name,played,won,drawn,lost,goals_for,goals_against,points,form,is_club\n<\/code><\/pre>\n\n<p>Use whole numbers, including zero. Match counts range from 0 to 999, goals from\n0 to 9999 and points from -9999 to 9999. Set is_club to 1 for your club or 0 for\nanother club. Form may be empty or use W, D and L; existing legacy codes are\npreserved. File order determines the ranking, and official points are retained.<\/p>\n\n<p>Preview does not save anything. After reviewing all rows and fixing any errors,\nchoose Use these rows, then Update\/Save in WordPress. Discarding a preview keeps\nthe editor unchanged. Download saved table exports only the last saved rows.\nFormula-like names are escaped with an apostrophe for spreadsheet safety;\nliteral leading apostrophes are doubled, and import restores the original names.\nBoth operations require permission to edit that table and a table-bound nonce.\nUploaded files are not added to the media library.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.0.3<\/h4>\n\n<ul>\n<li>Prefix plugin-owned renderer\/pattern variables without changing saved blocks or rendered markup.<\/li>\n<li>Use native SQL identifier placeholders and explicit registered series hooks; cache module inventory with native post-change invalidation and uncached failure recovery.<\/li>\n<li>Validate submitted field shapes and values at form boundaries before using or saving them; reject malformed and incomplete submissions while preserving existing values.<\/li>\n<li>Require an event-bound session nonce and event editing permission before opening private participant lists.<\/li>\n<li>Preserve public calendar subscriptions, filters and pagination without expiring links; retain independent visibility checks for protected content.<\/li>\n<li>Retain existing content, settings, participant records, orders and ticket rights without a database migration or reimport.<\/li>\n<li>Document narrowly scoped checker exceptions for required transactional\/private-table operations and native metadata queries; preserve freshness, permissions and data validation.<\/li>\n<\/ul>\n\n<h4>2.0.2<\/h4>\n\n<ul>\n<li>Make request authorization and field validation explicit at each form boundary, including equivalent cases from the manual review.<\/li>\n<li>Keep WordPress block attributes and rendered inner blocks in their native output contexts; preserve plain-text ticket links and calendar exports.<\/li>\n<li>Handle registration and ticket storage failures explicitly, preserve signing keys and erasure retries, and coordinate simultaneous series changes, registrations and ticket issuance.<\/li>\n<li>Prevent gallery shortcode prefix collisions and stale or non-public music playlists, including sites with persistent object caches.<\/li>\n<li>Respect protected event, standings, release-block and REST metadata output while retaining authorized editor previews. Preserve import passwords and existing target visibility, and stop required imports or media suggestions on storage errors.<\/li>\n<li>Stop explicitly requested data removal on detected inventory, deletion or private-table errors before removing private storage options.<\/li>\n<li>Retain existing content, settings, registrations, orders, ticket rights and all 16 locales without a setup rerun or reimport.<\/li>\n<\/ul>\n\n<h4>2.0.1<\/h4>\n\n<ul>\n<li>Harden request methods, permissions, nonce handling and typed form validation; reject malformed or incomplete submissions before changing saved content and settings.<\/li>\n<li>Enqueue registration-page styles and apply output handling for HTML, player embeds, native blocks, plain-text ticket links and calendar responses in their correct contexts.<\/li>\n<li>Exclude private and unavailable person profiles from public lineups and timelines while retaining saved assignments.<\/li>\n<li>Preserve existing customer content, module choices, media, registration records and ticket access; retain all 16 bundled locales.<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<p>Local release candidate prepared for review; this preparation does not publish a WordPress.org update.<\/p>\n\n<ul>\n<li>Require WordPress 7.1 or later; the PHP minimum remains 8.1. Update WordPress before installing Takt Site Features 2.0.<\/li>\n<li>Add club history layouts, season reviews with deliberately saved historical squads, and club organization with reusable people, responsibilities and nested groups.<\/li>\n<li>Add Club TV with an editorial video spotlight, a paginated category archive and a dedicated administration view for existing video posts and Club TV pages.<\/li>\n<li>Respect each supported embed's click-to-load choice; ordinary ready players need one Play action and do not autoplay. Retain existing explicit privacy choices.<\/li>\n<li>Add finite event series with change previews and exception protection, plus optional verified registrations, capacity management and waiting lists.<\/li>\n<li>Add Club &gt; Tickets for existing WooCommerce ticket offers and match purchase channels without reclassifying unrelated products.<\/li>\n<li>Retain single tickets and add season and annual passes paid once, with fixed validity dates, explicit included events, immutable purchase snapshots and one admission per event and purchased unit.<\/li>\n<li>Add optional digital QR issuance and restricted check-in with atomic admission, refund handling and customer ticket access; keep digital issuance off until explicitly enabled.<\/li>\n<li>Preserve customer pages, deliberately emptied content, existing logos and sample ownership on repeated Club Setup; extend only an explicitly identified navigation menu.<\/li>\n<li>Preserve saved content and ticket access across module changes, with explicit participant\/admission retention and controlled multisite data removal.<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Add independent desktop, tablet and mobile minimum heights to the hero photo slideshow while preserving existing saved heights.<\/li>\n<li>Use the same mobile breakpoint for responsive height and the photograph's focal point.<\/li>\n<li>Preserve keyboard and touch interactions in embedded videos, audio players, forms and other interactive content inside a slideshow.<\/li>\n<li>Translate the new editor controls in all 16 bundled locales.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Secure JSON-LD and block-comment output, enqueue admin assets only on their editing screens and include readable editor source.<\/li>\n<li>Align the public plugin and translation identity with Takt Site Features while preserving existing content and saved block names.<\/li>\n<li>Preserve music track and link lists containing quotes, backslashes and Unicode when saving.<\/li>\n<li>Keep theme-specific guidance on the plugin settings page.<\/li>\n<li>Add validated CSV league-table import with preview and saved-table export; preserve official order, negative points and spreadsheet-safe club names.<\/li>\n<li>Export unconfirmed match kickoffs as tentative date-only calendar events without a whole-day busy period; keep stable event IDs and cancelled or postponed states.<\/li>\n<li>Add logo-wall, editorial-card and featured-partner layouts with team, season and partner-level filters, optional descriptions and profile or website links.<\/li>\n<li>Add 14 languages through 16 WordPress locales, including Norwegian Bokm\u00e5l, Finnish, Icelandic, Turkish, Greek and Polish; cover block editor controls and pattern metadata.<\/li>\n<li>Translate league form badges while preserving stored codes and legacy data.<\/li>\n<li>Parse localized album month names unambiguously and retain valid calendar days.<\/li>\n<li>Distinguish preferred-foot labels from layout alignment and audio players from football players.<\/li>\n<li>Respect website date\/time formats in events, matches, the event administration list and new album titles.<\/li>\n<li>Correct event administration and album date timezone conversions while preserving stored data and machine-readable dates.<\/li>\n<li>Replace the remaining fixed club-contact city with an editable, translatable placeholder.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Make the complete feature set part of the free Takt product.<\/li>\n<li>Remove license controls, Marketplace entitlements and private update delivery.<\/li>\n<li>Preserve customer content and retire cached private update jobs safely.<\/li>\n<li>Provide optional Takt presentation controls while retaining existing theme-mod values.<\/li>\n<li>Keep the full club, music, album, event, importer and optional fan-shop workflows.<\/li>\n<li>Protect private player profiles from public jersey personalization requests.<\/li>\n<li>Add editable Ticket Corner pages and simultaneous club-shop\/Ticketcorner ticket channels.<\/li>\n<li>Refine match cards, visitor information, ticket availability and archive filters.<\/li>\n<\/ul>","raw_excerpt":"Bring your club, events, music and photo albums together in WordPress. Free Takt site features, with optional WooCommerce shop integration.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/tr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/387675","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/tr.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/tr.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=387675"}],"author":[{"embeddable":true,"href":"https:\/\/tr.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/arbergashi"}],"wp:attachment":[{"href":"https:\/\/tr.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=387675"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/tr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=387675"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/tr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=387675"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/tr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=387675"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/tr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=387675"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/tr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=387675"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}