- 상태
- 해결됨
- 해결된 버전
- 4.12.0
문제 개요
제품을 번역한 후, 때때로 기본 언어의 제품 변형이 프런트엔드에서 더 이상 표시되지 않습니다.
이는 변형의 트랜션트가 기본 언어 코드 대신 번역된 언어 코드로 저장되기 때문입니다. 다른 언어의 페이지에서 계산될 경우 WooCommerce 옵션 상품의 하위 트랜션트가 때때로 잘못된 값으로 채워질 수 있습니다.
안타깝게도 어떤 상황에서 이 문제가 발생하는지 확인할 수 없었습니다.
임시 해결 방법
더 정확한 원인이 파악될 때까지 테마의 functions.php 파일에 다음 스니펫을 추가할 것을 권장합니다.
/**
* Prevent issues with product variations transient when it's
* computed in a secondary language page for a product in
* the default language.
*/
add_filter( 'woocommerce_variable_children_args', function( $args ) {
global $sitepress;
$parseQueryAction = [ $sitepress, 'parse_query' ];
if ( remove_action( 'parse_query', $parseQueryAction ) ) {
add_action( 'setted_transient', function() use ( $parseQueryAction ) {
add_action( 'parse_query', $parseQueryAction );
} );
}
return $args;
} );