- الحالة
- محلولة
- أُبلغ عنها لـ
- WPML Multilingual & Multicurrency for WooCommerce 4.12.6
- تم حلها في
- WooCommerce Multilingual & Multicurrency 5.5.2
نظرة عامة على المشكلة
تتيح لك WPML متعدد اللغات وتعدد العملات لـ 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 متعدد اللغات → الحالة وانقر على الرابط استكشاف الأخطاء وإصلاحها.
- حدد تسجيل مراجعات المنتجات للترجمة.
- انقر على الزر بداية.