将评论标题字段设为必填字段-Woocommerce

时间:2019-01-04 06:58:37

标签: php html wordpress woocommerce

这是我用来在woocommerce评论表上添加标题的代码:

function add_review_title_field_on_comment_form() {
    echo '<p class="comment-form-title uk-margin-top"><label for="title">' . __( 'Review Headline', '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' );

add_action( 'comment_post', 'save_comment_review_title_field' );
function save_comment_review_title_field( $comment_id ){
    if( isset( $_POST['title'] ) )
      update_comment_meta( $comment_id, 'title', esc_attr( $_POST['title'] ) );
}

function get_review_title( $id ) {
    $val = get_comment_meta( $id, "title", true );
    $title = $val ? '<strong class="review-title" style="font-size:16px;">' . $val . '</strong>' : '';
    return $title;
}

由于此代码,我可以添加用于审核表单的标题,但这不是必需的,请检查

enter image description here

谁能建议我该如何设置此字段为必填项,请查看屏幕截图,我知道该怎么做才能设置任何必填字段,但这是功能函数php中出现的问题。

谢谢

1 个答案:

答案 0 :(得分:1)

Html5具有默认的required验证,因此请添加,请检查以下代码。

 function add_review_title_field_on_comment_form() {
    echo '<p class="comment-form-title uk-margin-top"><label for="title">' . __( 'Review Headline', 'text-domain' ) . '</label><input class="uk-input uk-width-large uk-display-block" type="text" name="title" id="title" required/></p>';

 }

然后在服务器端的函数中添加代码,以检查下面的代码。

function save_comment_review_title_field( $comment_id ){
    if( isset( $_POST['title'] ) && ! empty($_POST[ 'title' ]))
          update_comment_meta( $comment_id, 'title', esc_attr( $_POST['title'] ) );
      else
         wp_die( __('Please enter a valid title, its required.') );
 }

希望这会对您有所帮助。