Rumah > Soal Jawab > teks badan
P粉4640884372023-09-04 11:32:09
Adakah anda mencubanya tanpa ini?
if( is_checkout() ) { return $errors; }
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.
P粉2311124372023-09-04 10:04:20
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 anda
Ini hanyalah kod yang diubah suai untuk fungsi terakhir:
// 验证 add_filter( 'woocommerce_registration_errors', 'privacy_checkbox_registration_validation', 999, 3 ); function privacy_checkbox_registration_validation( $errors, $username, $email ) { // 不在结账页面 if( ! is_checkout() && empty( $_POST[ 'privacy_policy' ] ) ) { $errors->add( 'privacy_policy_error', 'Вам нужно принять политику конфиденциальности.' ); } return $errors; }
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.