在WooCommerce中,我使用以下代码在客户注册表中添加了一个定制的"隐私"复选框:
// Addind a checkbox to registration form
add_action( 'woocommerce_register_form', 'add_privacy_checkbox_registration' );
function 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-checkbox checkbox">
<input type="checkbox" class="woocommerce-form__input woocommerce-form__input-checkbox input-checkbox" name="privacy_policy" <?php checked( false, true ); ?> id="privacy-policy" />
<span class="woocommerce-privacy-policy-checkbox-text"><?php echo $checkbox_text; ?></span> <abbr class="required" title="<?php esc_attr_e( 'required', 'woocommerce' ); ?>">*</abbr>
</label>
<input type="hidden" name="policy-field" value="1" />
</p>
</div>
<?php
}
// The validation
add_filter( 'woocommerce_registration_errors', 'privacy_checkbox_registration_validation', 10, 3 );
function privacy_checkbox_registration_validation( $errors ) {
if( is_checkout() ) {
return $errors;
}
if ( empty( $_POST[ 'privacy_policy' ] ) ) {
$errors->add( 'privacy_policy_reg_error', 'Вам нужно принять политику конфиденциальности.' );
}
return $errors;
}
密码起作用了.该复选框已添加.复选框逻辑起作用. 也就是说,如果您不选中该框,将不会有用户注册.
但这其中存在一个问题.如果未单击复选框,则错误文本不会显示在屏幕上...
这是我的网站有问题的页面-page with issue
有什么主意吗?