我在https://development.pittsburghconcertsociety.org上销售活动门票并接受捐款。当有人购买门票时,他们必须同意COVID政策。但是当有人只“购买”捐款,即他们只将捐款产品放入购物车时,他们不需要同意COVID政策。WooCommerce支持聊天机器人提供了以下代码,但是它不起作用:
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' );
捐款产品的ID是551)。总结一下,如果购物车中有门票和捐款产品,我确实希望有T&C复选框/要求,但如果购物车中只有捐款产品,则不需要T&C。在这种情况下,仅仅隐藏T&C是不够的,它还必须不是必填项。
此外,如果我们销售商品,能够添加多个产品ID将会很好。
下面的代码将在购物车中只有特定产品时完全移除T&C要求:
代码应该放置在活动子主题的functions.php文件中,或者放置在插件中。已经进行了测试并确认可以正常工作。