php - Woocommerce 将两个结帐字段包装在一个 div 中
问题描述
我正在尝试将结帐时的帐单状态和帐单国家/地区字段包装在 div 中,但似乎不起作用。这是我的代码:
<div class="woocommerce-billing-fields__field-wrapper">
<?php
$fields = $checkout->get_checkout_fields( 'billing' );
foreach ( $fields as $key => $field ) {
if($key == 'billing_state'){
} else if($key == 'billing_country'){
} else{
woocommerce_form_field( $key, $field, $checkout->get_value( $key ) );
}
}
?>
<div class="state-province">
<?php woocommerce_form_field( "billing_state", $checkout->checkout_fields['billing']['billing_state'], $checkout->get_value( 'billing_state' ) ); ?>
<?php woocommerce_form_field( "billing_country", $checkout->checkout_fields['billing']['billing_country'], $checkout->get_value( 'billing_country' ) ); ?>
</div>
</div>
解决方案
我找到了一个解决方案禁用类'form-row'以避免来自woocommerce的js并添加优先级:
function change_woocommerce_field_markup($field, $key, $args, $value) {
$field = str_replace('form-row', '', $field);
$field = '<div class="single-field-wrapper" data-priority="' . $args['priority'] .
'">' . $field . '</div>';
if($key === 'billing_state')
$field = '<div class="state-province">'.$field;
else if ($key === 'billing_country')
$field = $field.'</div>';
return $field;
}
add_filter("woocommerce_form_field","change_woocommerce_field_markup", 10, 4);
推荐阅读
- android - 更改材质组件样式属性失败
- asp.net-web-api - 使用 Unity 根据其使用者/上下文依赖项注入特定依赖项
- reactjs - React 不记得 firebase 状态错误 this.setState is not a function
- angularjs - AngularJS:使用组件从 $scope 迁移
- php - 会话登录设置为 1,但在重定向时无法识别
- python - 使用 MatPlotlib 或 Pandas 使用第三个变量绘制 X 与 Y 的散点图
- swift - 透明 SCNFloor() 上的 SceneKit 阴影
- haskell - 为什么一切都是 Functor 以及 Monomorphic 类型呢
- javascript - React - 接收新道具时子组件不更新
- phpstorm - 如何在 PhpStorm 中删除垂直线