从结帐表单中删除 woocommerce 默认 css 类

Posted

技术标签:

【中文标题】从结帐表单中删除 woocommerce 默认 css 类【英文标题】:Remove woocommerce deafult css classes from checkout form 【发布时间】:2020-05-07 12:32:27 【问题描述】:

我第一次使用 woocommerce 来创建一个由 wordpress 支持的电子商务网站。我需要应用 bootstrap 4 css 表单类并删除 woocommerce 将用于包装表单元素的默认类。使用检查器时,我注意到在每个 <label><input> 之前添加了一个 <p class="form-row form-row-first"> 标签,输入也包含在 <span> 标签中,这将破坏所有 bootstrap 4 布局。经过一番头疼后,我在 SO 上找到了一个 similar question here,我决定试一试,但该解决方案不会像我预期的那样对我有用。 我想要做的是创建一个尊重引导程序的 css 网格布局的表单,如下所示:

<form>
 <div class="form-group">
 // form group wrapper for labels and inputs
  <label for=""></label>
  <input type="text" class="form-control" />
 </div>
</div>

这是 bootstrap 4 表单的基本标记。对于某些字段,我还想使用 .form-row 将两个字段(例如姓名和姓氏或类似字段)分组到 .col-sm-12 col-md-6 col-lg-6 列中。

这可以通过使用过滤器或挂钩来实现吗?我找到了管理文件渲染功能的核心文件,但我不想编辑该文件以避免弄乱代码。

现在计费和结帐表单字段具有以下结构:

感谢您的帮助。

【问题讨论】:

为什么不直接用你自己的覆盖 WC css...使用 flexbox 布局而不是默认布局? @HowardE 因为我正在将 woocommerce 与我使用 bootstrap 4 作为前端框架制作的自定义主题集成。我已经使用 css 进行了快速修复,但它不适合深度集成 这是见仁见智的问题。您可以简单地将您的 CSS 添加到您的基本自定义主题中。这就是我所做的。它每次都有效。 【参考方案1】:

如果你使用 Bootstrap 4 和 SASS,你可以使用 @extend 来实现

例如,您可以轻松地将默认的 woocommerce 按钮更改为引导按钮,如下所示:

.woocommerce .button 
  @extend .btn, .btn-primary;

【讨论】:

【参考方案2】:

WooCommerce 提供了一种从您的主题中覆盖模板的方法。

如果您需要使用 Bootstrap html 标记和 CSS 类,您可能需要按照 WooCommerce 文档中给出的说明覆盖 WooCommerce 模板: https://docs.woocommerce.com/document/template-structure/

如果您使用的不是您自己构建的主题,最佳做法是创建一个子主题,这样您就可以覆盖子主题中的 WooCommerce 模板,而不会更改原始模板并保持更新它的能力。 https://developer.wordpress.org/themes/advanced-topics/child-themes/

【讨论】:

以上是关于从结帐表单中删除 woocommerce 默认 css 类的主要内容,如果未能解决你的问题,请参考以下文章

如何在 woo commerce 的结帐表单字段中删除额外的 div html 类

php 从woocommerce结帐中删除所有占位符

从 Woocommerce 3.4+ 的结帐字段中删除“(可选)”文本

隐藏 WooCommerce 结帐字段后删除所需的验证

自定义 woocommerce 结帐表单字段

从Woocommerce 3.4+中的结帐字段中删除“(可选)”文本