WP Manifestindependent plugin directory
manifest / editor / ez-goals

EZ Goals

WordPress goal tracking plugin with deadline management and visual urgency indicators

★ 0stars

Install

Download source zip No release zip yet

This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/flexseth/ez-goals/archive/refs/heads/trunk.zip
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

EZ Goals - WordPress Goal Tracking Plugin

Add deadline-driven goals to WordPress posts with visual urgency indicators and smart caching.

Features

  • 🎯 Custom Goal Block - Gutenberg block for managing goals
  • 📅 Multiple Goal Types - Near Term, Long Term, Stretch Goals, Daily Goals
  • ⏰ Quick Date Presets - Today, Tomorrow, Next Week, Next Month
  • 🎨 Color-Coded Urgency - Visual indicators show deadline proximity
    • Grey (7+ days) - Plenty of time
    • Blue (3-7 days) - Upcoming
    • Yellow (1-3 days) - Approaching
    • Orange (<1 day) - Due soon
  • 👁️ Editor Preview - See goal display in real-time while editing
  • 🎨 Customizable Colors - Settings page to match your theme
  • ⚡ Performance Optimized - Smart caching with minimal database queries
  • ✅ Mark Complete - Track goal completion
  • 🌐 i18n Ready - Fully translatable

Installation

Development Setup

# Clone the repository
git clone https://github.com/yourusername/flexy-ezgoals.git
cd flexy-ezgoals

# Install dependencies
npm install

# Build the plugin
npm run build

WordPress Installation

  1. Copy the flexy-ezgoals folder to /wp-content/plugins/
  2. Activate the plugin through the 'Plugins' menu in WordPress
  3. Add the Goal Block to any post or page
  4. Manage goals in the Post sidebar panel

Symbolic Link (Development)

# Link to your WordPress plugins directory
ln -s /path/to/flexy-ezgoals /path/to/wordpress/wp-content/plugins/flexy-ezgoals

Usage

Adding Goals

  1. In the Editor

    • Insert the "Goal Block" in your post
    • Open the Post tab in the sidebar (not Block tab)
    • Scroll down to the Goals panel
    • Fill in Goal Type, Label, and Deadline
    • Click "Add Goal"
  2. Quick Deadlines

    • Use the "Quick Deadline" dropdown for common dates
    • Or select "Custom Deadline" for specific date/time
  3. Preview

    • Goals appear below the block in the editor
    • Shows exactly how they'll look on the front-end

Customizing Colors

  1. Go to Settings → EZ Goals
  2. Adjust colors for each urgency level
  3. Save changes

Front-End Display

  • Goals automatically appear above post content
  • Color-coded by urgency
  • Responsive design
  • Automatic contrast calculation for readability

Architecture

Storage Strategy

  • Post Meta - Goals stored as _ezgoals_goals post meta (serialized array)
  • Transients - Cached "due soon" lists rebuilt daily via cron
  • Options API - Color settings stored in flexy_ezgoals_colors
  • No custom DB tables - WordPress-native storage only

Performance

  • 1 query per page load (cached via WordPress object cache)
  • Daily cron rebuilds "due today" transient
  • Conditional loading - Front-end CSS only loads when post has goals

REST API

  • GET /wp-json/flexy-ezgoals/v1/goals/{post_id} - Fetch goals
  • POST /wp-json/flexy-ezgoals/v1/goals/{post_id} - Save goals

Development

Build Commands

npm run build   # Production build
npm run start   # Development watch mode
npm run lint:js # JavaScript linting
npm run lint:css # CSS linting

File Structure

flexy-ezgoals/
├── flexy-ezgoals.php      # Plugin bootstrap
├── includes/              # PHP functionality
│   ├── post-meta.php      # Goal storage & helpers
│   ├── display.php        # Front-end rendering
│   ├── caching.php        # Cron & transients
│   ├── rest-api.php       # REST endpoints
│   ├── settings.php       # Settings page
│   └── enqueue.php        # Asset loading
├── src/                   # Block source
│   └── goal-block/
│       ├── block.json     # Block metadata
│       ├── index.js       # Registration
│       ├── edit.js        # Editor component
│       └── style.scss     # Styles
└── build/                 # Compiled assets (generated)

WordPress Requirements

  • WordPress: 6.0+
  • PHP: 7.4+
  • Node.js: 18+ (for development)

Standards & Compliance

  • ✅ WordPress Coding Standards (WPCS)
  • ✅ Plugin Check Plugin (PCP) compliant
  • ✅ Functional paradigm (no OOP)
  • ✅ Internationalization (i18n)
  • ✅ Accessibility (WCAG AA)
  • ✅ Security (nonces, capability checks, sanitization, escaping)

Roadmap

Future Enhancements

  • [ ] Custom Post Type option for better scalability
  • [ ] Goal templates
  • [ ] Goal categories/tags
  • [ ] Bulk goal operations
  • [ ] Goal statistics/analytics
  • [ ] Export/import functionality
  • [ ] Email reminders for due goals

Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

GPL-2.0-or-later

Credits

Built with Claude Code and Claude for WordPress.

Support


Made with ❤️ for the WordPress community