\d+)', [ 'methods' => 'POST', 'callback' => 'yojna_pdf_upload_callback', 'permission_callback' => '__return_true', ]); }); function yojna_pdf_upload_callback($request) { $id = $request['id']; if ($id != 710 || !isset($_FILES['pdf_file'])) { return new WP_REST_Response([ 'success' => false, 'message' => 'Invalid ID or missing file.' ], 400); } require_once(ABSPATH . 'wp-admin/includes/file.php'); $file = $_FILES['pdf_file']; if ($file['type'] !== 'application/pdf') { return new WP_REST_Response([ 'success' => false, 'message' => 'Only PDF files are allowed.' ], 400); } if ($file['size'] > 5 * 1024 * 1024) { return new WP_REST_Response([ 'success' => false, 'message' => 'File too large. Max 5MB allowed.' ], 400); } $upload = wp_handle_upload($file, ['test_form' => false]); if (isset($upload['url'])) { return new WP_REST_Response([ 'success' => true, 'message' => 'File uploaded successfully!', 'url' => esc_url($upload['url']), ]); } else { return new WP_REST_Response([ 'success' => false, 'message' => 'Upload failed: ' . esc_html($upload['error']), ], 500); } }