- 상태
- 해결됨
- 보고된 제품
- WPML Multilingual & Multicurrency for WooCommerce 4.12.6
- 해결된 버전
- WooCommerce Multilingual & Multicurrency 5.5.2
문제 개요
이제 WPML Multilingual & Multicurrency for WooCommerce에서 상품 리뷰를 번역하고 표시할 수 있습니다. 하지만 이러한 리뷰에 대한 답글을 번역하는 것은 아직 불가능합니다.
임시 해결 방법
진행하기 전에 사이트를 전체 백업하세요.
- wp-content/plugins/woocommerce-multilingual/classes/Reviews/Translations/FrontEndHooks.php 파일을 편집하세요.
- 다음 코드를:
private static function isNonEmptyReview( $comment ) { return Obj::prop( 'comment_content', $comment ) && Relation::propEq( 'comment_type', self::COMMENT_TYPE, $comment ); }다음으로 교체하세요:
private static function isNonEmptyReview( $comment ) { return Obj::prop( 'comment_content', $comment ) && Relation::propEq( 'comment_type', self::COMMENT_TYPE, $comment ) || Relation::propEq( 'comment_type', 'comment', $comment ); } - 그런 다음 wp-content/plugins/woocommerce-multilingual/classes/Reviews/Translations/Mapper.php 파일을 여세요.
- 다음 코드를:
private function getUnregisteredReviews() { // phpcs:disable WordPress.DB.PreparedSQL.NotPrepared $q = "SELECT c.comment_ID, c.comment_post_ID, c.comment_content, c.comment_type, tr.language_code, st.name, st.value FROM {$this->wpdb->comments} AS c LEFT JOIN {$this->wpdb->prefix}icl_translations AS tr ON tr.element_id = c.comment_post_ID AND tr.element_type = 'post_product' LEFT JOIN {$this->wpdb->prefix}icl_strings AS st ON c.comment_content = st.value AND st.context = '" . FrontEndHooks::CONTEXT . "' WHERE c.comment_type = '" . FrontEndHooks::COMMENT_TYPE . "' AND st.name IS null"; return (array) $this->wpdb->get_results( $q ); }다음으로 교체하세요:
private function getUnregisteredReviews() { // phpcs:disable WordPress.DB.PreparedSQL.NotPrepared $q = "SELECT c.comment_ID, c.comment_post_ID, c.comment_content, c.comment_type, tr.language_code, st.name, st.value FROM {$this->wpdb->comments} AS c LEFT JOIN {$this->wpdb->prefix}icl_translations AS tr ON tr.element_id = c.comment_post_ID AND tr.element_type = 'post_product' LEFT JOIN {$this->wpdb->prefix}icl_strings AS st ON c.comment_content = st.value AND st.context = '" . FrontEndHooks::CONTEXT . "' WHERE c.comment_type = '" . FrontEndHooks::COMMENT_TYPE . "' OR c.comment_type = 'comment' AND st.name IS null"; return (array) $this->wpdb->get_results( $q ); } - 마지막으로 WooCommerce → WooCommerce Multilingual → 상태로 이동하여 문제 해결 링크를 클릭하세요.
- 번역할 상품 리뷰 등록을 선택하세요.
- 시작 버튼을 클릭하세요.