{"id":261421,"date":"2025-12-20T06:46:58","date_gmt":"2025-12-20T06:46:58","guid":{"rendered":"https:\/\/es.wordpress.org\/plugins\/tasks-manager-pn\/"},"modified":"2026-08-26T20:05:59","modified_gmt":"2026-08-26T20:05:59","slug":"pn-tasks-manager","status":"publish","type":"plugin","link":"https:\/\/fr-ca.wordpress.org\/plugins\/pn-tasks-manager\/","author":20518192,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.80","stable_tag":"1.0.80","tested":"7.0.4","requires":"3.0","requires_php":"7.2","requires_plugins":null,"header_name":"PN Tasks Manager","header_author":"Padres en la Nube","header_description":"Manage your tasks and time tracking with this plugin. Create tasks, assign them to users, and track the time spent on each task.","assets_banners_color":"eaebe6","last_updated":"2026-08-26 20:05:59","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/padresenlanube.com\/","header_plugin_uri":"https:\/\/padresenlanube.com\/plugins\/pn-tasks-manager\/","header_author_uri":"https:\/\/padresenlanube.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":587,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"felixmartinez","date":"2025-12-22 09:23:39","revision":3425187},"1.0.10":{"tag":"1.0.10","author":"felixmartinez","date":"2026-03-24 10:43:39","revision":3489874},"1.0.5":{"tag":"1.0.5","author":"felixmartinez","date":"2026-03-07 22:20:52","revision":3477195},"1.0.55":{"tag":"1.0.55","author":"felixmartinez","date":"2026-07-05 17:13:29","revision":3596959},"1.0.75":{"tag":"1.0.75","author":"felixmartinez","date":"2026-08-10 09:40:54","revision":3640293},"1.0.80":{"tag":"1.0.80","author":"felixmartinez","date":"2026-08-26 20:05:59","revision":3667752}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3424088,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3424088,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3424088,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3424088,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.10","1.0.5","1.0.55","1.0.75","1.0.80"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[247,9600,252536,252535,15154],"plugin_category":[54],"plugin_contributors":[232726,200646],"plugin_business_model":[],"class_list":["post-261421","plugin","type-plugin","status-publish","hentry","plugin_tags-performance","plugin_tags-task","plugin_tags-tasking","plugin_tags-time-manager","plugin_tags-time-tracking","plugin_category-security-and-spam-protection","plugin_contributors-felixmartinez","plugin_contributors-hamlet237","plugin_committers-felixmartinez"],"banners":{"banner":"https:\/\/ps.w.org\/pn-tasks-manager\/assets\/banner-772x250.png?rev=3424088","banner_2x":"https:\/\/ps.w.org\/pn-tasks-manager\/assets\/banner-1544x500.png?rev=3424088","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/pn-tasks-manager\/assets\/icon-128x128.png?rev=3424088","icon_2x":"https:\/\/ps.w.org\/pn-tasks-manager\/assets\/icon-256x256.png?rev=3424088","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>PN Tasks Manager is a comprehensive WordPress plugin designed to help you manage tasks, track time, and organize your team's workflow efficiently. Whether you're managing personal tasks, team projects, or community events, this plugin provides all the tools you need to stay organized and productive.<\/p>\n\n<h4>Core Features<\/h4>\n\n<ul>\n<li><p><strong>Task Management<\/strong>: Create, edit, and manage tasks with detailed information including titles, descriptions, dates, times, and estimated hours. Tasks support rich content editing with WordPress's built-in editor.<\/p><\/li>\n<li><p><strong>User Assignment<\/strong>: Assign tasks to one or multiple users, making it easy to distribute workload and track responsibilities across your team.<\/p><\/li>\n<li><p><strong>Time Tracking<\/strong>: Track estimated hours for each task and monitor completion status. The plugin calculates total hours per user for performance analysis.<\/p><\/li>\n<li><p><strong>Interactive Calendar<\/strong>: View your tasks in multiple calendar formats:<\/p>\n\n<ul>\n<li>Day view: Detailed view of tasks for a specific day<\/li>\n<li>Week view: Overview of tasks across a week<\/li>\n<li>Month view: Complete monthly calendar with task indicators<\/li>\n<li>Year view: Annual overview with task distribution<\/li>\n<\/ul><\/li>\n<li><p><strong>Recurring Tasks<\/strong>: Set up tasks that repeat automatically with customizable periodicity:<\/p>\n\n<ul>\n<li>Repeat every X days, weeks, or months<\/li>\n<li>Set an end date for recurring tasks<\/li>\n<li>Tasks are automatically generated based on your schedule<\/li>\n<\/ul><\/li>\n<li><p><strong>Task Categories<\/strong>: Organize tasks using hierarchical categories with custom icons and colors for easy visual identification.<\/p><\/li>\n<li><p><strong>Public Tasks<\/strong>: Create public tasks that any user can join, perfect for community events, volunteer opportunities, or collaborative projects.<\/p><\/li>\n<li><p><strong>ICS Calendar Export<\/strong>: Export your tasks to ICS format for seamless integration with Google Calendar, Outlook, Apple Calendar, and other calendar applications.<\/p><\/li>\n<li><p><strong>User Ranking<\/strong>: Track and display user rankings based on completed task hours, motivating team members and recognizing top contributors (admin-only feature).<\/p><\/li>\n<li><p><strong>Email Notifications<\/strong>: Automatically notify users when tasks are assigned to them. Supports automatic email notifications for appointments (requires MailPN plugin for enhanced functionality, falls back to wp_mail).<\/p><\/li>\n<li><p><strong>Gutenberg Blocks<\/strong>: Full integration with WordPress block editor. Use blocks to display:<\/p>\n\n<ul>\n<li>Calendar views<\/li>\n<li>Task lists<\/li>\n<li>Joinable tasks<\/li>\n<li>User rankings<\/li>\n<li>Individual tasks<\/li>\n<\/ul><\/li>\n<li><p><strong>Shortcodes<\/strong>: Flexible shortcode system for displaying plugin features anywhere on your site:<\/p>\n\n<ul>\n<li><code>[pn-tasks-manager-calendar]<\/code> - Display interactive calendar<\/li>\n<li><code>[pn-tasks-manager-task-list]<\/code> - Show task listings<\/li>\n<li><code>[pn-tasks-manager-joinable-tasks]<\/code> - List tasks users can join<\/li>\n<li><code>[pn-tasks-manager-users-ranking]<\/code> - Display user rankings<\/li>\n<li><code>[pn-tasks-manager-task]<\/code> - Display individual tasks<\/li>\n<li><code>[pn-tasks-manager-booking]<\/code> - Display appointment booking interface (NEW in 1.0.14)<\/li>\n<li><code>[pn-tasks-manager-call-to-action]<\/code> - Create custom call-to-action elements<\/li>\n<\/ul><\/li>\n<li><p><strong>Role-Based Permissions<\/strong>: Flexible permission system that integrates with WordPress user roles. Control who can create, edit, delete, and manage tasks.<\/p><\/li>\n<li><p><strong>Multilingual Support<\/strong>: Fully translation-ready with support for multiple languages including Spanish, Catalan, Basque, Galician, Italian, and Portuguese. Compatible with Polylang for multilingual sites.<\/p><\/li>\n<li><p><strong>AJAX-Powered Interface<\/strong>: Fast, responsive interface with AJAX functionality for seamless user experience without page reloads.<\/p><\/li>\n<li><p><strong>Customizable Styling<\/strong>: Modern, clean interface with Material Design icons. Styles can be customized to match your theme.<\/p><\/li>\n<li><p><strong>Task Status Tracking<\/strong>: Mark tasks as completed and track progress through your workflow.<\/p><\/li>\n<li><p><strong>Task Attachments<\/strong>: Attach files and media to tasks for better collaboration and documentation.<\/p><\/li>\n<li><p><strong>Task Locations<\/strong>: Add location information to tasks for events and meetings.<\/p><\/li>\n<li><p><strong>Task Icons and Colors<\/strong>: Customize task appearance with icons and colors for quick visual identification.<\/p><\/li>\n<li><p><strong>Interactive Onboarding Tutorial (NEW in 1.0.61)<\/strong>: First-time user experience enhancement:<\/p>\n\n<ul>\n<li>5-step guided tour through plugin features<\/li>\n<li>Spotlight effect highlighting relevant sections<\/li>\n<li>Visual progress indicators and contextual tips<\/li>\n<li>Mobile-responsive and keyboard-navigable<\/li>\n<li>One-time display that respects user preferences<\/li>\n<li>Skip\/Resume functionality for flexibility<\/li>\n<\/ul><\/li>\n<li><p><strong>Smart Page Detection (NEW in 1.0.61)<\/strong>: Intelligent page management system:<\/p>\n\n<ul>\n<li>Automatically detects existing pages with plugin shortcodes<\/li>\n<li>Recognizes both Gutenberg blocks and classic shortcodes<\/li>\n<li>One-click linking of detected pages to plugin functions<\/li>\n<li>Visual indicators for linked\/unlinked status<\/li>\n<li>Create new pages or link existing ones seamlessly<\/li>\n<li>Support for Task List, Calendar, and Booking pages<\/li>\n<\/ul><\/li>\n<li><p><strong>Appointment Booking System (NEW in 1.0.14)<\/strong>: Complete Calendly-style appointment scheduling system:<\/p>\n\n<ul>\n<li>Public booking interface with 6-step flow<\/li>\n<li>Customizable availability hours per day of the week<\/li>\n<li>Automatic holiday management with API integration (Nager.Date)<\/li>\n<li>Time slot management with visual availability indicators<\/li>\n<li>Automatic email notifications (appointment confirmation, 24h reminders, cancellations)<\/li>\n<li>WP Cron integration for automated reminder emails<\/li>\n<li>Admin management of appointments in WordPress dashboard<\/li>\n<li>Responsive design for mobile and desktop<\/li>\n<li>Support for break periods during work hours<\/li>\n<li>Custom appointment duration settings<\/li>\n<li>Email fallback system (MailPN \u2192 wp_mail)<\/li>\n<li>Timezone selector with auto-detection and business-to-user timezone conversion (NEW in 1.0.80)<\/li>\n<li>Appointment approval workflow with pending\/approved\/rejected statuses (NEW in 1.0.80)<\/li>\n<li>Per-instance custom slot configuration (duration, breaks, weekly schedule) (NEW in 1.0.80)<\/li>\n<li>Custom notification email per booking instance (NEW in 1.0.80)<\/li>\n<li>Frontend admin appointment management panel with approve\/reject\/set-pending actions (NEW in 1.0.80)<\/li>\n<li>Custom booking fields per instance (text, email, phone, number, date, textarea, select, checkbox) (NEW in 1.0.80)<\/li>\n<li>WYSIWYG welcome and success messages per booking instance (NEW in 1.0.80)<\/li>\n<\/ul><\/li>\n<\/ul>\n\n<h4>Use Cases<\/h4>\n\n<ul>\n<li><strong>Project Management<\/strong>: Organize team projects with assigned tasks and deadlines<\/li>\n<li><strong>Event Planning<\/strong>: Schedule and manage events with recurring dates<\/li>\n<li><strong>Community Management<\/strong>: Create public tasks for community participation<\/li>\n<li><strong>Time Tracking<\/strong>: Monitor time spent on various activities and projects<\/li>\n<li><strong>Team Collaboration<\/strong>: Assign and track tasks across team members<\/li>\n<li><strong>Personal Organization<\/strong>: Manage personal tasks and schedules<\/li>\n<li><strong>Appointment Scheduling<\/strong>: Accept online bookings from clients and customers<\/li>\n<li><strong>Service Businesses<\/strong>: Schedule appointments for consultations, services, or meetings<\/li>\n<\/ul>\n\n<h4>Technical Features<\/h4>\n\n<ul>\n<li>Custom Post Type implementation for tasks<\/li>\n<li>Hierarchical taxonomy system for categories<\/li>\n<li>REST API integration (with security controls)<\/li>\n<li>WordPress coding standards compliant<\/li>\n<li>Optimized database queries<\/li>\n<li>Security-focused with nonce verification and capability checks<\/li>\n<li>Compatible with WordPress 3.0 and higher<\/li>\n<li>PHP 7.2+ required<\/li>\n<\/ul>\n\n<p>This plugin is perfect for WordPress sites that need a robust task management system without the complexity of external services. It integrates seamlessly with WordPress's native features and works with any WordPress theme.<\/p>\n\n<h3>Credits<\/h3>\n\n<p>This plugin stands on the shoulders of giants<\/p>\n\n<p>Owl Carousel v2.3.4\nLicensed under: SEE LICENSE IN https:\/\/github.com\/OwlCarousel2\/OwlCarousel2\/blob\/master\/LICENSE\nCopyright 2013-2018 David Deutsch\nhttps:\/\/owlcarousel2.github.io\/OwlCarousel2\/\nhttps:\/\/github.com\/OwlCarousel2\/OwlCarousel2\/blob\/develop\/dist\/owl.carousel.js<\/p>\n\n<p>Trumbowyg v2.27.3 - A lightweight WYSIWYG editor\nalex-d.github.io\/Trumbowyg\/\nLicense MIT - Author : Alexandre Demode (Alex-D)\nhttps:\/\/github.com\/Alex-D\/Trumbowyg\/blob\/develop\/src\/ui\/sass\/trumbowyg.scss\nhttps:\/\/github.com\/Alex-D\/Trumbowyg\/blob\/develop\/src\/ui\/sass\/trumbowyg.scss\nhttps:\/\/github.com\/Alex-D\/Trumbowyg\/blob\/develop\/src\/trumbowyg.js<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload <code>pn-tasks-manager.php<\/code> to the <code>\/wp-content\/plugins\/<\/code> directory<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20do%20i%20install%20the%20pn%20tasks%20manager%20plugin%3F\"><h3>How do I install the PN Tasks Manager plugin?<\/h3><\/dt>\n<dd><p>To install the PN Tasks Manager plugin, you can either upload the plugin files to the \/wp-content\/plugins\/pn-tasks-manager directory, or install the plugin through the WordPress plugins screen directly. After uploading, activate the plugin through the 'Plugins' screen in WordPress.<\/p><\/dd>\n<dt id=\"can%20i%20customize%20the%20look%20and%20feel%20of%20my%20listings%3F\"><h3>Can I customize the look and feel of my listings?<\/h3><\/dt>\n<dd><p>Yes, you can customize the appearance of your listings by modifying the CSS styles provided in the plugin. Additionally, you can enqueue your own custom styles to override the default plugin styles.<\/p><\/dd>\n<dt id=\"where%20can%20i%20find%20the%20uncompressed%20source%20code%20for%20the%20plugin%27s%20javascript%20and%20css%20files%3F\"><h3>Where can I find the uncompressed source code for the plugin's JavaScript and CSS files?<\/h3><\/dt>\n<dd><p>You can find the uncompressed source code for the JavaScript and CSS files in the src directory of the plugin. You can also visit our GitHub repository for the complete source code.<\/p><\/dd>\n<dt id=\"how%20do%20i%20add%20a%20new%20custom%20post%20type%20to%20my%20site%3F\"><h3>How do I add a new Custom Post Type to my site?<\/h3><\/dt>\n<dd><p>To add a new Custom Post Type, go to the 'Task' section in the WordPress dashboard and click on 'Add New'. Fill in the required details for your Task, including any custom fields provided by the plugin. Once you're done, click 'Publish' to make the Task live on your site.<\/p><\/dd>\n<dt id=\"can%20i%20use%20this%20plugin%20with%20any%20wordpress%20theme%3F\"><h3>Can I use this plugin with any WordPress theme?<\/h3><\/dt>\n<dd><p>Yes, the PN Tasks Manager plugin is designed to be compatible with any WordPress theme. However, some themes may require additional customization to ensure the plugin's styles integrate seamlessly.<\/p><\/dd>\n<dt id=\"is%20the%20plugin%20translation-ready%3F\"><h3>Is the plugin translation-ready?<\/h3><\/dt>\n<dd><p>Yes, the PN Tasks Manager plugin is fully translation-ready. You can use translation plugins such as Loco Translate to translate the plugin into your desired language.<\/p><\/dd>\n<dt id=\"how%20do%20i%20update%20the%20plugin%3F\"><h3>How do I update the plugin?<\/h3><\/dt>\n<dd><p>You can update the plugin through the WordPress plugins screen just like any other plugin. When a new version is available, you will see an update notification, and you can click 'Update Now' to install the latest version.<\/p><\/dd>\n<dt id=\"how%20do%20i%20backup%20my%20task%20before%20updating%20the%20plugin%3F\"><h3>How do I backup my Task before updating the plugin?<\/h3><\/dt>\n<dd><p>To backup your Task, you can export your posts and custom post types from the WordPress Tools &gt; Export menu. Choose the 'Task' post type and download the export file. You can import this file later if needed.<\/p><\/dd>\n<dt id=\"how%20do%20i%20add%20ratings%20and%20reviews%20to%20my%20task%3F\"><h3>How do I add ratings and reviews to my Task?<\/h3><\/dt>\n<dd><p>The plugin don't include a built-in ratings and reviews system yet. You can integrate third-party plugins that offer these features or customize the plugin to include them.<\/p><\/dd>\n<dt id=\"how%20do%20i%20optimize%20my%20task%20for%20seo%3F\"><h3>How do I optimize my Task for SEO?<\/h3><\/dt>\n<dd><p>To optimize your Task for SEO, ensure that you use relevant keywords in your Task titles, descriptions, and content. You can also use SEO plugins like Yoast SEO to further enhance your Task posts' search engine visibility.<\/p><\/dd>\n<dt id=\"how%20do%20i%20get%20support%20for%20the%20pn%20tasks%20manager%20plugin%3F\"><h3>How do I get support for the PN Tasks Manager plugin?<\/h3><\/dt>\n<dd><p>For support, you can visit the plugin's support forum on the WordPress.org website or contact the plugin author directly through our contact information info@padresenlanube.com.<\/p><\/dd>\n<dt id=\"is%20the%20plugin%20compatible%20with%20the%20latest%20version%20of%20wordpress%3F\"><h3>Is the plugin compatible with the latest version of WordPress?<\/h3><\/dt>\n<dd><p>The PN Tasks Manager plugin is tested with the latest version of WordPress. However, it is always a good practice to check for any compatibility issues before updating WordPress or the plugin.<\/p><\/dd>\n<dt id=\"how%20do%20i%20uninstall%20the%20plugin%3F\"><h3>How do I uninstall the plugin?<\/h3><\/dt>\n<dd><p>To uninstall the plugin, go to the 'Plugins' screen in WordPress, find the PN Tasks Manager plugin, and click 'Deactivate'. After deactivating, you can click 'Delete' to remove the plugin and its files from your site. Note that this will not delete your Task, but you should back up your data before uninstalling any plugin.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.80<\/h4>\n\n<ul>\n<li>Add timezone selector to the booking interface with auto-detection from the browser and a list of common timezones<\/li>\n<li>Add timezone initialization, offset calculation, and time conversion functions in the booking JS<\/li>\n<li>Convert displayed time slots from business timezone to user's selected timezone<\/li>\n<li>Show timezone info message above time slots when a timezone offset exists<\/li>\n<li>Store original business time and converted user time as separate data attributes on time slot elements<\/li>\n<li>Display converted time with timezone label in the booking summary step<\/li>\n<li>Send user_timezone and business_timezone fields in the booking AJAX submission<\/li>\n<li>Re-fetch availability and time slots when the user changes their timezone<\/li>\n<li>Add hidden field for business timezone in the booking template, populated from shortcode config<\/li>\n<li>Add welcome_message, success_message, and timezone fields to the shortcode config data model (get, save, defaults)<\/li>\n<li>Add WYSIWYG editor fields (Welcome Message, Success Message) and a timezone select to the shortcode config popup<\/li>\n<li>Show\/hide booking-specific fields in the config popup based on shortcode type<\/li>\n<li>Replace the booking welcome screen and success message with custom WYSIWYG content from shortcode config when available, falling back to legacy values<\/li>\n<li>Change the shortcode config popup size from medium to large<\/li>\n<li>Switch popup open\/close logic to the global popup system classes (pn-tasks-manager-popup-active and pn-tasks-manager-popup-overlay-active)<\/li>\n<li>Remove console.log debug statements from shortcode config JS, tutorial JS, booking settings JS, forms JS, and AJAX JS<\/li>\n<li>Change Gutenberg block registration from dual PHP+JS to JS-only registration with a render_block filter callback<\/li>\n<li>Add useBlockProps support from wp-block-editor for WordPress 5.9+ compatibility in block editor previews<\/li>\n<li>Add wrapper div with dashed border styling around block previews in the editor, with hover and selected states<\/li>\n<li>Change block editor script dependency from wp-editor to wp-block-editor<\/li>\n<li>Add description, keywords, attributes, and supports properties to block registration<\/li>\n<li>Add a new section type label in the forms system for colored section labels<\/li>\n<li>Add section_color support for colored collapsible sections with a custom CSS variable and a redesigned compact header<\/li>\n<li>Add pn-tasks-manager-mb-10 class to input wrappers and section wrappers for consistent bottom margins<\/li>\n<li>Exclude button input type (alongside submit) from the 40%\/60% label-field width split in half format<\/li>\n<li>Add file upload input rendering mode when upload key is set on file-type inputs, with accept attribute support<\/li>\n<li>Add accept attribute output in the generic input builder for all input types<\/li>\n<li>Skip outputting value attribute for file-type inputs in the generic input builder<\/li>\n<li>Change tutorial completion status from boolean true\/false to string 'completed'\/'skipped'<\/li>\n<li>Add show_timezone_selector config field to control timezone selector visibility on the frontend<\/li>\n<li>Add require_approval config field to enable appointment approval workflow<\/li>\n<li>Add notify_admin_email and admin_email config fields for custom admin notification email per booking instance<\/li>\n<li>Add custom_slots_enabled, custom_duration, custom_breaks_enabled, custom_break_duration, and custom_timeslots config fields for per-instance appointment slot configuration<\/li>\n<li>Add all new config fields to get_config(), save_config(), and default values in the shortcode config PHP class<\/li>\n<li>Add toggle switch styled checkboxes for all booking config options in the shortcode config popup<\/li>\n<li>Add custom weekly schedule builder UI in the config popup with per-day enable\/disable, dynamic time slot rows, and add\/remove controls<\/li>\n<li>Add hidden field for custom_timeslots that stores the JSON schedule data<\/li>\n<li>Add JS logic to load, collect, and save custom schedule data in the shortcode config JS<\/li>\n<li>Add show\/hide logic for admin_email field and custom slots fields based on their toggle state<\/li>\n<li>Add CSS styles for the custom schedule UI and toggle switch checkbox layout in the shortcode config stylesheet<\/li>\n<li>Remove wp-editor, wp-tinymce, and editor script dependencies from shortcode config asset enqueuing<\/li>\n<li>Enqueue main plugin CSS as dependency for shortcode config styles<\/li>\n<li>Add pending status to the appointment post type alongside confirmed and cancelled<\/li>\n<li>Add pending status option to the appointment meta box in the admin editor<\/li>\n<li>Add pending status display in custom columns (clock dashicon, amber color)<\/li>\n<li>Add Pending option to the admin appointment filter dropdown<\/li>\n<li>Handle status change from pending to confirmed in save_post (triggers approval email and reminder scheduling)<\/li>\n<li>Pass shortcode_id, require_approval, notify_admin_email, admin_email_override, and page_url in the booking AJAX submission<\/li>\n<li>Add hidden fields in the booking form template for shortcode_id, require_approval, notify_admin_email, admin_email, and show_timezone_selector<\/li>\n<li>Extract and store config fields from the AJAX POST in the nopriv booking create handler<\/li>\n<li>Store shortcode_id, admin_email_override, and page_url as appointment post meta<\/li>\n<li>Create appointment with pending status when require_approval is enabled, confirmed otherwise<\/li>\n<li>Send only admin pending notification for pending appointments; send both admin and user emails for confirmed appointments<\/li>\n<li>Add pn_tasks_manager_send_pending_notification() method to the email service for admin-only pending appointment emails<\/li>\n<li>Add pn_tasks_manager_send_approval_email() method to the email service for user confirmation on approval<\/li>\n<li>Add pn_tasks_manager_send_rejection_email() method to the email service for user notification on rejection<\/li>\n<li>Use custom admin_email from appointment meta when available in the pending notification<\/li>\n<li>Add appointment-pending, appointment-approved, and appointment-rejected fallback email templates<\/li>\n<li>Link the \"Review &amp; Approve\" button in the pending email to the frontend booking page URL instead of the WordPress admin dashboard<\/li>\n<li>Add approve_appointment AJAX handler that changes status to confirmed, sends approval email, and schedules reminder<\/li>\n<li>Add reject_appointment AJAX handler that changes status to cancelled, unschedules reminder, and sends rejection email<\/li>\n<li>Add set_appointment_pending AJAX handler that reverts confirmed or cancelled appointments back to pending status<\/li>\n<li>Add get_appointments_list AJAX handler for admin frontend listing with shortcode_id and status filtering<\/li>\n<li>Accept shortcode_id parameter in the booking get_slots and get_date_availability nopriv AJAX handlers<\/li>\n<li>Load custom slot configuration (duration, breaks, schedule) from shortcode config when shortcode_id is provided in the availability system<\/li>\n<li>Treat both confirmed and pending appointments as booked when calculating available slots<\/li>\n<li>Add collapsible admin appointment management panel at the top of the booking interface (visible only to manage_options users)<\/li>\n<li>Add filter tabs (All, Pending, Confirmed, Cancelled) in the admin appointment listing panel<\/li>\n<li>Add appointment table with columns: Date, Time, Client, Email, Status, Actions<\/li>\n<li>Render action icon buttons per status: approve (check_circle), reject\/cancel (cancel), set pending (hourglass_top) with tooltip on hover<\/li>\n<li>Add AJAX-powered approve, reject, and set-pending actions in the admin listing without page reload<\/li>\n<li>Add CSS styles for the admin appointment listing panel, filters, table, status badges, and icon action buttons<\/li>\n<li>Hide the timezone selector dropdown and timezone info banner when show_timezone_selector is disabled<\/li>\n<li>Remove the phone field from the booking form, summary, and AJAX submission data<\/li>\n<li>Move the additional notes textarea after the custom fields container in the booking form<\/li>\n<li>Enqueue custom fields JS for all users so custom fields render on the frontend for non-logged-in visitors<\/li>\n<li>Change custom fields loadCustomFields() AJAX to use the nopriv action route instead of admin-only route<\/li>\n<li>Add pn_tasks_manager_booking_get_custom_fields to the nopriv handler public_types list for public read-only access to field definitions<\/li>\n<li>Fix custom fields modal closing behavior: only remove the topmost modal overlay instead of all overlays<\/li>\n<li>Add i18n strings for appointment management actions (approve, reject, cancel, setPending, noAppointments, appointmentApproved, appointmentRejected)<\/li>\n<li>Set appointment custom post type show_in_rest to false to prevent REST API exposure<\/li>\n<\/ul>\n\n<h4>1.0.65<\/h4>\n\n<p><strong>Shortcode Configuration System<\/strong><\/p>\n\n<p>This update introduces a powerful configuration system that allows each shortcode instance to have custom title, description, and featured image.<\/p>\n\n<p><strong>New Features:<\/strong><\/p>\n\n<ul>\n<li><p><strong>Per-Instance Shortcode Configuration<\/strong>: Each shortcode placed on your site can now have unique customization<\/p>\n\n<ul>\n<li>Custom title for each shortcode instance<\/li>\n<li>Custom description with rich text support<\/li>\n<li>Featured image selection using WordPress media library<\/li>\n<li>Visual edit button for administrators (displayed only to admins on frontend)<\/li>\n<li>Popup configuration interface similar to custom fields editor<\/li>\n<li>Automatic configuration persistence per shortcode instance<\/li>\n<\/ul><\/li>\n<li><p><strong>Supported Shortcodes<\/strong>:<\/p>\n\n<ul>\n<li><code>[pn-tasks-manager-calendar]<\/code> - Customizable calendar display<\/li>\n<li><code>[pn-tasks-manager-joinable-tasks]<\/code> - Customizable joinable tasks list<\/li>\n<li><code>[pn-tasks-manager-booking]<\/code> - Customizable appointment booking interface<\/li>\n<\/ul><\/li>\n<li><p><strong>Admin Configuration UI<\/strong>:<\/p>\n\n<ul>\n<li>Settings button appears only for administrators on frontend<\/li>\n<li>Clean popup interface with image preview<\/li>\n<li>WordPress media library integration for image selection<\/li>\n<li>Real-time preview of selected images<\/li>\n<li>AJAX-powered save without page reload<\/li>\n<li>Responsive design for mobile devices<\/li>\n<\/ul><\/li>\n<li><p><strong>Technical Implementation<\/strong>:<\/p>\n\n<ul>\n<li>Dedicated configuration class (<code>PN_TASKS_MANAGER_Shortcode_Config<\/code>)<\/li>\n<li>Unique ID generation per shortcode instance<\/li>\n<li>Configuration stored in WordPress options<\/li>\n<li>Automatic asset enqueuing on frontend and admin<\/li>\n<li>Secure AJAX endpoints with nonce verification<\/li>\n<li>Fully sanitized and escaped output<\/li>\n<\/ul><\/li>\n<\/ul>\n\n<p><strong>User Experience:<\/strong><\/p>\n\n<ul>\n<li>Administrators see a configure button on each shortcode instance<\/li>\n<li>Click to open popup with configuration options<\/li>\n<li>Select image from media library with visual preview<\/li>\n<li>Add custom title and description<\/li>\n<li>Save changes with instant feedback<\/li>\n<li>Page reloads to display updated shortcode configuration<\/li>\n<li>Non-admin users see only the customized content without edit buttons<\/li>\n<\/ul>\n\n<h4>1.0.61<\/h4>\n\n<p><strong>Enhanced Page Management &amp; Onboarding Experience<\/strong><\/p>\n\n<p>This update significantly improves the plugin configuration experience with smart page detection, an interactive tutorial system, and enhanced settings management.<\/p>\n\n<p><strong>New Features:<\/strong><\/p>\n\n<ul>\n<li><p><strong>Interactive Tutorial Onboarding<\/strong>: First-time users now get a guided tour through plugin features<\/p>\n\n<ul>\n<li>5-step interactive tutorial with spotlight highlighting<\/li>\n<li>Visual progress indicators<\/li>\n<li>Contextual tips and feature explanations<\/li>\n<li>Keyboard navigation support<\/li>\n<li>Mobile-responsive design<\/li>\n<li>Skip\/Resume functionality<\/li>\n<li>One-time display that doesn't interrupt returning users<\/li>\n<\/ul><\/li>\n<li><p><strong>Smart Page Detection<\/strong>: Automatic recognition of existing pages with plugin shortcodes<\/p>\n\n<ul>\n<li>Detects pages containing <code>[pn-tasks-manager-calendar]<\/code>, <code>[pn-tasks-manager-joinable-tasks]<\/code>, and <code>[pn-tasks-manager-booking]<\/code> shortcodes<\/li>\n<li>Recognizes both Gutenberg blocks and classic shortcodes<\/li>\n<li>Shows available pages for quick linking in settings<\/li>\n<li>No need to manually create pages if they already exist<\/li>\n<\/ul><\/li>\n<li><p><strong>Enhanced Page Manager<\/strong>:<\/p>\n\n<ul>\n<li>Link existing pages to plugin functionality<\/li>\n<li>Create new pages directly from settings<\/li>\n<li>Visual indicators for linked\/unlinked pages<\/li>\n<li>One-click page linking from available pages list<\/li>\n<li>Separate management for Task List, Calendar, and Booking pages<\/li>\n<li>Automatic detection when pages contain required content<\/li>\n<\/ul><\/li>\n<li><p><strong>Improved Settings Interface<\/strong>:<\/p>\n\n<ul>\n<li>Better visual organization with alert boxes<\/li>\n<li>Dividers between options for clarity<\/li>\n<li>Improved information architecture<\/li>\n<li>Enhanced tooltips and descriptions<\/li>\n<li>More intuitive navigation<\/li>\n<\/ul><\/li>\n<\/ul>\n\n<p><strong>Technical Improvements:<\/strong><\/p>\n\n<ul>\n<li><p><strong>New PHP Classes<\/strong>:<\/p>\n\n<ul>\n<li><code>PN_TASKS_MANAGER_Tutorial<\/code>: Dedicated class for tutorial management<\/li>\n<li>Separated concerns for better code organization<\/li>\n<li>Reusable methods for tutorial steps and progress indicators<\/li>\n<\/ul><\/li>\n<li><p><strong>New Assets<\/strong>:<\/p>\n\n<ul>\n<li><code>assets\/js\/admin\/pn-tasks-manager-tutorial.js<\/code> - Tutorial navigation and positioning logic<\/li>\n<li><code>assets\/css\/admin\/pn-tasks-manager-tutorial.css<\/code> - Modern tutorial styling with animations<\/li>\n<li>Enhanced <code>pn-tasks-manager-forms.js<\/code> with page linking functionality<\/li>\n<\/ul><\/li>\n<li><p><strong>Database &amp; Options<\/strong>:<\/p>\n\n<ul>\n<li>New option: <code>pn_tasks_manager_tutorial_completed<\/code> - Tracks tutorial completion status<\/li>\n<li>Smart page option linking for all three page types<\/li>\n<li>Improved option validation and sanitization<\/li>\n<\/ul><\/li>\n<li><p><strong>AJAX Endpoints<\/strong>:<\/p>\n\n<ul>\n<li><code>pn_tasks_manager_link_plugin_page<\/code> - Link existing pages to plugin functions<\/li>\n<li><code>pn_tasks_manager_complete_tutorial<\/code> - Save tutorial completion status<\/li>\n<li>Enhanced page search with shortcode\/block detection<\/li>\n<\/ul><\/li>\n<\/ul>\n\n<p><strong>Enhanced Features:<\/strong><\/p>\n\n<ul>\n<li><p><strong>Settings Page Management<\/strong>:<\/p>\n\n<ul>\n<li>Support for booking page configuration (previously missing from allowed options)<\/li>\n<li>Automatic search for pages containing plugin shortcodes<\/li>\n<li>Display up to 5 available pages per function<\/li>\n<li>Quick link button for each available page<\/li>\n<\/ul><\/li>\n<li><p><strong>User Experience Improvements<\/strong>:<\/p>\n\n<ul>\n<li>Welcoming tutorial for new users reduces learning curve<\/li>\n<li>Faster setup with automatic page detection<\/li>\n<li>Clear visual feedback for all actions<\/li>\n<li>Reduced configuration time with smart defaults<\/li>\n<li>Better error messages and status indicators<\/li>\n<\/ul><\/li>\n<\/ul>\n\n<p><strong>Developer Features:<\/strong><\/p>\n\n<ul>\n<li><p><strong>Tutorial System<\/strong>:<\/p>\n\n<ul>\n<li>Easy to extend with new tutorial steps<\/li>\n<li>Spotlight positioning system with automatic fallbacks<\/li>\n<li>Responsive design considerations built-in<\/li>\n<li>Action hooks for custom tutorial steps<\/li>\n<li>Methods for resetting tutorial state (useful for testing)<\/li>\n<\/ul><\/li>\n<li><p><strong>Page Detection System<\/strong>:<\/p>\n\n<ul>\n<li>Searches both shortcode syntax and Gutenberg block comments<\/li>\n<li>Configurable shortcode-to-block mapping<\/li>\n<li>Extensible for future page types<\/li>\n<li>Query optimization for large sites<\/li>\n<\/ul><\/li>\n<\/ul>\n\n<p><strong>CSS Additions:<\/strong><\/p>\n\n<ul>\n<li>New alert styles: <code>.pn-tasks-manager-alert-info<\/code>, <code>.pn-tasks-manager-alert-warning<\/code><\/li>\n<li>Divider component: <code>.pn-tasks-manager-divider<\/code><\/li>\n<li>Tutorial-specific styles with smooth animations<\/li>\n<li>Responsive breakpoints for mobile devices<\/li>\n<li>Material Design-inspired visual language<\/li>\n<\/ul>\n\n<p><strong>Files Added:<\/strong><\/p>\n\n<ul>\n<li><code>includes\/class-pn-tasks-manager-tutorial.php<\/code> - Tutorial management class<\/li>\n<li><code>assets\/js\/admin\/pn-tasks-manager-tutorial.js<\/code> - Tutorial JavaScript logic<\/li>\n<li><code>assets\/css\/admin\/pn-tasks-manager-tutorial.css<\/code> - Tutorial styles<\/li>\n<\/ul>\n\n<p><strong>Files Modified:<\/strong><\/p>\n\n<ul>\n<li><code>includes\/class-pn-tasks-manager-settings.php<\/code> - Integrated tutorial system<\/li>\n<li><code>includes\/class-pn-tasks-manager-forms.php<\/code> - Enhanced page_manager with page detection<\/li>\n<li><code>includes\/class-pn-tasks-manager-ajax.php<\/code> - Added link and tutorial completion handlers<\/li>\n<li><code>assets\/js\/pn-tasks-manager-forms.js<\/code> - Added page linking functionality<\/li>\n<li><code>assets\/css\/admin\/pn-tasks-manager-admin.css<\/code> - Added new utility styles<\/li>\n<\/ul>\n\n<p><strong>Upgrade Notes:<\/strong><\/p>\n\n<ul>\n<li>Tutorial will automatically display for users who haven't seen it<\/li>\n<li>Existing page configurations remain unchanged<\/li>\n<li>New page detection runs automatically on settings page load<\/li>\n<li>No database migrations required<\/li>\n<li>Fully backward compatible with previous versions<\/li>\n<\/ul>\n\n<h4>1.0.14<\/h4>\n\n<p><strong>Major Update: Appointment Booking System<\/strong><\/p>\n\n<p>This release introduces a complete appointment scheduling system inspired by Calendly, transforming PN Tasks Manager into a comprehensive task and appointment management solution.<\/p>\n\n<p><strong>New Features:<\/strong><\/p>\n\n<ul>\n<li><p><strong>Appointment Booking Interface<\/strong>: Calendly-style public booking interface with 6-step user flow<\/p>\n\n<ul>\n<li>Service information display<\/li>\n<li>Interactive calendar with availability indicators<\/li>\n<li>Visual time slot selection<\/li>\n<li>User information form<\/li>\n<li>Booking confirmation and review<\/li>\n<li>Success confirmation page<\/li>\n<\/ul><\/li>\n<li><p><strong>Appointment Management<\/strong>:<\/p>\n\n<ul>\n<li>New \"Appointments\" custom post type<\/li>\n<li>Complete CRUD operations for appointments<\/li>\n<li>Admin dashboard integration<\/li>\n<li>Appointment status tracking (confirmed\/cancelled)<\/li>\n<li>User information storage (name, email, phone, notes)<\/li>\n<\/ul><\/li>\n<li><p><strong>Availability System<\/strong>:<\/p>\n\n<ul>\n<li>Configure available hours per day of the week<\/li>\n<li>Set break periods during work hours<\/li>\n<li>Holiday management with automatic API integration<\/li>\n<li>Real-time availability calculation<\/li>\n<li>Prevent double-booking with automatic validation<\/li>\n<\/ul><\/li>\n<li><p><strong>Email Notifications<\/strong>:<\/p>\n\n<ul>\n<li>Automatic appointment confirmation emails to admin<\/li>\n<li>24-hour reminder emails to users<\/li>\n<li>Cancellation notifications to users and admin<\/li>\n<li>Smart fallback system: MailPN \u2192 wp_mail()<\/li>\n<li>Email tracking to prevent duplicates<\/li>\n<li>Customizable HTML email templates<\/li>\n<\/ul><\/li>\n<li><p><strong>Holiday Integration<\/strong>:<\/p>\n\n<ul>\n<li>Integration with Nager.Date API (free, no API key required)<\/li>\n<li>Auto-import holidays for 100+ countries<\/li>\n<li>Support for Spain, Mexico, Argentina, Colombia, Peru, USA, UK, France, Germany, Italy<\/li>\n<li>Manual holiday management<\/li>\n<li>Visual holiday indicators in calendar<\/li>\n<\/ul><\/li>\n<li><p><strong>WP Cron Integration<\/strong>:<\/p>\n\n<ul>\n<li>Automated reminder email scheduling<\/li>\n<li>Configurable reminder timing (default 24h before appointment)<\/li>\n<li>Daily cleanup of orphaned cron jobs<\/li>\n<li>Automatic cron management on plugin activation\/deactivation<\/li>\n<\/ul><\/li>\n<li><p><strong>Responsive Design<\/strong>:<\/p>\n\n<ul>\n<li>Mobile-friendly booking interface<\/li>\n<li>Touch-optimized calendar and time slot selection<\/li>\n<li>Responsive grid layouts<\/li>\n<li>Modern CSS with smooth transitions<\/li>\n<\/ul><\/li>\n<li><p><strong>Developer Features<\/strong>:<\/p>\n\n<ul>\n<li>Well-documented code structure<\/li>\n<li>Action hooks for extensibility<\/li>\n<li>Filter hooks for customization<\/li>\n<li>Separate classes for availability, management, emails, and reminders<\/li>\n<li>RESTful AJAX handlers<\/li>\n<\/ul><\/li>\n<\/ul>\n\n<p><strong>New Shortcode:<\/strong>\n* <code>[pn-tasks-manager-booking]<\/code> - Display the complete appointment booking interface<\/p>\n\n<p><strong>New Settings:<\/strong>\n* Appointment Scheduling section with availability configuration\n* Email Notifications section with individual email type controls\n* Holiday country selection for API integration\n* Default appointment duration setting\n* Admin notification email configuration<\/p>\n\n<p><strong>Technical Improvements:<\/strong>\n* New custom post type: pn_tasks_appointment\n* 6 new PHP classes for appointment system\n* 3 email templates (appointment-request, reminder-24h, cancellation)\n* New JavaScript file for booking interface (2.5KB minified)\n* New CSS file for booking styles (3KB minified)\n* Enhanced AJAX handler with 5 new endpoints\n* Improved security with data validation and sanitization<\/p>\n\n<p><strong>Files Added:<\/strong>\n* includes\/class-pn-tasks-manager-post-type-appointment.php\n* includes\/class-pn-tasks-manager-appointment-availability.php\n* includes\/class-pn-tasks-manager-appointment-manager.php\n* includes\/class-pn-tasks-manager-email-service.php\n* includes\/class-pn-tasks-manager-email-templates.php\n* includes\/class-pn-tasks-manager-appointment-reminders.php\n* assets\/js\/pn-tasks-manager-booking.js\n* assets\/css\/pn-tasks-manager-booking.css\n* templates\/booking-interface.php\n* templates\/emails\/appointment-request.php\n* templates\/emails\/reminder-24h.php\n* templates\/emails\/cancellation.php<\/p>\n\n<p><strong>Upgrade Notes:<\/strong>\n* New appointments CPT will be registered automatically\n* Flush rewrite rules on activation\n* Daily cron job scheduled for cleanup\n* Default settings applied for new options\n* No breaking changes to existing task functionality<\/p>\n\n<h4>1.0.12<\/h4>\n\n<p>Previous release notes...<\/p>\n\n<h4>1.0.0<\/h4>\n\n<p>Hello world!<\/p>","raw_excerpt":"Manage your tasks and time tracking with this plugin. Create tasks, assign them to users, and track the time spent on each task.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/fr-ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/261421","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fr-ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/fr-ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/fr-ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=261421"}],"author":[{"embeddable":true,"href":"https:\/\/fr-ca.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/felixmartinez"}],"wp:attachment":[{"href":"https:\/\/fr-ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=261421"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/fr-ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=261421"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/fr-ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=261421"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/fr-ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=261421"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/fr-ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=261421"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/fr-ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=261421"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}