<p>私は https://development.pittsburghconcertsociety.org でイベント チケットを販売し、寄付を受け付けています。チケットを購入する場合は、新型コロナウイルス感染症のポリシーに同意する必要があります。ただし、誰かが寄付を「購入」するだけの場合、つまり寄付商品をカートに入れるだけの場合は、新型コロナウイルスに関するポリシーに同意する必要はありません。 WooCommerce サポート チャットボットは次のコードを提供しますが、機能しません: </p>
<pre class="brush:php;toolbar:false;">function Hide_terms_for_specific_product( $woocommerce_checkout_fields ) {
// 特定の商品がカート内の唯一の商品かどうかを確認します
if (WC()->カート) {
$cart_items = WC()->cart->get_cart();
$specific_product_found = false;
foreach ( $cart_items as $cart_item ) {
// '123' を特定の製品の ID に置き換えます
if ( $cart_item['product_id'] == 551 ) {
$specific_product_found = true;
壊す;
}
}
// 特定の製品の利用規約を非表示にします
if ( $specific_product_found ) {
unset( $woocommerce_checkout_fields['terms'] );
}
}
$woocommerce_checkout_fields を返します。
}
add_filter( 'woocommerce_checkout_fields', 'hide_terms_for_specific_product' );</pre>
<p>寄付商品のIDは551)です。要約すると、カートにチケットと寄付製品がある場合は利用規約のチェックボックス/要件が必要ですが、カートに寄付製品のみがある場合は利用規約は必要ありません。この場合、利用規約を非表示にするだけでは不十分であり、必須であってはなりません。 </p><p>また、アイテムを販売する場合、複数の商品 ID を追加できると便利です。 </p>
次のコードは、特定の製品のみがカートに入っている場合に利用規約要件を完全に削除します:
リーリーコードは、アクティブな子テーマのfunctions.phpファイルに配置するか、プラグインに配置する必要があります。テストされ、動作することが確認されています。