JezK
Edit File: order-edit.js
jQuery(document).ready(function($) { // Open edit modal $('.edit-order-btn').on('click', function() { const orderId = $(this).data('order-id'); loadOrderDetails(orderId); }); // Close modal $('.modal .close').on('click', function() { closeEditModal(); }); // Handle form submission $('#edit-order-form').on('submit', function(e) { e.preventDefault(); saveOrderChanges(); }); function loadOrderDetails(orderId) { $.ajax({ url: ajaxurl, type: 'POST', data: { action: 'get_order_details', order_id: orderId, nonce: orderEdit.nonce }, success: function(response) { if (response.success) { populateForm(response.data); $('#edit-order-modal').show(); } else { alert('Error loading order details'); } } }); } function populateForm(data) { $('#edit-order-id').val(data.id); $('#edit-customer-name').val(data.customer_name); $('#edit-phone').val(data.phone); $('#edit-address').val(data.address); $('#edit-start-date').val(data.start_date); $('#edit-preferred-days').val(data.preferred_days); // Populate meta fields const metaContainer = $('#edit-order-meta'); metaContainer.empty(); data.meta_data.forEach(function(meta) { metaContainer.append(` <div class="form-row"> <label>${meta.key}:</label> <input type="text" name="meta[${meta.key}]" value="${meta.value}"> </div> `); }); } function saveOrderChanges() { const formData = { action: 'save_order_details', nonce: orderEdit.nonce, order_id: $('#edit-order-id').val(), customer_name: $('#edit-customer-name').val(), phone: $('#edit-phone').val(), address: $('#edit-address').val(), start_date: $('#edit-start-date').val(), preferred_days: $('#edit-preferred-days').val(), meta_data: {} }; // Collect meta data $('#edit-order-meta input').each(function() { formData.meta_data[$(this).attr('name')] = $(this).val(); }); $.ajax({ url: ajaxurl, type: 'POST', data: formData, success: function(response) { if (response.success) { alert('Order updated successfully'); location.reload(); } else { alert('Error updating order'); } } }); } }); function closeEditModal() { document.getElementById('edit-order-modal').style.display = 'none'; }