WPML
状态
未解决
报告针对
WPML Multilingual & Multicurrency for WooCommerce 5.2.1
主题标签
Bug, WCML

问题概述

激活适用于 WooCommerce 的 WPML 多语言和多货币时,通过REST-API批量更新产品的响应时间会明显更长。

临时解决方法

在使用这些临时解决方法之前,请务必考虑可能存在的注意事项。
并非所有数据都会在翻译之间同步,且可能会显示过时的信息。

要尝试解决产品更新问题,您可以尝试:

add_filter('rest_pre_dispatch', function ($result, $server, $request) {
	global $woocommerce_wpml;
	$params = serialize($request->get_params());
    if (str_contains($params, 'stock_quantity')){
    remove_filter( 'get_post_metadata', [ $woocommerce_wpml->products, 'filter_product_data' ] );
}
	return $result;
}, 10, 3);

如果您仍然遇到速度缓慢的问题,并且您的产品被分配到多个类别且拥有许多翻译,您可以尝试绕过分类项重新计数

add_filter( 'woocommerce_product_recount_terms', 'bypass_term_recount_on_rest' );

function bypass_term_recount_on_rest( $value ){
	if ( defined( 'REST_REQUEST' ) && REST_REQUEST ) {
		$value = false;
	}
	return $value;
}

所有已知问题 →