WPML
ステータス
未解決
報告対象
WPML Multilingual & Multicurrency for WooCommerce 5.2.1
トピックタグ
Bug, WCML

問題の概要

WPML Multilingual & マルチ通貨 for 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;
}

すべての既知の問題 →