WPML
الحالة
محلولة
تم حلها في
4.10.0

نظرة عامة على المشكلة

بسبب بيانات تالفة محفوظة في قاعدة البيانات، يحدث ألا تُعرض ترجمات تسميات سمات المنتج على صفحة المنتج.

حل بديل مؤقت

نعمل على حل لهذه المشكلة، وفي غضون ذلك، يمكنك استخدام التعديل التالي. يُرجى القيام بذلك على موقع اختبار فقط، وإذا كنت معتاداً على تعديل كود PHP، وفقط بعد التأكد من وجود نسخة احتياطية كاملة وصالحة للعمل من موقعك.

يجب تطبيق التعديل التالي في الملف «wp-content/plugins/woocommerce-multilingual/inc/class-wcml-attributes.php» على السطر 379:

استبدل الكود التالي (الطريقة «get_attr_label_translations» بالكامل):

public function get_attr_label_translations( $product_id, $lang = false ) {
$trnsl_labels = get_post_meta( $product_id, 'attr_label_translations', true );</code>

if ( ! is_array( $trnsl_labels ) ) {
$trnsl_labels = [];
}

if ( isset( $trnsl_labels[ $lang ] ) ) {
return $trnsl_labels[ $lang ];
}

return $trnsl_labels;
}

بما يلي:

	public function get_attr_label_translations( $product_id, $lang = false ) {
		$trnsl_labels = get_post_meta( $product_id, 'attr_label_translations', true );

		$remove_empty_values = function ( $values ) {
			return wpml_collect( $values )->filter()->toArray();
		};

		if ( ! $lang && is_array( $trnsl_labels ) ) {
			return wpml_collect( $trnsl_labels )
				->map( $remove_empty_values )
				->toArray();
		}

		if ( isset( $trnsl_labels[ $lang ] ) ) {
			return $remove_empty_values( $trnsl_labels[ $lang ] );
		}

		return [];
	}

WPML 4.4.0 Beta


أصدرنا إصدار بيتا من شأنه حل هذه المشكلة. يُرجى الأخذ في الاعتبار أنه إصدار بيتا قيد الاختبار ولا ينبغي استخدامه في مواقع مباشرة. يمكنك تنزيله من هنا:
https://wpml.org/account/downloads/

جميع المشاكل المعروفة →