自定义 Woocommerce 购物车页面中 2 列的结账字段

2023-11-30

新的 WooCommerce 更新结帐字段后,列的行为很奇怪。这是我的结帐字段自定义:

add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );

function custom_override_checkout_fields( $fields ) {
unset($fields['billing']['billing_address_2']);
    return $fields;
}

// Checkout placeholder
add_filter( 'woocommerce_checkout_fields' , 'override_billing_checkout_fields', 20, 1 );
function override_billing_checkout_fields( $fields ) {
    $fields['billing']['billing_phone']['placeholder'] = 'Telefon';
    $fields['billing']['billing_email']['placeholder'] = 'Email';
    $fields['billing']['billing_company']['placeholder'] = 'Firmanavn';
    return $fields;
}

add_filter('woocommerce_default_address_fields', 'override_default_address_checkout_fields', 20, 1);
function override_default_address_checkout_fields( $address_fields ) {
    $address_fields['first_name']['placeholder'] = 'Fornavn';
    $address_fields['last_name']['placeholder'] = 'Efternavn';
    $address_fields['address_1']['placeholder'] = 'Adresse';
    $address_fields['state']['placeholder'] = 'Stat';
    $address_fields['postcode']['placeholder'] = 'Postnummer';
    $address_fields['city']['placeholder'] = 'By';
    return $address_fields;
}

我已将自定义购物车页面中的结账字段设置为可见here.


我的问题:使用 php 或 CSS 样式,有没有办法:

  • 名字和姓氏字段位于彼此相邻的两列中;
  • 地址 1 字段全宽为 100%(我未设置地址 2 字段);
  • 状态字段全宽为 100%;
  • 邮政编码和城市字段位于彼此相邻的两列中;
  • 电话和电子邮件字段位于彼此相邻的两列中。

我尝试了这个 CSS,但它对所有内容都只有 100% 的效果。我如何针对上述这些目标?

p.form-row-first, p.form-row-last {
    width: 100%;
    float: left;
}

首先是正确的 php 代码,您可以在其中重命名标签字段并设置宽度样式中涉及的类。

有关 Woocommerce 结帐字段中的类的说明:

  • array('form-row-first')- 字段将显示在第一列中(因此宽度为 50%)。
  • array('form-row-last')- 字段将显示在第二列中(因此宽度为 50%)。
  • array('form-row-wide')- 字段将显示在两列中(因此宽度为 100%)。

代码:

add_filter( 'woocommerce_checkout_fields' , 'custom_checkout_billing_fields', 20, 1 );
function custom_checkout_billing_fields( $fields ){

    // Remove billing address 2
    unset($fields['billing']['billing_address_2']);

    if( is_cart()){ // <== On cart page only
        // Change placeholder
        $fields['billing']['billing_phone']['placeholder']   = __( 'Telefon', $domain );
        $fields['billing']['billing_email']['placeholder']   = __( 'Email', $domain );
        $fields['billing']['billing_company']['placeholder'] = __( 'Firmanavn', $domain );
        
        // Change class
        $fields['billing']['billing_phone']['class']   = array('form-row-first'); //  50%
        $fields['billing']['billing_email']['class']   = array('form-row-last');  //  50%
        $fields['billing']['billing_company']['class'] = array('form-row-wide');  // 100%
    }
    return $fields;
}

add_filter('woocommerce_default_address_fields', 'custom_default_address_fields', 20, 1);
function custom_default_address_fields( $address_fields ){
    
    if( ! is_cart()){ // <== On cart page only
        // Change placeholder
        $address_fields['first_name']['placeholder'] = __( 'Fornavn', $domain );
        $address_fields['last_name']['placeholder']  = __( 'Efternavn', $domain );
        $address_fields['address_1']['placeholder']  = __( 'Adresse', $domain );
        $address_fields['state']['placeholder']      = __( 'Stat', $domain );
        $address_fields['postcode']['placeholder']   = __( 'Postnummer', $domain );
        $address_fields['city']['placeholder']       = __( 'By', $domain );

        // Change class
        $address_fields['first_name']['class'] = array('form-row-first'); //  50%
        $address_fields['last_name']['class']  = array('form-row-last');  //  50%
        $address_fields['address_1']['class']  = array('form-row-wide');  // 100%
        $address_fields['state']['class']      = array('form-row-wide');  // 100%
        $address_fields['postcode']['class']   = array('form-row-first'); //  50%
        $address_fields['city']['class']       = array('form-row-last');  //  50%
    }
    return $address_fields;
}

