搜尋

首頁  >  問答  >  主體

當購物車中只有特定產品時,移除 WooCommerce 結帳頁面的條款和條件

<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>
P粉245003607P粉245003607517 天前524

全部回覆(1)我來回復

  • P粉344355715

    P粉3443557152023-07-31 00:43:10

    下面的程式碼將在購物車中只有特定產品時完全移除T&C要求:

    add_filter( 'woocommerce_checkout_show_terms', 'remove_terms_and_conditions_for_specific_unique_item' );
    function remove_terms_and_conditions_for_specific_unique_item( $show_terms ) {
        // Replace "123" with the desired product ID
        $targeted_id = 15;
        $cart_items = WC()->cart->get_cart(); // get cart items
    
        // Check if there is only one item in cart
        if( count($cart_items) > 2 ) {
            return $show_terms;
        }        
        // Check if the targeted product ID is the only item in cart
        if ( reset($cart_items)['product_id'] == $targeted_id ) {
            return false; // Remove terms and conditions field
        }
        return $show_terms;
    }
    

    程式碼應該放置在活動子主題的functions.php檔案中,或放置在外掛程式中。已經進行了測試並確認可以正常工作。

    回覆
    0
  • 取消回覆