WPML
Статус
Открыто
Заявлено для
WPML Multilingual & Multicurrency for WooCommerce 5.2.1
Теги темы
Bug, WCML

Обзор проблемы

Когда активирован WPML Multilingual & Мультивалютность для WooCommerce, время отклика при массовых обновлениях товаров через 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;
}

Все известные проблемы →