🐛 Problem: - SPA not loading in wp-admin - Trying to load from dev server (localhost:5173) - Happening in Local by Flywheel (wp_get_environment_type() = 'development') ✅ Solution: - Changed is_dev_mode() to ONLY enable dev mode if WOONOOW_ADMIN_DEV constant is explicitly set - Removed wp_get_environment_type() check - Now defaults to production mode (loads from admin-spa/dist/) 📝 To Enable Dev Mode: Add to wp-config.php: define('WOONOOW_ADMIN_DEV', true); 🎯 Result: - Production mode by default - Dev mode only when explicitly enabled - Works correctly in Local by Flywheel and other local environments
4.0 KiB
4.0 KiB
Markdown Syntax & Variables - Analysis & Recommendations
Current Issues
1. Card & Button Syntax
Current:
[card type="hero"]
Content here
[/card]
[button url="https://example.com" style="solid"]Click me[/button]
Problem: Not standard Markdown - uses WordPress-style shortcodes
2. Variable Naming Mismatch
Template uses: {order_item_table} (singular)
Preview defines: order_items_table (plural)
Result: Variable not replaced, shows as {orderitemtable} (underscores removed by some HTML sanitizer)
All Variables Used in Templates
Order Variables
{order_number}- Order ID{order_date}- Order date{order_total}- Total amount{order_status}- Current status{order_url}- Link to view order{order_item_table}⚠️ MISMATCH - Should beorder_items_table
Customer Variables
{customer_name}- Customer full name{customer_email}- Customer email{customer_username}- Username (for new accounts){customer_password}- Temporary password (for new accounts)
Store Variables
{store_name}- Store name{store_url}- Store URL{store_email}- Store contact email
Payment Variables
{payment_method}- Payment method used{payment_status}- Payment status{transaction_id}- Transaction ID
Shipping Variables
{shipping_address}- Full shipping address{tracking_number}- Shipment tracking number{carrier}- Shipping carrier
Date Variables
{completion_date}- Order completion date{cancellation_date}- Order cancellation date
Recommendations
Option 1: Keep Current Syntax (Easiest)
Pros:
- No changes needed
- Users already familiar
- Clear boundaries for cards
Cons:
- Not standard Markdown
- Verbose
Action: Just fix the variable mismatch
Option 2: Simplified Shortcode
[card:hero]
Content here
[/card]
[button:solid](https://example.com)Click me[/button]
Pros:
- Shorter, cleaner
- Still clear
Cons:
- Still not standard Markdown
- Requires converter changes
Option 3: HTML + Markdown (Hybrid)
<div class="card card-hero">
**Content** with markdown
</div>
<a href="url" class="button">Click me</a>
Pros:
- Standard Markdown allows inline HTML
- No custom parsing needed
Cons:
- Verbose
- Less user-friendly
Option 4: Attributes Syntax (Most Markdown-like)
> **Order Number:** #{order_number}
> **Order Date:** {order_date}
{: .card .card-hero}
[Click me](https://example.com){: .button .button-solid}
Pros:
- More Markdown-like
- Compact
Cons:
- Complex to parse
- Not widely supported
- Users may not understand
Recommended Action Plan
Immediate Fixes (Priority 1)
- ✅ Fix
<br>rendering - DONE! - ⚠️ Fix variable mismatch:
- Change
order_item_table→order_items_tablein DefaultTemplates.php - OR change
order_items_table→order_item_tablein EditTemplate.tsx preview
- Change
- Add all missing variables to preview sample data
Short-term (Priority 2)
- Document all variables - Create user-facing documentation
- Add variable autocomplete in markdown editor
- Add variable validation - warn if variable doesn't exist
Long-term (Priority 3)
- Consider syntax improvements - Get user feedback first
- Add visual card/button inserter - UI buttons to insert syntax
- Add syntax highlighting in markdown editor
Variable Replacement Issue
The underscore removal ({order_item_table} → {orderitemtable}) suggests HTML sanitization is happening somewhere. Need to check:
- Frontend: DOMPurify or similar sanitizer?
- Backend: WordPress
wp_kses()or similar? - Email client: Some email clients strip underscores?
Solution: Use consistent naming without underscores OR fix sanitizer to preserve variable syntax.
Next Steps
- Fix variable naming mismatch
- Test all variables in preview
- Document syntax for users
- Get feedback on syntax preferences
- Consider improvements based on feedback