[WooCommerce]バリエーションのある商品のJSONデータが吐き出されない問題を解決する

WooCommerceを使用したECサイトで、商品ページにバリエーションのJSONデータが表示されない状況になりました

本来<form>タグのカスタムデータ「data-product_variations」にバリエーションのJSONデータが渡ってくるのですが、何故か値が「false」となって専用プログラムで不具合が発生。

商品の登録方法の違いかと思いましたが原因は別にありました。バリエーションの数が多い場合を考慮して、組み合わせが30より多い場合はJSONデータが吐き出されない仕様になっているようです。

バリエーションの組み合わせが30より多い場合もJSONデータを出力する

というわけで、いつものようにフックを使いサクっと解決します。デフォルトの閾値は30と設定されているのでこの値を大きくしてやりましょう。以下のコードをfunctions.phpなどに記述して数値を弄ります。

3行目の数値を任意の値に変更します。もちろん、大きい数値であるほどパフォーマンスが落ちる可能性があることにご注意ください。


参考:

Variations filter not working properly when multiple product attributes used · Issue #16104 · woocommerce/woocommerce

WooCommerce – Change ajax variation threshold

コメント

「何かそこ違うよ」「こうした方が良い」っていう部分があったら指摘して頂けると嬉しいです。

トラックバック

トラックバックは現在ありません。

Trackback: https://increment-log.com/woocommerce-variations-json-data-none/trackback/