8.3 KiB
8.3 KiB
Formipay — Implementation Task List
Last Updated: April 18, 2026 — Phase 1 Complete, Weeks 3-5 Complete Reference: PRD.md, FINDINGS.md, RECOMMENDATION.md
Phase 1 — Critical Fixes & Stabilization
Week 1: Critical Bug Fixes ✅ COMPLETE
- F1.1 Fix
Customer::update()fatal error — define$table_nameand fix$new_argsreferenceincludes/Customer.php~line 172
- F1.2 Fix
Order::delete()— change$idto$order_idin$wpdb->delete()where clauseincludes/Order.php
- F1.3 Fix
Order::formipay_bulk_delete_order()— use loop variable$idinstead of outer$order_idincludes/Order.php
- F1.4 Fix
Email::send_email()— change\Formipay_Notification::toparent::includes/Notification/Email.php
- F1.5 Fix
Paypal::auto_cancel_order_on_timeout()— adduse Formipay\Order as Orderimportincludes/Integration/Paypal.php
- F1.6 Fix
Paypal::paypal_settings— declare property or load from configincludes/Integration/Paypal.php
- F1.7 Fix
BankTransfer::add_unique_code_details()— callcheck_unique_code()once, reuse resultincludes/Payment/BankTransfer.php
- F1.8 Fix color field label "Number" → "Color"
admin/functions.phpformipay_field_type_collection()
- F1.9 Add
check_ajax_referernonce check toCustomer::formipay_tabledata_customers()includes/Customer.php
Week 2: Performance & Security ✅ COMPLETE
- F1.10 Replace
maybe_serialize()in cookie handling withjson_encode()/json_decode()includes/Order.phpretrieve_form_data()includes/Thankyou.phpget_cookie(),request_access_link()
- F1.11 Move
flush_rewrite_rules()frominitto activation hookincludes/Thankyou.phpset_endpoint()includes/Payment/Payment.phpset_endpoint()formipay.php(add register_activation_hook)
- F1.12 Add PayPal webhook signature verification
includes/Integration/Paypal.phpwebhook_endpoint()
- F1.13 Cache JSON file reads in static variables
admin/functions.phpformipay_currency_array()admin/functions.phpformipay_country_array()admin/functions.phpformipay_get_flag_by_currency()
- F1.14 Add server-side pagination to
Customer::formipay_tabledata_customers()includes/Customer.php
- F1.15 Optimize
Order::formipay_tabledata_orders()— replace two queries withCOUNT(*) GROUP BY statusincludes/Order.php
- F1.16 Delete backup file
includes/Integration/Paypal.phpbak - F1.17 Create
uninstall.php— clean up options, custom tables, scheduled eventsuninstall.php(new file)
- F1.18 Add capability checks (
current_user_can('manage_options')) to admin-ajax handlers - F1.19 Fix timezone hardcode — replace
'Asia/Jakarta'withwp_timezone_string()includes/Render.php
Phase 2 — React Admin Foundation (Weeks 3-5 ✅)
⚠️ IMPORTANT: Read
MIGRATION_STRATEGY.mdbefore starting Phase 2
- Explains Vue → React coexistence strategy
- Documents custom Vue app in
admin-product-editor.jsthat needs recreation- Provides data compatibility requirements and testing strategy
See
MIGRATION_STRATEGY.mdfor detailed Vue → React migration approach
Week 3: Build Pipeline ✅ COMPLETE
- F2.1 Initialize
package.jsonwith@wordpress/scripts - F2.2 Create
webpack.config.jsextending wp-scripts - F2.3 Set up
src/admin/directory structure - F2.4 Create API client (
src/admin/api/client.js) with nonce handling - F2.5 Create admin page shell component (sidebar + routing)
- F2.6 Register admin menu pages in PHP that render React mount points
Week 4: Form Builder ✅ COMPLETE
- F2.7 Build field palette component (drag-and-drop source)
- F2.8 Build form canvas component (drop target)
- F2.9 Build field settings panel
- F2.10 Build live preview renderer
- F2.11 Connect to existing PHP save/load endpoints
- F2.12 Replace Vue/Classic Editor metabox with React form builder
Week 5: Order Management & Dashboard ✅ COMPLETE
- F2.13 Build order list page with filters (status, date, search)
- F2.14 Build order detail view (replace Handlebars templates)
- F2.15 Build status change workflow with timeline
- F2.16 Build analytics dashboard (order count, revenue, charts)
- F2.17 Build notification log viewer
Week 6: Settings & Editors
- F2.18 Build global settings page (replace WPCFTO)
- F2.19 Build product editor page (includes variation pricing table)
- See
MIGRATION_STRATEGY.md— custom Vue app inadmin-product-editor.jsmust be recreated in React - Features: multi-currency flat/expanded pricing, attribute repeater sync, validation
- See
- F2.20 Build coupon editor page
- F2.21 Build access items manager
- F2.22 Build license management page
- F2.23 Remove/deprecate Vue admin code
- After all React admin pages are working, remove
admin/assets/vue/if exists - Remove WPCFTO framework dependency after F2.18
- Remove Vue.js from enqueued scripts after F2.19 complete
- After all React admin pages are working, remove
Phase 3 — Frontend Enhancements
Week 7-8: React Island Architecture
- F3.1 Add "Render Mode" setting to form admin (SSR / React)
- F3.2 Update
Render.php— output<div>mount point when React mode selected - F3.3 Build React form renderer component (
src/frontend/widgets/FormRenderer.jsx) - F3.4 Implement island hydration — React attaches to SSR HTML
- F3.5 Build multi-step form navigation component
- F3.6 Add real-time field validation in React mode
Week 9: Gutenberg Block
- F3.7 Create
block.jsonforformipay/form - F3.8 Build
edit.jsx— form selector + live preview in editor - F3.9 Build
render.php— server-side rendering for frontend - F3.10 Register block in PHP
- F3.11 Test block in Gutenberg editor
Week 10: Customer Portal
- F3.12 Build customer order history page (React)
- F3.13 Build order detail / download access page (React)
- F3.14 Build access link request form (React)
- F3.15 Integrate with WordPress user accounts
- F3.16 Register
[formipay_my_orders]shortcode
Phase 4 — Missing Features
Week 11-12: Payment & Commerce
- F4.1 Implement
ExchangeRateAPI— fetch rates, cache, convertincludes/Payment/ExchangeRateAPI.php
- F4.2 Implement License API endpoints (verify, activate, deactivate, revoke)
includes/LicenseAPI.php
- F4.3 Add Stripe payment gateway
includes/Integration/Stripe.php(new)
- F4.4 Add tax calculation engine
includes/Tax.php(new)
- F4.5 Add product variations on frontend (render dropdown, process selection)
includes/Render.php,includes/Order.php
Week 13-14: Stock & Shipping
- F4.6 Implement stock management — decrement on order, validate before submit
includes/Product.php(new or extend)
- F4.7 Add "out of stock" frontend messaging
includes/Render.php
- F4.8 Add refund workflow (status change + payment reversal)
includes/Order.php, gateway integrations
Week 15-16: Advanced Features
- F4.9 Build donation form mode (pay-what-you-want, suggested amounts)
includes/Render.php
- F4.10 Add PDF invoice generation
includes/Invoice.php(new)
- F4.11 Add CSV export for orders, customers, products
- Admin pages
- F4.12 Add outgoing webhook system
includes/Webhook.php(new)
- F4.13 Add rate limiting on public endpoints
includes/Order.php,includes/Coupon.php
- F4.14 Wrap all hardcoded English strings in
__()translation functions- All PHP + JS files
- F4.15 Generate
.potfile for translators - F4.16 Add form analytics (view tracking, conversion rate)
includes/Analytics.php(new)
Definition of Done (per task)
- Code compiles without errors
- No PHP warnings/notices in debug mode
- Manual test passes for the specific fix/feature
- No regression in existing functionality
- Security-sensitive changes reviewed
End of task list.