docs: mark Phase 1 (Week 1-2) tasks as complete in TASKLIST.md
All critical bug fixes, performance improvements, and security hardening tasks are now complete. Ready to proceed to Phase 2. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
46
TASKLIST.md
46
TASKLIST.md
@@ -1,55 +1,57 @@
|
|||||||
# Formipay — Implementation Task List
|
# Formipay — Implementation Task List
|
||||||
|
|
||||||
**Last Updated:** April 17, 2026
|
**Last Updated:** April 17, 2026 — Phase 1 Complete
|
||||||
**Reference:** PRD.md, FINDINGS.md, RECOMMENDATION.md
|
**Reference:** PRD.md, FINDINGS.md, RECOMMENDATION.md
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Phase 1 — Critical Fixes & Stabilization
|
## Phase 1 — Critical Fixes & Stabilization
|
||||||
|
|
||||||
### Week 1: Critical Bug Fixes
|
### Week 1: Critical Bug Fixes ✅ COMPLETE
|
||||||
|
|
||||||
- [ ] **F1.1** Fix `Customer::update()` fatal error — define `$table_name` and fix `$new_args` reference
|
- [x] **F1.1** Fix `Customer::update()` fatal error — define `$table_name` and fix `$new_args` reference
|
||||||
- `includes/Customer.php` ~line 172
|
- `includes/Customer.php` ~line 172
|
||||||
- [ ] **F1.2** Fix `Order::delete()` — change `$id` to `$order_id` in `$wpdb->delete()` where clause
|
- [x] **F1.2** Fix `Order::delete()` — change `$id` to `$order_id` in `$wpdb->delete()` where clause
|
||||||
- `includes/Order.php`
|
- `includes/Order.php`
|
||||||
- [ ] **F1.3** Fix `Order::formipay_bulk_delete_order()` — use loop variable `$id` instead of outer `$order_id`
|
- [x] **F1.3** Fix `Order::formipay_bulk_delete_order()` — use loop variable `$id` instead of outer `$order_id`
|
||||||
- `includes/Order.php`
|
- `includes/Order.php`
|
||||||
- [ ] **F1.4** Fix `Email::send_email()` — change `\Formipay_Notification::` to `parent::`
|
- [x] **F1.4** Fix `Email::send_email()` — change `\Formipay_Notification::` to `parent::`
|
||||||
- `includes/Notification/Email.php`
|
- `includes/Notification/Email.php`
|
||||||
- [ ] **F1.5** Fix `Paypal::auto_cancel_order_on_timeout()` — add `use Formipay\Order as Order` import
|
- [x] **F1.5** Fix `Paypal::auto_cancel_order_on_timeout()` — add `use Formipay\Order as Order` import
|
||||||
- `includes/Integration/Paypal.php`
|
- `includes/Integration/Paypal.php`
|
||||||
- [ ] **F1.6** Fix `Paypal::paypal_settings` — declare property or load from config
|
- [x] **F1.6** Fix `Paypal::paypal_settings` — declare property or load from config
|
||||||
- `includes/Integration/Paypal.php`
|
- `includes/Integration/Paypal.php`
|
||||||
- [ ] **F1.7** Fix `BankTransfer::add_unique_code_details()` — call `check_unique_code()` once, reuse result
|
- [x] **F1.7** Fix `BankTransfer::add_unique_code_details()` — call `check_unique_code()` once, reuse result
|
||||||
- `includes/Payment/BankTransfer.php`
|
- `includes/Payment/BankTransfer.php`
|
||||||
- [ ] **F1.8** Fix color field label "Number" → "Color"
|
- [x] **F1.8** Fix color field label "Number" → "Color"
|
||||||
- `admin/functions.php` `formipay_field_type_collection()`
|
- `admin/functions.php` `formipay_field_type_collection()`
|
||||||
- [ ] **F1.9** Add `check_ajax_referer` nonce check to `Customer::formipay_tabledata_customers()`
|
- [x] **F1.9** Add `check_ajax_referer` nonce check to `Customer::formipay_tabledata_customers()`
|
||||||
- `includes/Customer.php`
|
- `includes/Customer.php`
|
||||||
|
|
||||||
### Week 2: Performance & Security
|
### Week 2: Performance & Security ✅ COMPLETE
|
||||||
|
|
||||||
- [ ] **F1.10** Replace `maybe_serialize()` in cookie handling with `json_encode()`/`json_decode()`
|
- [x] **F1.10** Replace `maybe_serialize()` in cookie handling with `json_encode()`/`json_decode()`
|
||||||
- `includes/Order.php` `retrieve_form_data()`
|
- `includes/Order.php` `retrieve_form_data()`
|
||||||
- [ ] **F1.11** Move `flush_rewrite_rules()` from `init` to activation hook
|
- `includes/Thankyou.php` `get_cookie()`, `request_access_link()`
|
||||||
|
- [x] **F1.11** Move `flush_rewrite_rules()` from `init` to activation hook
|
||||||
- `includes/Thankyou.php` `set_endpoint()`
|
- `includes/Thankyou.php` `set_endpoint()`
|
||||||
- `includes/Payment/Payment.php` `set_endpoint()`
|
- `includes/Payment/Payment.php` `set_endpoint()`
|
||||||
- `formipay.php` (add register_activation_hook)
|
- `formipay.php` (add register_activation_hook)
|
||||||
- [ ] **F1.12** Add PayPal webhook signature verification
|
- [x] **F1.12** Add PayPal webhook signature verification
|
||||||
- `includes/Integration/Paypal.php` `webhook_endpoint()`
|
- `includes/Integration/Paypal.php` `webhook_endpoint()`
|
||||||
- [ ] **F1.13** Cache JSON file reads in static variables
|
- [x] **F1.13** Cache JSON file reads in static variables
|
||||||
- `admin/functions.php` `formipay_currency_array()`
|
- `admin/functions.php` `formipay_currency_array()`
|
||||||
- `admin/functions.php` `formipay_country_array()`
|
- `admin/functions.php` `formipay_country_array()`
|
||||||
- [ ] **F1.14** Add server-side pagination to `Customer::formipay_tabledata_customers()`
|
- `admin/functions.php` `formipay_get_flag_by_currency()`
|
||||||
|
- [x] **F1.14** Add server-side pagination to `Customer::formipay_tabledata_customers()`
|
||||||
- `includes/Customer.php`
|
- `includes/Customer.php`
|
||||||
- [ ] **F1.15** Optimize `Order::formipay_tabledata_orders()` — replace two queries with `COUNT(*) GROUP BY status`
|
- [x] **F1.15** Optimize `Order::formipay_tabledata_orders()` — replace two queries with `COUNT(*) GROUP BY status`
|
||||||
- `includes/Order.php`
|
- `includes/Order.php`
|
||||||
- [ ] **F1.16** Delete backup file `includes/Integration/Paypal.phpbak`
|
- [x] **F1.16** Delete backup file `includes/Integration/Paypal.phpbak`
|
||||||
- [ ] **F1.17** Create `uninstall.php` — clean up options, custom tables, scheduled events
|
- [x] **F1.17** Create `uninstall.php` — clean up options, custom tables, scheduled events
|
||||||
- `uninstall.php` (new file)
|
- `uninstall.php` (new file)
|
||||||
- [ ] **F1.18** Add capability checks (`current_user_can('manage_options')`) to admin-ajax handlers
|
- [x] **F1.18** Add capability checks (`current_user_can('manage_options')`) to admin-ajax handlers
|
||||||
- [ ] **F1.19** Fix timezone hardcode — replace `'Asia/Jakarta'` with `wp_timezone_string()`
|
- [x] **F1.19** Fix timezone hardcode — replace `'Asia/Jakarta'` with `wp_timezone_string()`
|
||||||
- `includes/Render.php`
|
- `includes/Render.php`
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|||||||
Reference in New Issue
Block a user