{"id":243331,"date":"2025-07-28T18:06:04","date_gmt":"2025-07-28T18:06:04","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/puntr\/"},"modified":"2025-07-28T18:06:46","modified_gmt":"2025-07-28T18:06:46","slug":"puntr","status":"publish","type":"plugin","link":"https:\/\/tah.wordpress.org\/plugins\/puntr\/","author":23333255,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.2.3","stable_tag":"1.2.3","tested":"6.8.5","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"Puntr","header_author":"Puntr","header_description":"A WordPress plugin for managing provider profiles and services","assets_banners_color":"101827","last_updated":"2025-07-28 18:06:46","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/puntr.me\/wordpress","header_author_uri":"https:\/\/puntr.me","rating":0,"author_block_rating":0,"active_installs":0,"downloads":256,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.2.3":{"tag":"1.2.3","author":"puntr","date":"2025-07-28 18:06:46"}},"upgrade_notice":{"1.2.0":"<p>This version simplifies the plugin by removing venue functionality and includes various bug fixes and improvements. Database cleanup may be required for venue data.<\/p>","1.1.0":"<p>This version includes important security improvements and new template customization features. Please test in a staging environment before updating production sites.<\/p>"},"ratings":[],"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3335523,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":3335523,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.2.3"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3335523,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3335523,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3335523,"resolution":"3","location":"assets","locale":""},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3335523,"resolution":"4","location":"assets","locale":""},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3335523,"resolution":"5","location":"assets","locale":""},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3335523,"resolution":"6","location":"assets","locale":""}},"screenshots":{"1":"Roster admin interface with provider scheduling","2":"Settings page with quick reference for shortcodes","3":"Provider list page where you can manage your providers","4":"Roster embed displayed on any page through use of a shortcode","5":"Alternative roster embed displayed on any page through the use of a shortcode","6":"Provider edit page show many of the attributes you can modify"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[269,416,36380,11419,268],"plugin_category":[40],"plugin_contributors":[245487],"plugin_business_model":[],"class_list":["post-243331","plugin","type-plugin","status-publish","hentry","plugin_tags-booking","plugin_tags-calendar","plugin_tags-providers","plugin_tags-roster","plugin_tags-scheduling","plugin_category-calendar-and-events","plugin_contributors-puntr","plugin_committers-puntr"],"banners":{"banner":"https:\/\/ps.w.org\/puntr\/assets\/banner-772x250.png?rev=3335523","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/puntr\/assets\/icon-256x256.png?rev=3335523","icon_2x":"https:\/\/ps.w.org\/puntr\/assets\/icon-256x256.png?rev=3335523","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/puntr\/assets\/screenshot-1.png?rev=3335523","caption":"Roster admin interface with provider scheduling"},{"src":"https:\/\/ps.w.org\/puntr\/assets\/screenshot-2.png?rev=3335523","caption":"Settings page with quick reference for shortcodes"},{"src":"https:\/\/ps.w.org\/puntr\/assets\/screenshot-3.png?rev=3335523","caption":"Provider list page where you can manage your providers"},{"src":"https:\/\/ps.w.org\/puntr\/assets\/screenshot-4.png?rev=3335523","caption":"Roster embed displayed on any page through use of a shortcode"},{"src":"https:\/\/ps.w.org\/puntr\/assets\/screenshot-5.png?rev=3335523","caption":"Alternative roster embed displayed on any page through the use of a shortcode"},{"src":"https:\/\/ps.w.org\/puntr\/assets\/screenshot-6.png?rev=3335523","caption":"Provider edit page show many of the attributes you can modify"}],"raw_content":"<!--section=description-->\n<p>Puntr is a comprehensive WordPress plugin designed for managing service providers with advanced scheduling capabilities. Perfect for agencies, clinics, or any business that needs to manage provider schedules and profiles.<\/p>\n\n<h4>Key Features<\/h4>\n\n<ul>\n<li><strong>Provider Management<\/strong> - Create and manage detailed provider profiles with photos, physical details, rates, and services<\/li>\n<li><strong>Product-style Gallery<\/strong> - Professional image gallery with main photo and thumbnail navigation<\/li>\n<li><strong>Roster Scheduling<\/strong> - Visual calendar interface for managing provider schedules using DayPilot<\/li>\n<li><strong>Daily Roster Display<\/strong> - Customizable shortcode for displaying daily rosters on your website<\/li>\n<li><strong>Provider Archive<\/strong> - Enhanced archive pages showing provider attributes and quick info<\/li>\n<li><strong>Professional Admin Interface<\/strong> - Branded admin pages with consistent styling<\/li>\n<li><strong>Flexible Taxonomies<\/strong> - Organize providers by service categories and body types<\/li>\n<li><strong>REST API<\/strong> - Full API access to providers and roster data<\/li>\n<li><strong>Extensible<\/strong> - Comprehensive hooks and filters for developers<\/li>\n<li><strong>Security<\/strong> - Built with WordPress security best practices<\/li>\n<\/ul>\n\n<h4>Managing Providers<\/h4>\n\n<ol>\n<li>Go to <strong>Puntr \u2192 Providers<\/strong> to view all providers<\/li>\n<li>Click <strong>Add New Provider<\/strong> to create a new profile<\/li>\n<li>Fill in provider details including:\n\n<ul>\n<li>Basic information (name, age, gender, ethnicity)<\/li>\n<li>Physical details (height, measurements, hair\/eye color)<\/li>\n<li>Pricing (30\/45\/60\/90\/120\/180 minute rates)<\/li>\n<li>Contact information<\/li>\n<li>Featured image (main photo)<\/li>\n<li>Gallery images (additional photos)<\/li>\n<\/ul><\/li>\n<\/ol>\n\n<h4>Managing Rosters<\/h4>\n\n<ol>\n<li>Go to <strong>Puntr \u2192 Roster<\/strong> to view the calendar<\/li>\n<li><strong>Click and drag<\/strong> on the calendar to create a roster entry<\/li>\n<li>Select the provider and time slot<\/li>\n<li>Roster entries can be:\n\n<ul>\n<li>Moved by dragging<\/li>\n<li>Resized by dragging edges<\/li>\n<li>Deleted via right-click menu<\/li>\n<\/ul><\/li>\n<li>Use zoom controls (+\/-) to adjust the calendar view<\/li>\n<li>Navigate weeks using arrow buttons or date picker<\/li>\n<\/ol>\n\n<h4>Displaying Rosters on Your Website<\/h4>\n\n<p><strong>Basic Daily Roster:<\/strong>\n    [puntr_daily_roster]<\/p>\n\n<p><strong>Advanced Options:<\/strong>\n    [puntr_daily_roster date=\"2025-07-20\" show_photo=\"true\" photo_size=\"60\" columns=\"photo,name,age,location,start,end\"]<\/p>\n\n<p><strong>Full Calendar:<\/strong>\n    [puntr_roster_calendar height=\"700\"]<\/p>\n\n<h4>Available Shortcode Parameters<\/h4>\n\n<ul>\n<li><code>date<\/code> - Specific date to display (YYYY-MM-DD format)<\/li>\n<li><code>show_photo<\/code> - Display provider photos (true\/false)<\/li>\n<li><code>photo_size<\/code> - Size of photos in pixels (default: 50)<\/li>\n<li><code>show_age<\/code> - Include age column (true\/false)<\/li>\n<li><code>show_height<\/code> - Include height column (true\/false)<\/li>\n<li><code>show_dress_size<\/code> - Include dress size column (true\/false)<\/li>\n<li><code>show_bust<\/code> - Include bust size column (true\/false)<\/li>\n<li><code>show_location<\/code> - Include location column (true\/false)<\/li>\n<li><code>show_services<\/code> - Include services column (true\/false)<\/li>\n<li><code>show_rates<\/code> - Include rates column (true\/false)<\/li>\n<li><code>columns<\/code> - Comma-separated list of columns to display<\/li>\n<\/ul>\n\n<h4>Available Columns<\/h4>\n\n<p>photo, ethnicity, name, age, height, dress_size, bust, location, services, rates, start, end<\/p>\n\n<h4>Template System<\/h4>\n\n<p>Override templates by copying them from <code>plugins\/puntr\/templates\/<\/code> to <code>yourtheme\/puntr\/<\/code>:<\/p>\n\n<ul>\n<li><code>archive-provider.php<\/code> - Provider archive\/listing page<\/li>\n<li><code>single-provider.php<\/code> - Single provider page<\/li>\n<li><code>content-provider.php<\/code> - Provider item in lists<\/li>\n<\/ul>\n\n<h4>Developer Hooks<\/h4>\n\n<p><strong>Provider Hooks:<\/strong>\n* <code>puntr_before_save_provider<\/code>\n* <code>puntr_after_save_provider<\/code>\n* <code>puntr_provider_meta_fields<\/code>\n* <code>puntr_provider_meta_boxes<\/code>\n* <code>puntr_provider_display_data<\/code>\n* <code>puntr_provider_archive_info<\/code><\/p>\n\n<p><strong>Roster Hooks:<\/strong>\n* <code>puntr_before_create_roster_event<\/code>\n* <code>puntr_after_create_roster_event<\/code>\n* <code>puntr_roster_event_data<\/code>\n* <code>puntr_roster_table_columns<\/code><\/p>\n\n<p><strong>Calendar Hooks:<\/strong>\n* <code>puntr_calendar_event_colors<\/code>\n* <code>puntr_calendar_event_text<\/code>\n* <code>puntr_calendar_default_view<\/code>\n* <code>puntr_calendar_time_slots<\/code><\/p>\n\n<p><strong>Template Hooks:<\/strong>\n* <code>puntr_skip_archive_provider_details<\/code>\n* <code>puntr_archive_provider_data<\/code>\n* <code>puntr_gallery_images<\/code>\n* <code>puntr_gallery_position<\/code>\n* And many more...<\/p>\n\n<h4>REST API<\/h4>\n\n<p>Puntr includes a comprehensive REST API. All endpoints are available under <code>\/wp-json\/puntr\/v1\/<\/code><\/p>\n\n<p><strong>Available Endpoints:<\/strong><\/p>\n\n<ul>\n<li><p><strong>GET<\/strong> <code>\/wp-json\/puntr\/v1\/providers<\/code> - Get list of providers<\/p>\n\n<ul>\n<li>Parameters: <code>per_page<\/code>, <code>page<\/code>, <code>service<\/code>, <code>active_only<\/code><\/li>\n<\/ul><\/li>\n<li><p><strong>GET<\/strong> <code>\/wp-json\/puntr\/v1\/providers\/{id}<\/code> - Get single provider details<\/p>\n\n<ul>\n<li>Returns full provider information including all meta fields<\/li>\n<\/ul><\/li>\n<li><p><strong>GET<\/strong> <code>\/wp-json\/puntr\/v1\/roster<\/code> - Get roster events by date range<\/p>\n\n<ul>\n<li>Required: <code>start_date<\/code>, <code>end_date<\/code> (YYYY-MM-DD format)<\/li>\n<li>Optional: <code>provider_id<\/code><\/li>\n<\/ul><\/li>\n<li><p><strong>GET<\/strong> <code>\/wp-json\/puntr\/v1\/daily-roster<\/code> - Get daily roster<\/p>\n\n<ul>\n<li>Optional: <code>date<\/code> (YYYY-MM-DD format, defaults to today)<\/li>\n<li>Returns roster entries including overnight shifts<\/li>\n<\/ul><\/li>\n<\/ul>\n\n<p><strong>Example Usage:<\/strong>\n    `\n\/\/ Get today's roster\nGET \/wp-json\/puntr\/v1\/daily-roster<\/p>\n\n<p>\/\/ Get specific date roster\nGET \/wp-json\/puntr\/v1\/daily-roster?date=2025-01-15<\/p>\n\n<p>\/\/ Get providers with pagination\nGET \/wp-json\/puntr\/v1\/providers?per_page=20&amp;page=2<\/p>\n\n<p>\/\/ Get roster for a week\nGET \/wp-json\/puntr\/v1\/roster?start_date=2025-01-01&amp;end_date=2025-01-07\n    `<\/p>\n\n<h3>Additional Information<\/h3>\n\n<p>For support and feature requests, email wordpress@puntr.me<\/p>\n\n<p>For detailed documentation including all hooks, filters, and code examples, please refer to the plugin's README.md file or visit https:\/\/puntr.me\/wordpress<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>puntr<\/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 the Puntr menu in your WordPress admin<\/li>\n<li>Configure settings under Puntr \u2192 Settings<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id='how%20do%20i%20customize%20the%20provider%20display%3F'><h3>How do I customize the provider display?<\/h3><\/dt>\n<dd><p>Create a folder named <code>puntr<\/code> in your theme directory and copy any template from <code>plugins\/puntr\/templates\/<\/code> to customize.<\/p><\/dd>\n<dt id='can%20i%20use%20this%20with%20my%20existing%20theme%3F'><h3>Can I use this with my existing theme?<\/h3><\/dt>\n<dd><p>Yes! Puntr inherits your theme's styles and provides minimal styling to ensure compatibility.<\/p><\/dd>\n<dt id='is%20the%20calendar%20mobile-friendly%3F'><h3>Is the calendar mobile-friendly?<\/h3><\/dt>\n<dd><p>Yes, the DayPilot calendar adapts to different screen sizes for optimal viewing on all devices.<\/p><\/dd>\n<dt id='how%20do%20i%20display%20only%20specific%20columns%20in%20the%20roster%3F'><h3>How do I display only specific columns in the roster?<\/h3><\/dt>\n<dd><p>Use the <code>columns<\/code> parameter in the shortcode:\n    [puntr_daily_roster columns=\"photo,name,start,end\"]<\/p><\/dd>\n<dt id='can%20i%20filter%20providers%20by%20service%3F'><h3>Can I filter providers by service?<\/h3><\/dt>\n<dd><p>Yes, providers can be organized using service taxonomies and filtered accordingly.<\/p><\/dd>\n<dt id='is%20there%20an%20api%20for%20external%20integrations%3F'><h3>Is there an API for external integrations?<\/h3><\/dt>\n<dd><p>Yes, Puntr includes a full REST API with endpoints for providers and roster data.<\/p><\/dd>\n<dt id='how%20do%20i%20add%20custom%20fields%20to%20providers%3F'><h3>How do I add custom fields to providers?<\/h3><\/dt>\n<dd><p>Use the <code>puntr_provider_meta_fields<\/code> filter to add custom fields.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Removed venue functionality to simplify the plugin<\/li>\n<li>Fixed WordPress coding standards warnings<\/li>\n<li>Improved admin notices positioning<\/li>\n<li>Added Services taxonomy to admin menu<\/li>\n<li>Updated REST API documentation<\/li>\n<li>Fixed API endpoint issues with missing providers<\/li>\n<li>Enhanced admin UI with proper header positioning<\/li>\n<li>Removed unused API settings<\/li>\n<li>Improved error handling throughout<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Added template system with override capability<\/li>\n<li>Added hooks and filters for extensibility<\/li>\n<li>Added product-style image gallery for providers<\/li>\n<li>Improved roster display - removed status column for cleaner presentation<\/li>\n<li>Fixed duplicate roster display issue on provider pages<\/li>\n<li>Added template actions for gallery and roster placement<\/li>\n<li>Enhanced provider archive with flexible content positioning<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>Provider management system<\/li>\n<li>Roster scheduling with DayPilot<\/li>\n<li>Daily roster shortcode<\/li>\n<li>Admin interface<\/li>\n<\/ul>","raw_excerpt":"A professional provider management system for WordPress with roster scheduling, provider profiles, and calendar functionality.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/243331","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=243331"}],"author":[{"embeddable":true,"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/puntr"}],"wp:attachment":[{"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=243331"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=243331"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=243331"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=243331"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=243331"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=243331"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}