Tajuk yang ditulis semula bagi gesaan ralat pengesahan kotak pilihan tersuai dalam pendaftaran Woocommerce ialah: Selesaikan masalah gesaan ralat pengesahan kotak semakan tersuai dalam pendaftaran Woocommerce
P粉318928159
2023-09-03 12:06:38
<p>Dalam WooCommerce, saya menambahkan kotak pilihan "Privasi" tersuai pada borang pendaftaran pelanggan menggunakan kod berikut: </p>
<pre class="brush:php;toolbar:false;">//Tambah kotak pilihan pada borang pendaftaran
add_action( 'woocommerce_register_form', 'add_privacy_checkbox_registration' );
fungsi add_privacy_checkbox_registration() {
$checkbox_text = sprintf( '%s <a href="%s"><strong>%s</strong></a>', __( 'Я прочитал и согласен с' ),
esc_url( site_url('/politic-conf/') ), __( 'политикой конфиденциальности' ) );
?>
<div class="woocommerce-privacy-policy-wrapper">
<p class="form-row validate-required">
<label class="woocommerce-form__label woocommerce-form__label-for-kotak pilihan">
<jenis input="kotak semak"kelas="woocommerce-form__input woocommerce-form__input-checkbox name="privacy_policy" -dasar"
<span class="woocommerce-privacy-policy-checkbox-text"><?php echo $checkbox_text ?<</span> ?php esc_attr_e( 'diperlukan', 'woocommerce' );>">*</abbr>
</label>
<jenis input="nama tersembunyi"bidang dasar"
</p>
</div>
<?php
}
// sahkan
add_filter( 'woocommerce_registration_errors', 'privacy_checkbox_registration_validation', 10, 3 );
fungsi privacy_checkbox_registration_validation( $errors ) {
if( is_checkout() ) {
kembalikan $error;
}
jika ( kosong( $_POST[ 'dasar_privasi' ] ) ) {
$errors->add( 'privacy_policy_reg_error', 'Вам нужно принять политику конфиденциальности.' );
}
kembalikan $error;
}
</pra>
<p>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. </p>
<p>Tetapi ada masalah. Jika kotak pilihan tidak diklik, teks ralat tidak muncul pada skrin...</p>
<p>Ini ialah halaman yang dimaksudkan di tapak saya - Halaman Masalah</p>
<p>Ada idea? </p>
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.