== REST API Comment == Contributors: joaquiminteresting Tags: wp, rest, api, rest api, comment, json, rest api comments, wordpress comments, posts, post comments, reply comments Requires at least: 5.5 Tested up to: 5.8.1 Requires PHP: 7.0 Stable tag: 1.0.2 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html REST API Comment adds in the 'Comment creation' function to the Wordpress REST API. == Description == If you wish to 'Create comments' using REST API, *without* exposing Administrator credentials to the Front-End application, you are at the right place. Since WordPress 4.7, REST API was natively included in WordPress. In order to 'Create a comment' , the authentication for a user with 'Administrator' role is required. While this is a deliberately done for security reasons, such implementation makes it very hard for Front-End applications to implement a simple 'Post Comment' or 'Reply Comment' function. This plugin fulfils such requirement by extending the existing WordPress REST API endpoints. Requirements: **Minimum PHP version: 7.0** **Minimum Wordpress version: 5.5** Installation: Download the plugin form wordpress marketplace install it like any other WordPress plugin. After the installation activate the plugin through the 'Plugins' menu in WordPress Endpoint: When this plugin is installed one new endpoint is added to the **wp/v2** namespace. | Endpoint | HTTP Verb | Permalinks | | ------------------------------------- | --------- | ---------- | | */wp-json/wp/v2/comments/create | POST | enabled | | */?rest_route=/wp/v2/comments/create | POST | disabled | Usage: 1. Create a Comment To create a comment using REST API, send a `POST` request to: > `/wp-json/wp/v2/comments/create` - if permalinks is enabled on your wordpress website. Or > `/?rest_route=/wp/v2/comments/create` if permalinks is not enabled on your wordpress website. With a **JSON body**, as shown bellow: ```Json { "post": "Post ID", "author_name": "Comment Author's name", "author_email": "Comment Author's email", "content": "Comment content" } ``` The **content** may also be send as an object: ```Json { "post": "Post ID", "author_name": "Comment Author's name", "author_email": "Comment Author's email", "content": { "raw":"Comment content" } } ``` Set header to: ``` content-type: application/json ``` If successful, you should receive a response with the data of the created comment: ```Json { "id": "[comment id]", "status": "[comment status]", "message":"[server response message]" } ``` In response header the status code should be: ```Http HTTP 201 Created ``` 2. Reply a comment To reply a comment you just need to add the field **parent** for the parent comment to the **JSON body** ```Json { "post": "Post ID", "author_name": "Comment Author's name", "author_email": "Comment Author's email", "content": "Comment content", "parent":"Comment parent ID" } ``` > Note: Ensure the **parent** is a comment id that belongs to the post informed in the field **post**. The comment parent post id must match the post id otherwise the following error will be shown: ```Json { "code": "rest_post_mismatch_parent_post_id", "message": "Post ID and Parent post ID does not match", "data": { "status": 400 } } ``` == Frequently Asked Questions == = Why do I need REST API Comment? = If you're planning on using your WordPress news website/blog as a Backend, and you're consuming RESTful api, you'll most probably need to **Create comments** and **Reply comments** via REST API. This is precisely what this plugin does. = Is it secure? = Great question! For the time being, this plugin just provides the same experience any wordpress site provides by default witch is allowing any one to comment a post requiring basic infos such as: name, email address and the content, without authentication. All security was followed based on the wordpress core code. = There's a bug, what do I do? = Please create a ticket on the [support team](mailto:sopport@appsdabanda.com) or open an issue in [github repository](https://github.com/JoaquimInteresting/rest-api-comment). We'll get back to you as soon as possible. == Screenshots == 1. This Screenshot is a sample REST API POST request using REST API Comment. == Changelog == = 1.0.2 = * It prevents comments for posts with comment status 'closed' * It prevents comments for posts with post status different from 'publish' * Now it requires at least wordpress version 5.5 = 1.0.1 = * Now it requires at least wordpress version 4.7 * Response was updated * README was Updated * Bug fixed = 1.0.0 = * Initial Release * Create comment * Reply comment == Contact == If there is any thing to say about the plugin fill free to [contact us](mailto:sopport@appsdabanda.com).