I want to add a custom field to my reviews form on WooCommerce just like this image:
And then how to get the output of that title just like that:
I just know how to create a new field on the single-product-reviews.php file by adding that code:
$comment_form['comment_field'] .= '<p class="comment-form-title"><label for="title">' . esc_html__( 'Review title', 'woocommerce' ) . ' <span class="required">*</span></label><input id="title" name="title" type="text" aria-required="true" required></input></p>';
But, how can I save this on the database and how can I output this title above comment content?
EDIT: I have tried many ways until I achieve some of what I want by writing this code on functions.php on my child theme.
1) Adding the custom field "Review title" on reviews comment form:
function add_review_title_field_on_comment_form() {
echo '<p class="comment-form-title uk-margin-top"><label for="title">' . __( 'Review title', 'text-domain' ) . '</label><input class="uk-input uk-width-large uk-display-block" type="text" name="title" id="title"/></p>';
}
add_action( 'comment_form_logged_in_after', 'add_review_title_field_on_comment_form' );
add_action( 'comment_form_after_fields', 'add_review_title_field_on_comment_form' );
2) Save that field value on wp_commentmeta table on the database:
add_action( 'comment_post', 'instacraftcbd_review_title_save_comment' );
function instacraftcbd_review_title_save_comment( $comment_id ){
if( isset( $_POST['title'] ) )
update_comment_meta( $comment_id, 'title', esc_attr( $_POST['title'] ) );
}
3) Retrieve that field output value by using this:
var $title = get_comment_meta( $comment->comment_ID, "title", true );
echo $title;
Now the only missing thing, how can I place the output of that field just before the comment text or review text?