为了账号安全,请及时绑定邮箱和手机立即绑定

Woocommerce 将两个结账字段封装在一个 div 中

Woocommerce 将两个结账字段封装在一个 div 中

PHP
不负相思意 2023-09-08 16:40:18
我试图将结帐时的帐单状态和帐单国家/地区字段包装在 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>
查看完整描述

1 回答

?
狐的传说

TA贡献1804条经验 获得超3个赞

我找到了一个解决方案,禁用类“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);

这是解释:https://wordpress.stackexchange.com/questions/309700/how-to-hook-on-a-woocommerce-checkout-field/309788


查看完整回答
反对 回复 2023-09-08
  • 1 回答
  • 0 关注
  • 48 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信