WPML
Trạng thái
Đã giải quyết
Được báo cáo cho
WPML Multilingual & Multicurrency for WooCommerce 4.12.6
Đã giải quyết trong
WooCommerce Multilingual & Multicurrency 5.5.2

Tổng quan về lỗi

WPML Đa ngôn ngữ & Đa tiền tệ cho WooCommerce hiện cho phép bạn dịch và hiển thị các đánh giá sản phẩm. Tuy nhiên, hiện tại vẫn chưa thể dịch các phản hồi cho những đánh giá đó.

Giải pháp tạm thời

Vui lòng tạo một bản sao lưu đầy đủ cho trang web của bạn trước khi tiếp tục.


  1. Chỉnh sửa tệp wp-content/plugins/woocommerce-multilingual/classes/Reviews/Translations/FrontEndHooks.php.

  2. Thay thế:
    	private static function isNonEmptyReview( $comment ) {
    		return Obj::prop( 'comment_content', $comment )
    		       && Relation::propEq( 'comment_type', self::COMMENT_TYPE, $comment );
    	}

    Bằng:

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


  3. Sau đó, mở tệp wp-content/plugins/woocommerce-multilingual/classes/Reviews/Translations/Mapper.php.

  4. Thay thế:
    	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 );
    	}

    Bằng:

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


  5. Cuối cùng, đi tới WooCommerceWooCommerce MultilingualTrạng thái và nhấp vào liên kết Khắc phục sự cố.

  6. Chọn Đăng ký đánh giá sản phẩm để dịch.

  7. Nhấp vào nút Bắt đầu.

Tất cả các lỗi đã ghi nhận →