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;
} );

所有已知问题 →