cari

Rumah  >  Soal Jawab  >  teks badan

Alih keluar terma dan syarat daripada halaman daftar keluar WooCommerce apabila hanya produk tertentu berada dalam troli

<p>Saya menjual tiket acara dan menerima sumbangan di https://development.pittsburghconcertsociety.org. Apabila seseorang membeli tiket, mereka mesti bersetuju dengan dasar COVID. Tetapi apabila seseorang hanya "membeli" derma, iaitu mereka hanya meletakkan produk derma ke dalam troli mereka, mereka tidak perlu bersetuju dengan dasar COVID. Chatbot sokongan WooCommerce menyediakan kod berikut, tetapi ia tidak berfungsi: </p> <pre class="brush:php;toolbar:false;">function hide_terms_for_specific_product( $woocommerce_checkout_fields ) { // Semak sama ada produk tertentu adalah satu-satunya item dalam troli if (WC()->cart) { $cart_items = WC()->cart->get_cart(); $specific_product_found = palsu; foreach ( $cart_item sebagai $cart_item ) { // Gantikan '123' dengan ID produk tertentu if ($cart_item['product_id'] == 551 ) { $specific_product_found = benar; pecah; } } // Sembunyikan terma dan syarat untuk produk tertentu jika ( $specific_product_found ) { unset( $woocommerce_checkout_fields['terms'] ); } } kembalikan $woocommerce_checkout_fields; } add_filter( 'woocommerce_checkout_fields', 'hide_terms_for_specific_product' );</pre> <p>ID produk derma ialah 551). Ringkasnya, saya mahu mempunyai kotak semak/keperluan T&C jika terdapat tiket dan produk derma dalam troli, tetapi T&C tidak diperlukan jika hanya terdapat produk derma dalam troli. Dalam kes ini, tidak cukup dengan hanya menyembunyikan T&C, ia juga tidak diperlukan. </p><p>Selain itu, jika kami menjual item, adalah bagus untuk menambah berbilang ID produk. </p><p><br /></p>
P粉245003607P粉245003607564 hari yang lalu548

membalas semua(1)saya akan balas

  • P粉344355715

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

    Kod di bawah akan mengalih keluar sepenuhnya keperluan T&C apabila hanya produk tertentu yang ada dalam troli:

    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;
    }
    

    Kod hendaklah diletakkan dalam fail functions.php tema kanak-kanak aktif, atau diletakkan dalam pemalam. Telah diuji dan disahkan berfungsi.

    balas
    0
  • Batalbalas