programing

WooCommerce 리뷰 양식에 "리뷰 제목" 필드를 추가하는 방법은?

elecom 2023. 9. 15. 20:44
반응형

WooCommerce 리뷰 양식에 "리뷰 제목" 필드를 추가하는 방법은?

WooCommerce의 리뷰 양식에 이 이미지와 같이 사용자 지정 필드를 추가합니다.

그런 다음 제목의 출력을 얻는 방법은 다음과 같습니다.

저는 단품 리뷰에 새로운 분야를 만드는 방법을 알고 있을 뿐입니다.해당 코드를 추가하여 php 파일:

$comment_form['comment_field'] .= '<p class="comment-form-title"><label for="title">' . esc_html__( 'Review title', 'woocommerce' ) . '&nbsp;<span class="required">*</span></label><input id="title" name="title" type="text" aria-required="true" required></input></p>';

그런데 이 내용을 데이터베이스에 저장하고 위의 댓글 내용을 출력하려면 어떻게 해야 합니까?

편집: 함수들에 이 코드를 써서 내가 원하는 것들을 성취할 때까지 많은 방법들을 시도했습니다.나의 아이 테마에 pph.

1) 리뷰 주석 양식에 사용자 정의 필드 "리뷰 제목" 추가:

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) 해당 필드 값을 데이터베이스의 wp_commentmeta 테이블에 저장합니다.

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) 다음을 사용하여 해당 필드 출력 값을 검색합니다.

var $title = get_comment_meta( $comment->comment_ID, "title", true );
echo $title;

이제 유일하게 누락된 것은 댓글 텍스트 또는 리뷰 텍스트 바로 앞에 해당 필드의 출력을 어떻게 배치할 수 있습니까?

제가 해결책을 찾기엔 너무 좋은 것 같아요. 제가 찾고 있는 것에 대한 제 대답입니다. 아마 도움이 될 수 있을 겁니다!

1) 당신의 기능으로 가세요.부모 또는 자녀 테마에 php를 붙인 후 아래 코드를 붙여넣어 리뷰 코멘트 양식에 사용자 정의 필드 "리뷰 제목"을 추가합니다.

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) 마지막 코드 바로 위에 이 코드를 추가하여 해당 필드 값을 데이터베이스의 wp_commentmeta 테이블에 저장합니다.

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'] ) );
}

3) 해당 필드 출력 값을 검색하려면 아래 코드를 사용합니다.

var $title = get_comment_meta( $comment->comment_ID, "title", true );
echo $title;

참고: 댓글 루프에서만 작동합니다!

4) 각 주석 텍스트 앞에 해당 필드 출력을 추가하려면 함수에 대한 새 함수를 만들어야 합니다.php는 다음과 같습니다.

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

그런 다음 아래 코드를 WooCommerce 템플릿 파일 리뷰에 추가해야 합니다.php 또는 woocmerce_review_before_comment_meta hook을 사용할 수 있지만, 제 경우에는 그 코드를 작성했습니다.echo get_review_title( $comment->comment_ID );

바로 직후에

do_action( 'woocommerce_review_before_comment_meta', $comment );

도움이 되길 바래요!

언급URL : https://stackoverflow.com/questions/50633080/how-to-add-a-review-title-field-on-woocommerce-reviews-form

반응형