當購物車中只有特定產品時,移除 WooCommerce 結帳頁面的條款和條件
P粉245003607
2023-07-30 10:35:54
<p>我在https://development.pittsburghconcertsociety.org上銷售活動門票並接受捐款。當有人購買門票時,他們必須同意COVID政策。但是當有人只「購買」捐款,即他們只將捐款產品放入購物車時,他們不需要同意COVID政策。 WooCommerce支援聊天機器人提供了以下程式碼,但它不起作用:</p>
<pre class="brush:php;toolbar:false;">function hide_terms_for_specific_product( $woocommerce_checkout_fields ) {
// Check if the specific product is the only item in the cart
if ( WC()->cart ) {
$cart_items = WC()->cart->get_cart();
$specific_product_found = false;
foreach ( $cart_items as $cart_item ) {
// Replace '123' with the ID of the specific product
if ( $cart_item['product_id'] == 551 ) {
$specific_product_found = true;
break;
}
}
// Hide terms and conditions for the specific product
if ( $specific_product_found ) {
unset( $woocommerce_checkout_fields['terms'] );
}
}
return $woocommerce_checkout_fields;
}
add_filter( 'woocommerce_checkout_fields', 'hide_terms_for_specific_product' );</pre>
<p>捐款產品的ID是551)。總結一下,如果購物車中有門票和捐款產品,我確實希望有T&C複選框/要求,但如果購物車中只有捐款產品,則不需要T&C。在這種情況下,僅僅隱藏T&C是不夠的,它還必須不是必填項。 </p><p>此外,如果我們銷售商品,能夠增加多個產品ID將會很好。 </p><p><br /></p>
下面的程式碼將在購物車中只有特定產品時完全移除T&C要求:
程式碼應該放置在活動子主題的functions.php檔案中,或放置在外掛程式中。已經進行了測試並確認可以正常工作。