JezK
Edit File: README.md
# Founder Link Plugin v2.0.0 Plugin WordPress untuk WooCommerce yang menghubungkan kedai online dengan sistem awak dan menghantar data order secara automatik. ## Ciri-ciri - ✅ Interface admin yang mudah digunakan - ✅ Verify access token dengan sistem awak - ✅ Hantar data order baru secara automatik - ✅ Hantar update status order - ✅ Validation dan error handling - ✅ Responsive design - ✅ Security dengan nonce dan sanitization ## Keperluan - WordPress 5.0 atau lebih tinggi - WooCommerce 3.0 atau lebih tinggi - PHP 7.4 atau lebih tinggi ## Pemasangan ### 1. Upload Plugin 1. Download semua fail plugin 2. Buat folder `founder-link` dalam `/wp-content/plugins/` 3. Upload semua fail ke dalam folder tersebut: ``` /wp-content/plugins/founder-link/ ├── founder-link.php (fail utama plugin) ├── assets/ │ ├── admin.css │ └── admin.js └── README.md ``` ### 2. Aktifkan Plugin 1. Pergi ke **Dashboard WordPress > Plugins** 2. Cari "Founder Link" dan klik **Activate** 3. Pastikan WooCommerce sudah dipasang dan aktif ### 3. Konfigurasi 1. Pergi ke **Dashboard > Founder Link** 2. Masukkan **API URL** sistem awak 3. Masukkan **Access Token** awak 4. Klik **Test Connection** untuk verify 5. Klik **Save Settings** selepas berjaya connect ## Struktur API Yang Diperlukan Plugin ini akan menghantar request ke sistem awak. Pastikan sistem awak ada endpoint berikut: ### 1. Verify Token Endpoint ``` POST /verify-token Headers: - Authorization: Bearer {access_token} - Content-Type: application/json Body: { "action": "verify_token" } Response (Success): { "success": true, "user": "Username atau Company Name" } Response (Error): { "success": false, "message": "Error message" } ``` ### 2. Orders Endpoint ``` POST /orders Headers: - Authorization: Bearer {access_token} - Content-Type: application/json Body: { "action": "new_order" atau "order_status_changed", "data": { "order_id": 123, "order_number": "1001", "status": "processing", "currency": "MYR", "total": 150.00, "subtotal": 130.00, "tax_total": 20.00, "shipping_total": 0.00, "date_created": "2024-01-15 10:30:00", "date_modified": "2024-01-15 10:30:00", "customer": { "id": 1, "email": "customer@example.com", "first_name": "John", "last_name": "Doe", "phone": "0123456789" }, "billing": { "first_name": "John", "last_name": "Doe", "company": "Company Name", "address_1": "123 Main St", "address_2": "Apt 4B", "city": "Kuala Lumpur", "state": "Selangor", "postcode": "50000", "country": "MY", "email": "customer@example.com", "phone": "0123456789" }, "shipping": { "first_name": "John", "last_name": "Doe", "company": "Company Name", "address_1": "123 Main St", "address_2": "Apt 4B", "city": "Kuala Lumpur", "state": "Selangor", "postcode": "50000", "country": "MY" }, "line_items": [ { "id": 1, "name": "Product Name", "product_id": 123, "variation_id": 0, "quantity": 2, "subtotal": 100.00, "total": 100.00, "sku": "PROD-001", "price": 50.00 } ], "payment_method": "bacs", "payment_method_title": "Direct Bank Transfer", "transaction_id": "TXN123456", "old_status": "pending", // untuk order_status_changed sahaja "new_status": "processing" // untuk order_status_changed sahaja }, "site_url": "https://yourstore.com", "timestamp": 1642234200 } ``` ## Cara Plugin Berfungsi ### 1. Connection Test - User masukkan API URL dan Access Token - Plugin hantar POST request ke `/verify-token` - Jika berjaya, plugin simpan credentials dan tunjuk status "Connected" ### 2. Order Sync - Setiap kali ada order baru, plugin auto hantar data ke `/orders` - Setiap kali status order berubah, plugin hantar update ke `/orders` - Plugin include semua data order, customer, dan line items ### 3. Error Handling - Plugin log semua error ke WordPress error log - Jika API down, plugin akan skip sync (tidak crash website) - User dapat test connection bila-bila masa ## Customization ### Hook Available ```php // Sebelum hantar data ke sistem add_action('founder_link_before_send_order', function($order_data, $action) { // Modify order data sebelum hantar return $order_data; }, 10, 2); // Selepas hantar data ke sistem add_action('founder_link_after_send_order', function($order_data, $action, $response) { // Log atau process response }, 10, 3); ``` ### Filter Available ```php // Modify API URL add_filter('founder_link_api_url', function($url, $endpoint) { // Customize API URL untuk endpoint tertentu return $url; }, 10, 2); // Modify order data sebelum hantar add_filter('founder_link_order_data', function($order_data, $order) { // Add custom fields atau modify existing data $order_data['custom_field'] = 'custom_value'; return $order_data; }, 10, 2); ``` ## Troubleshooting ### 1. Connection Failed - Pastikan API URL betul dan accessible - Pastikan Access Token valid - Check firewall settings - Enable WordPress debug mode untuk tengok error details ### 2. Orders Not Syncing - Check WordPress error logs - Verify connection status di admin page - Test API endpoint manually - Pastikan WooCommerce hooks berfungsi ### 3. Enable Debug Mode Tambah kod ini dalam `wp-config.php`: ```php define('WP_DEBUG', true); define('WP_DEBUG_LOG', true); define('WP_DEBUG_DISPLAY', false); ``` Error logs akan tersimpan di `/wp-content/debug.log` ## Security - Semua input di-sanitize dan validate - Access token disimpan secara selamat dalam database - AJAX requests protected dengan nonce - Hanya admin boleh access settings page ## Support Jika ada masalah: 1. Check error logs 2. Verify API endpoints 3. Test connection manually 4. Contact developer dengan error details ## Changelog ### v2.0.0 - Initial release - Admin interface untuk connection settings - Auto sync order data - Error handling dan logging - Security improvements