我正在建立一个基于 Wordpress 和 Woocommerce 的电子商务网站。到目前为止,一切都进展顺利,但在结账(计费和运输)的最后一页,Woocommerce 的标准类正在干扰 Bootstrap 4 的标记。

账单表单中的每个字段都由一个至少包含类 form-row(即)的标签包装:

class="form-row form-row-first"

这会导致表格“下降”标准 BS 网格。

任何人都知道如何删除这些包装类?

谢谢一堆,

干杯,
尼基

最佳答案

要从 class="form-row form-row-first" 标签字段容器中清除 <p>,以下代码将在结帐字段上完成工作:

add_filter('woocommerce_form_field_country', 'clean_checkout_fields_class_attribute_values', 20, 4);
add_filter('woocommerce_form_field_state', 'clean_checkout_fields_class_attribute_values', 20, 4);
add_filter('woocommerce_form_field_textarea', 'clean_checkout_fields_class_attribute_values', 20, 4);
add_filter('woocommerce_form_field_checkbox', 'clean_checkout_fields_class_attribute_values', 20, 4);
add_filter('woocommerce_form_field_password', 'clean_checkout_fields_class_attribute_values', 20, 4);
add_filter('woocommerce_form_field_text', 'clean_checkout_fields_class_attribute_values', 20, 4);
add_filter('woocommerce_form_field_email', 'clean_checkout_fields_class_attribute_values', 20, 4);
add_filter('woocommerce_form_field_tel', 'clean_checkout_fields_class_attribute_values', 20, 4);
add_filter('woocommerce_form_field_number', 'clean_checkout_fields_class_attribute_values', 20, 4);
add_filter('woocommerce_form_field_select', 'clean_checkout_fields_class_attribute_values', 20, 4);
add_filter('woocommerce_form_field_radio', 'clean_checkout_fields_class_attribute_values', 20, 4);
function clean_checkout_fields_class_attribute_values( $field, $key, $args, $value ){
    if( is_checkout() ){
        // remove "form-row"
        $field = str_replace( array('<p class="form-row ', '<p class="form-row'), array('<p class="', '<p class="'), $field);
    }

    return $field;
}

add_filter('woocommerce_checkout_fields', 'custom_checkout_fields_class_attribute_value', 20, 1);
function custom_checkout_fields_class_attribute_value( $fields ){
    foreach( $fields as $fields_group_key => $group_fields_values ){
        foreach( $group_fields_values as $field_key => $field ){
            // Remove other classes (or set yours)
            $fields[$fields_group_key][$field_key]['class'] = array();
        }
    }

    return $fields;
}

代码位于事件子主题(或事件主题)的 function.php 文件中。测试和工作。

关于php - 删除 Woocommerce 中结帐字段包装器的标准 css 类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52060292/

10-13 08:57