Alih keluar terma dan syarat daripada halaman daftar keluar WooCommerce apabila hanya produk tertentu berada dalam troli
P粉245003607
P粉245003607 2023-07-30 10:35:54
0
1
540
<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粉245003607
P粉245003607

membalas semua(1)
P粉344355715

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.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan