WPML
상태
개발자가 해결함
해결된 버전
Blocksy Companion 2.0.33
관련 플러그인/테마
Blocksy
주제 태그
Compatibility

문제 개요

Blocksy 테마에서 WPML과 함께 Products Tab 기능을 사용할 때, 보조 언어로 번역된 탭이 프런트엔드에서 원본 언어로 잘못 표시될 수 있습니다.

임시 해결 방법

계속하기 전에 사이트의 전체 백업을 생성했는지 확인하세요.


  • …/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;
    }

알려진 모든 문제 →