现在相关的 CSS 代码应该是(默认情况下)如下所示:
(尝试删除 !important看看是否真的有必要)

.form-row-wide,
.form-row-first,
.form-row-last {
    clear: both !important;
    float: none !important;
    width: 100% !important;
    margin-right: 0 !important;
}

@media (min-width: 768px){
    .form-row-first {
        width: 47% !important;
        float: left !important;
        margin-right: 5.8% !important;
        clear: both !important;
    }
    .form-row-last {
        width: 47% !important;
        float: right !important;
        margin-right: 0 !important;
        clear: none !important;
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

自定义 Woocommerce 购物车页面中 2 列的结账字段 的相关文章

  • 删除圆形图像周围的边框

    我有一个圆形图像 png 文件 中间是透明的 我需要将图像内的背景设置为纯色 为此 我将背景设为纯色 然后将border radius 50 但这会产生一条丑陋的小白线 有没有办法摆脱这个问题 或者我必须在图像编辑器中手动为图像着色 div
  • 将数据库中的用户 ID 添加到 Codeigniter 中的会话数据中?

    我是 CodeIgniter 的新手 在从数据库添加用户 ID 用户登录后 到会话数据时遇到问题 这是我的代码问题 之前可能会在 SOF 上被问到 在付出了所有努力之后 我问这个 登录模型
  • 滚动时将菜单栏固定在顶部[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我见过一些网站 当用户向下滚动页面时 会在右侧或左侧弹出一个框 另外 注意到这个模板 http www mvpthemes com m
  • Internet Explorer 中的锯齿状按钮边缘

    如何去除 Internet Explorer 中宽按钮的锯齿状边缘 例如 您还可以通过设置来消除 Windows XP 的按钮样式 以及 Windows 的所有其他版本 background color and or border colo
  • PHP使用auto_increment生成短唯一ID?

    我想生成一个简短的 唯一的 ID 而不必检查冲突 我目前正在做类似的事情 但是我当前生成的 ID 是随机的 并且在循环中检查冲突很烦人 并且如果记录数量显着增加 将会变得昂贵 通常担心冲突不是问题 但我想要生成的唯一 ID 是一个由 5 8
  • 如何在 Bootstrap 3 的导航栏中添加带有图标的搜索框?

    我正在使用新的 Twitter Bootstrap 3 并尝试放置一个像这样的搜索框 如下 在顶部导航栏中 在 Bootstrap 2 中 可以这样完成
  • 选取散列第 N 个元素的最快方法

    我有一个大哈希表 带有字符串索引的数组 并正在寻找一个函数quickly从中选取第一个 理想情况下也是第 N 个 元素 array shift and reset 对于我的需求来说太慢了 UPDATE 我也不是在寻找基于引用的解决方案 该函
  • CSS 无法从带有 php“includes”的相对路径工作

    文件夹结构 index php includes header html css style css 我的主项目文件夹中有 2 个子文件夹 一个是名为 includes 的文件夹 另一个名为 css 我有我的 index php主文件夹中的
  • phpinfo 说 php.ini 路径是 C:\Windows 但那里没有 php.ini

    我们正在尝试从 PHP5 切换到 PHP7 现在我们已经安装了 Apache 并且 PHP 可以运行了 然而 我们在php ini文件没有任何作用 Via phpinfo 我们意识到原因是Configuration File php ini
  • CSS 显示无不工作

    media screen and min width 900px and max width 1215px menu display none 这不起作用 div 仍然可见 但是 如果我将 div 更改为 div class menu 代替
  • 将按钮文本放在一行上

    我的按钮文本在 safari 中显示在一行上 即使在初次单击后 但是在 google chrome 上 当您第一次到达该按 钮时 我的按钮将显示在一行上 但是当您浏览更多帖子并再次遇到 加载更多 按钮时 文本搞砸了 这只发生在谷歌浏览器上
  • 使用 fopen() 包装器创建 ZIP 文件

    如何使用以下命令创建 ZIP 文件fopen 包装器 http es php net manual en wrappers compression php 这显然是not道路
  • 使用 PHP 和 OAuth 访问 SkyDrive

    我想使用 PHP 访问 skyDrive 我想检索文件和文件夹列表 下载 上传和删除文件 我有一个 microsoft dev clientID 和 clientSecret 有人可以帮助我开始使用 OAuth 连接到 skyDrive 并
  • 检索 css3 缩放元素的宽度/高度

    我正在与 offsetWidth 属性的奇怪之处 我认为 作斗争 这是场景 比方说 我有一个span标签 在我的js中 在某个时刻我执行css3转换 对于这个元素 例如 el set styles transform scale scale
  • 监听文件夹和文件(更改)

    可以直接在 PHP 或 Node 上监听文件夹和文件的更改 通过事件 还是我需要创建自己的方法来执行此操作 Example 我需要听文件夹 user 如果我将一些文件添加到该目录中 PHP 或 Node 会收到信息并运行PathEvent
  • HTML 代码中的 PHP [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我用 HTML 代码编写了 PHP div div 但这出现在输出页面中 else print 我怎样才能让PHP执行 你的文件有一个 p
  • 显式删除会话cookie会产生什么影响?

    我使用 php session 来维护用户的会话 Session 在登录后创建 在注销或超时后销毁 我需要管理面板中的一个选项来强制注销任何用户 如果他在网站上处于活动状态 我怎样才能做到这一点 我正在考虑删除临时会话文件 这应该有效地破坏
  • Doctrine DQL 从 join 返回平面数组

    我通过 DQL 中的常规 LEFT JOIN 选择 3 个实体 它们通过连接表关联 连接表还定义了实体以及带注释的关系 查询执行没有问题 但我的结果作为平面数组返回 我期望一个包含三个实体作为每个索引的数组元素的数组 SELECT e1 e
  • 如何在数据列表 HTML PHP 中设置选择

    您好我想知道是否有一种方法可以在数据列表中设置选定的值 我想要这样的东西
  • 如何使用配置文件 (.ebextensions) 在 AWS Elastic Beanstalk 上安装 PHP IMAP 扩展?

    有谁知道如何使用配置文件 ebextensions 在 AWS Elastic Beanstalk 上安装和启用 PHP IMAP 扩展 我使用的是 64 位 Amazon Linux 2017 03 v2 4 0 运行 PHP 7 0 1

随机推荐

  • 将 Joomla 安装在子目录中

    你们中有些人可能知道 Wordpress 在设置中有一个选项 允许将站点安装在子目录中 同时将站点 URL 设为主域 它类似于 站点 url 和 Wordpress url 我正在 Joomla 中寻找类似的东西 我知道它没有内置选项 但如
  • Azure 存储队列和多个 WebJobs 实例:QueueTrigger 是否会在触发时设置消息租用时间?

    场景 生产者发送一条消息到Storage Queue 一个WebJobs在QueueTrigger上处理该消息 每条消息只能处理一次 可以有多个WebJob实例 我一直在谷歌搜索 根据我读到的内容 我需要编写处理消息的函数 使其具有幂等性
  • Webbrowser,检测是否安装了PDF阅读器?

    有没有办法检查用户是否安装了PDF阅读器 也许使用 ActiveX 组件 请你帮助我好吗 您可以使用以下命令检测已安装的插件window navigator plugins这将返回一个包含已安装插件详细信息的数组 但这不适用于 Intern
  • 使用 Clang 与全局模板变量重复符号

    我有这三个文件 foo h pragma once template
  • 具有CurrencyFormat 和PropertyChanged 触发器的TextBox 不接受正确的文本

    我有一个TextBox在绑定到类型窗口的依赖属性的 WPF 窗口中double 见下文 每当用户输入TextBox when The TextBox为空 或者 全部文字都被选中 键入的文本被错误地接受 例如 如果我在这两种情况下键入 5 则
  • 在获取请求中显示不同的结果,按属性分组并计算该属性的总数

    设想 我有一个费用跟踪 iOS 应用程序 并且有一个名为 DashBoardViewController 的视图控制器 表视图控制器 带 FRC 它基本上可以对给定一周 一个月或一年的费用 收入进行分类 并将其显示为节标题例如标题 2012
  • 如何使方法的返回对象通用?

    我需要执行类似下面的代码的操作 但是 new T 不起作用 它说 无法创建变量类型 T 的实例 因为它没有 new 约束 public static T MapToBaseDropDown2
  • 如何启动电子邮件客户端,然后使用 Javascript 进行页面重定向?

    我需要使网站在其他浏览器上的功能与 IE6 中的功能完全相同 当前代码的一部分类似于以下内容 在 IE 中 这会导致邮件客户端打开并准备好指定的消息 然后将浏览器重定向到 newPage html 然而 其他浏览器仅重定向到 newPage
  • 在 R 中对数据进行分类

    我试图根据数据类型将我的数据分类为不同的组 我的数据和代码如下 bank ROE bank1 0 73 bank2 0 94 bank3 0 62 bank4 0 57 bank5 0 31 bank6 0 53 bank7 0 39 ba
  • 归并排序最有效的实现

    所以我想知道 Java 中合并排序最有效的实现是什么 如果它的时间效率会根据语言而变化 这个问题可能很微不足道 但我的最终目标是向更有经验的程序员学习 这是我做的两个例子 version I made public static doubl
  • 如何通过循环将数据分组到同一标题下

    我正在尝试从两个连接表中获取数据 从一个表中我收集列表标题 从第二个表中我收集列表数据 型号代码 function view searching type items this gt db gt select searching type
  • ios 8 swift - 如何使用单独的数据源为表格视图添加页脚

    这两天我一直在努力解决这个问题 我只想将页脚 自定义单元格 添加到我的表格视图中 我有一个视图 上面有一些东西 标签 按钮 并且我添加了一个表格视图 为了拥有一个干净的控制器 对于数据源 我使用一个单独的文件 class MyDataSou
  • 解释以下C++方法[重复]

    这个问题在这里已经有答案了 define XL 33 define OR 113 define NOR 313 define TN 344 int to bits int critn char mask unsigned int x int
  • 如何使 window.showmodaldialog 在 chrome 37 中工作?

    我们有一个巨大的网络应用程序 我们使用window showmodaldialog用于警报 确认和弹出窗口 自 Chrome 版本 37 起 此调用已被禁用 有什么快速解决方法吗window showmodaldialog在最新版本的 Ch
  • PHP:包含深度嵌套目录层次结构中的页面 - 性能问题

    假设 我要包含深度嵌套目录层次结构中的一些页面 require path to project views forms member login submit php 我从操作系统课程中了解到 每次我们想要访问 搜索文件时 inode 在u
  • 在二维数组中查找邻居

    有没有一种简单的方法可以找到二维数组中元素的邻居 即元素周围的八个元素 不仅仅是以不同的组合对索引进行减法和加法 如下所示 array i 1 i array i 1 i 1 array i i 1 array i 1 i 等等 伪代码 r
  • C++ 中的网络适配器信息

    在 Windows 8 上 我可以在 C 中使用任何标准函数来获取系统中处理以太网的每个网络接口卡的 IP 地址和网络掩码列表吗 我能想到的获取此类信息的唯一其他方法是解析ipconfig 但我真的不想在 C 中走这条路 微软有一个东西叫I
  • 如何使用 DictationServices.framework

    Mac 10 8 包含私有 DictationServices framework 它永远不会在 App Store 中获得批准 而只是出于兴趣 如何利用它的私有类 方法和消息 root DictationServices framewor
  • iTextSharp - 在合并 PDF 中使用 PDFAction.GotoLocalPage

    我编写了一些代码 将多个 PDF 合并为一个 PDF 然后从 MemoryStream 中显示该 PDF 这很好用 我需要做的是将目录添加到文件末尾 并提供指向每个 PDF 开头的链接 我计划使用 GotoLocalPage 操作来执行此操
  • 自定义 Woocommerce 购物车页面中 2 列的结账字段

    新的 WooCommerce 更新结帐字段后 列的行为很奇怪 这是我的结帐字段自定义 add filter woocommerce checkout fields custom override checkout fields functi