1. <?php
  2. /**
  3. * Function to attach response header metadata for testing.
  4. *
  5. * @param WP_Error $error WP_Error object containing error information.
  6. */
  7. function test_response_headers( WP_Error $error ) {
  8. // Check if there's an error
  9. if ( ! empty( $error ) ) {
  10. // Add custom header for testing
  11. header( 'X-Test-Response: Error occurred' );
  12. // Add more metadata as needed
  13. header( 'X-Test-Status: ' . $error->code );
  14. header( 'X-Test-Message: ' . $error->message );
  15. header( 'X-Test-Type: ' . $error->type );
  16. // Optionally, add other relevant metadata
  17. if ( isset( $error->data ) ) {
  18. header( 'X-Test-Data: ' . json_encode( $error->data ) );
  19. }
  20. // Output error message
  21. echo 'Error: ' . esc_html( $error->message );
  22. } else {
  23. // Add custom header for successful response
  24. header( 'X-Test-Response: Success' );
  25. // Add metadata for successful response
  26. header( 'X-Test-Status: 0' );
  27. header( 'X-Test-Message: Operation completed successfully' );
  28. // Optionally, add other relevant metadata
  29. // header( 'X-Test-Data: ' . json_encode( $data ) );
  30. echo 'Success!';
  31. }
  32. exit; //Important: Stop script execution after headers are sent.
  33. }
  34. /**
  35. * Example usage within a WordPress context.
  36. *
  37. * @param WP_Error $error WP_Error object.
  38. */
  39. add_action( 'template_redirect', 'test_response_headers' );
  40. ?>

Add your comment