我正在开发我的woocommerce电子商店,我想实现CSS"浮动标签"使用https://github.com/tonystar/float-label-css作为结帐表单字段,以获得更好的用户体验。
为了实现这一点,<Label>
必须在<Input>
之后。我似乎无法找到一种简单的方法来改变woocommerce中的顺序。
/>
最终代码由:
<?php foreach ( $checkout->checkout_fields['billing'] as $key => $field ) : ?>
<?php woocommerce_form_field( $key, $field, $checkout->get_value( $key ) ); ?>
<?php endforeach; ?>
函数:woocommerce_form_field是控制表单生成wc-template-functions.php的长代码。 我认为可以通过更改代码来实现结果,但不希望在此函数中更改长代码。是否有更简单的方法?我想也许,如果
<?php woocommerce_form_field( $key, $field, $checkout->get_value( $key ) ); ?>
可以修改以仅生成Input
代码,然后添加仅生成<Label>
的新行,并循环这些代码?我不知道如何修改上面的内容只能获取标签或输入(如果可能的话)。任何提示都非常感谢。
答案 0 :(得分:0)
@tonystar。 我通过更改form-billing.php和form-shipping.php循环为每个表单添加了一个“has-float-label”类:
<xsl:template match="/text">
Unnormalized:
"<xsl:value-of select='.'/>"
Normalized: "<xsl:value-of select='normalize-space()'/>"
</xsl:template>
我取消了float-label-css:
<?php foreach ( $checkout->checkout_fields['billing'] as $key => $field ) : ?>
<span class="has-float-label">
<?php woocommerce_form_field( $key, $field, $checkout->get_value( $key ) ); ?>
</span>
使用了我的functions.php中提供的helgatheviking的过滤器代码:
wp_enqueue_style( 'float-label-css', get_stylesheet_directory_uri() . '/bootstrap-float-label.min.css' )
最终因为woocommerce而有点困难? (或者我的主题?)正在制作一些奇怪的“data-o_class”es,它通过在相同的“span class”下添加城市和邮政编码来搞砸城市/邮政编码标签。我不知道如何解决这个问题所以我最后跳过了使用浮动标签。但它适用于所有其他领域/标签,并且过渡非常好。