Dalam WooCommerce, saya menambahkan kotak pilihan "Privasi" tersuai pada borang pendaftaran pelanggan menggunakan kod berikut:
//Tambah kotak pilihan pada borang pendaftaran add_action( 'woocommerce_register_form', 'add_privacy_checkbox_registration' ); fungsi add_privacy_checkbox_registration() { $checkbox_text = sprintf( '%s %s', __( 'Я прочитал и согласен с' ), esc_url( site_url('/politic-conf/') ), __( 'политикой конфиденциальности' ) ); ?>add( 'privacy_policy_reg_error', 'Вам нужно принять политику конфиденциальности.' ); } kembalikan $error; }
Kod itu sah. Kotak semak ditambah. Logik kotak semak juga berfungsi. Ini bermakna jika anda tidak menandai kotak tersebut, pendaftaran pengguna tidak akan dapat dilakukan.
Tetapi ada masalah. Jika kotak pilihan tidak diklik, teks ralat tidak muncul pada skrin...
Ini ialah halaman yang dimaksudkan di tapak saya - Halaman Masalah
Ada idea?
Adakah anda mencubanya tanpa ini?
Memandangkan penapis ialah penapis berdaftar, nampaknya sekeping kod itu tidak diperlukan kerana ia tidak akan dipanggil semasa pembayaran. Cuba ulas blok kod itu dan uji pendaftaran sekali lagi. Jika ia berfungsi, uji proses pembayaran juga untuk memastikan ia tidak salah.
return $errors;
会结束函数,错误不会被添加。当然,我会假设is_checkout()
akan mengembalikan palsu semasa pendaftaran, tetapi mungkin semasa pendaftaran ia kembali benar atas sebab tertentu?Apa pun, ia hanya satu percubaan.
Saya telah menguji kod anda di tapak ujian dan bagi saya ia berfungsi dengan baik, ia menunjukkan ralat apabila kotak pilihan dinyahtandai...
Kini terdapat sesuatu yang hilang dalam fungsi terakhir, anda mengisytiharkan 3 parameter di bahagian
add_filter()
, jadi 2 hilang. Pada masa yang sama saya juga memudahkan kod andaIni hanyalah kod yang diubah suai untuk fungsi terakhir:
Sekarang saya tidak pasti sama ada ini menyelesaikan masalah anda kerana halaman dimuat semula selepas penyerahan di tapak anda supaya mesej ralat tidak mempunyai masa untuk dipaparkan.