我想实现一个复选框图标,与Botiga theme相同的方式.

我已经添加了一个代码片段,并且会出现一个附加的复选框"Policy Terms".

但是我不明白关于css,复选框是不可见的.

我认为问题出在这里:

<input type="checkbox" class="input-checkbox woocommerce-form__input woocommerce-form__input-checkbox input-checkbox" name="privacy_policy" id="privacy_policy" value="1">

它应该是:

<input type="checkbox" class="woocommerce-form__input woocommerce-form__input-checkbox input-checkbox" name="privacy_policy" id="privacy_policy" value="1">

我不知道如何删除"Input-CheckBox"值类属性.

以下是我的代码片段:

add_action( 'woocommerce_checkout_after_terms_and_conditions', 'add_privacy_block', 9 );
function add_privacy_block() {
    woocommerce_form_field( 'privacy_policy', array(
        'type' => 'checkbox',
        'class' => array('form-row privacy'),
        'label_class' => array('woocommerce-form__label woocommerce-form__label-for-checkbox checkbox'),
        'input_class' => array('woocommerce-form__input woocommerce-form__input-checkbox input-checkbox'),
        'required' => true,
        'label' => 'Я прочитал и согласен с <a href="https://genreeds.ru/politic-conf/"><b>политикой конфиденциальности</b></a>',
    ));
}
add_action( 'woocommerce_checkout_process', 'privacy_checkbox_error_message' );
function privacy_checkbox_error_message() {
    if ( ! (int) isset( $_POST['privacy_policy'] ) ) {
        wc_add_notice( __( 'Вам необходимо отметить галочкой, что вы ознакомлены с политикой конфиденциальности' ), 'error' );
    }
}

这是the linked page with this issue美元.

我可以制作一个标准的复选框,但我需要更改上面主题附带的复选框.

如果显示带有"Botiga"的附加复选框,可能更容易实现这一点?

我认为解决办法很简单,但我没有足够的知识.如有任何帮助,我们不胜感激.


最新情况:

Variant 1

enter image description here

如果我将"LABEL_CLASS_DISABLED"添加到代码段,则会出现该复选框.但他有一个不同的设计,标准.

Variant 2

enter image description here

对策略进行编码复选框

enter image description here

下面是复选框代码的工作方式

enter image description here

推荐答案

Checkout页面中的WooCommerce条款和条件复选框的代码位于terms.php WooCommerce template file.

在你的主函数上,我使用了一个类似的代码来实现你的"策略"复选框,我还对你的其他函数做了一些改动.

add_action( 'woocommerce_checkout_after_terms_and_conditions', 'privacy_checkbox_block' );
function privacy_checkbox_block() {
    $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>&nbsp;<abbr class="required" title="<?php esc_attr_e( 'required', 'woocommerce' ); ?>">*</abbr>
            </label>
            <input type="hidden" name="policy-field" value="1" />
        </p>
    </div>
    <?php
}

add_action( 'woocommerce_checkout_process', 'privacy_checkbox_validation' );
function privacy_checkbox_validation() {
    if ( ! isset( $_POST['privacy_policy'] ) ) {
        wc_add_notice( __( 'Вам необходимо отметить галочкой, что вы ознакомлены с политикой конфиденциальности' ), 'error' );
    }
}

它现在应该可以工作,并且可以看到…验证也是有效的.

Php相关问答推荐

调用woocommerce_customer_Save_add动作挂钩时发生致命错误

如何在Laravel Controller中存储文本区域值?

PHP Perl正则表达式—URL前面没有等号和可能的单引号或双引号

从WooCommerce Checkout Country Select2下拉列表中重新排序国家/地区

通过注册在Laravel中分配角色

在Laravel Eloquent中实现一对多关系

将下拉 Select 的值从WooCommerce后端保存并显示到前端

列出所有WooCommerce处理订单中的产品数量,SKU和品牌

从目录文件夹中获取文件并追加到 Select 下拉列表(选项)-wordpress/wc

如何使用索引加速和优化MySQL搜索

在WooCommerce购物车页面应用优惠券不会';t刷新总计

调用模型[App\Models\Employee]上未定义的关系[title]

将自定义字段添加到管理产品中 WooCommerce 3.2+ 中的快速编辑

在 PHP MySQL 中自动生成账单编号

使用自定义规则进行 Livewire 验证不会显示错误

Woocommerce的数量和价格条件

如何在PHP中对多个脚本调用进行排队?

如何通过额外的属性和本地化来使用 laravel 枚举

在 Laravel、Vuejs 和 Inertia 中配置 TypeScript 的问题

使用 v-for 的存储链接中的 Img src 在 Laravel vuejs 中不起作用