As part of the application process, we'd like you to complete the following challenge. If you have any questions, please respond to the last email you received from our team.
Requirements
Using the GET accessible endpoint https://caseproof.s3.amazonaws.com/dev-challenge/table.json (there are no parameters to/from required), create an AJAX endpoint in WordPress that:
- Can be used when logged out or in
- Calls the above endpoint to get the data to return
- When called, always returns the data, but regardless of when/how many times it is called, never requests the data from our server more than 1 time per hour
Then create the following:
- A block or shortcode for the front end that, when loaded, uses JavaScript to contact your AJAX endpoint and present the returned data formatted into a table-like display
- A WP CLI command that can be used to force the refresh of this data the next time the AJAX endpoint is called
- A WordPress admin page that displays this data in the style of the MemberPress plugin's admin page including the branded header with our logo (you can download the MemberPress logo assets here)
- A button to refresh the data
- A search field above the admin table that, when submitted, will make the table only display the rows that have a cell matching any part of the entered search term
Lastly, please:
- Organize and package the code as a WordPress plugin zip file
Make sure you properly escape, sanitize, and validate the data in each step as appropriate using built-in PHP and WordPress functions.
Please do not submit code built from a boilerplate.