質問: woocommerceカスタムリンクからバリエーション商品をカートに追加 リンクを通じてバリエーション商品をカートに追加しようとしています。クエリ文字列でvariation_idを設定しています。私が言うことができる限り、私はデータをデフォルトバリエーション製品フォームがするのと全く同じ方法で送っている。これが私の単一製品ページの中のコードです:<a href="<?php echo esc_url( $product->add_to_cart_url() ); ?>&variation_id=262" class="rounded-rect-button add-to-cart">add to cart</a> 逆に、単純な製品はうまく機能します。私は管理者で私の製品のバリエーションに価格を設定しました。それがデータを送信するほど単純ではない理由はよくわかりません。任意の助けは大歓迎です。
回答: これを考え出した。可変商品をカートに追加するために必要ないくつかのパラメータがありませんでした。欠落しているパラメーターは、variation_idとvariation_idが参照している属性タイプです。バリエーションidは、admin> woocomerce> productsと、作成したバリエーションの横にあるバリエーションタブの下にあります。属性paramは、接頭部attribute_と、それからサニタイズされた属性名から形成されます。たとえば、私の属性はstock colorsと呼ばれるので、私の属性タイプparamはattribute_stock-colorsです。私が言うことができるものから、あなたはちょうどattribute_stock-colors=1をセットします、それはカートに追加する方法がちょうどそれが存在するかどうか確かめるためにチェックするので。これは、ストックカラーのバリエーションid 261の商品をカートに追加するリンクの簡単な例です。<a href="<?php echo esc_url( $product->add_to_cart_url() ); ?>&variation_id=261&attribute_stock-colors=1">add to cart</a> 実際の状況でこれを使用するには、ドロップダウンまたはそのようなものでユーザーが選んだオプションから属性タイプとバリエーションidを動的に設定する必要があります(すべての製品が同じバリエーションを持たない限り、基本的にそれは単純な製品になります) ).