WPML
상태
해결됨
해결된 버전
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;
} );

알려진 모든 문제 →