WPML
الحالة
محلولة بواسطة المطور
تم حلها في
Blocksy Companion 2.0.33
الإضافة/القالب ذو الصلة
Blocksy
وسوم الموضوع
Compatibility

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

في قالب Blocksy، عند استخدام ميزة Products Tab مع WPML، قد تُعرض علامات التبويب المترجمة إلى لغة ثانوية بشكل غير صحيح باللغة الأصلية في الواجهة الأمامية.

حل بديل مؤقت

تأكد من أخذ نسخة احتياطية كاملة لموقعك قبل المتابعة.


  • افتح الملف …/wp-content/plugins/blocksy-companion-pro/framework/premium/extensions/woocommerce-extra/features/custom-tabs/feature.php

  • ابحث عن السطر 139.

  • استبدل:
    $all_products_tabs = get_posts([
    	'numberposts' => -1,
    	'post_type' => $this->post_type,
    ]);

  • بـ:
    $all_products_tabs = get_posts([
    	'numberposts' => -1,
    	'post_type' => $this->post_type,
    	// WPML Workaround for compsupp-7255 - PART 1
    	'suppress_filters' => false
    ]);

  • بعد ذلك، افتح الملف …/wp-content/plugins/blocksy-companion-pro/framework/features/conditions/rules-resolver.php

  • ابحث عن السطر 364.

  • استبدل:
    if (
    	isset($rule['payload'])
    	&&
    	isset($rule['payload']['post_id'])
    	&&
    	$post_id
    	&&
    	intval($post_id) === intval($rule['payload']['post_id'])
    ) {
    	return true;
    }

  • بـ:
    // WPML Workaround for compsupp-7255 - Part 2
    if ( class_exists('Sitepress') ) {
    	$rule['payload']['post_id'] = apply_filters( 'wpml_object_id', $rule['payload']['post_id'], get_post_type($rule['payload']['post_id']) , TRUE  );
    }
    
    if (
    	isset($rule['payload'])
    	&&
    	isset($rule['payload']['post_id'])
    	&&
    	$post_id
    	&&
    	intval($post_id) === intval($rule['payload']['post_id'])
    ) {
    	return true;
    }

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