如何在woocommerce表单中更改标签和输入的顺序?

时间:2016-10-18 21:11:13

标签: woocommerce


我正在开发我的woocommerce电子商店,我想实现CSS&#34;浮动标签&#34;使用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>的新行,并循环这些代码?我不知道如何修改上面的内容只能获取标签或输入(如果可能的话)。任何提示都非常感谢。

1 个答案:

答案 0 :(得分:0)

@tonystar。 我通过更改form-b​​illing.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”下添加城市和邮政编码来搞砸城市/邮政编码标签。我不知道如何解决这个问题所以我最后跳过了使用浮动标签。但它适用于所有其他领域/标签,并且过渡非常好。

工作浮动标签: working float labels

弄乱了城市和邮政编码字段标签: messed up city and postcode field labels