我正在尝试将签出页面的“一些”字段包装在一个div中,并插入一些按钮,因为我正在实现一些地址验证。
基本上从一开始,我需要一个公司、地址行1、地址行2、城镇和邮政编码的包装,这样我就可以显示/隐藏它们,但我似乎什么都做不到。这是我试过的-
在我的过滤器文件中:
function change_woocommerce_field_markup($field, $key, $args, $value){
if($key === \'billing_company\') {
$field = \'<div class="address-wrapper">\'.$field;
}
else if ($key === \'billing_postcode\') {
$field = $field.\'</div>\';
}
else {
$field = $field;
}
return $field;
}
add_filter(\'woocommerce_form_field\', \'\\App\\change_woocommerce_field_markup\', 10, 4);
因此,我正在使用打开和关闭包装器的html预加和附加相关字段。但是,生成的HTML如下所示:
<div class="address-wrapper"></div>
<p class="form-row form-row-first validate-required" id="billing_first_name_field"....
<p class="form-row form-row-last validate-required" id="billing_last_name_field"....
所以它把包装纸放在容器的顶部!我不明白,这是怎么回事?
ThanksKevin公司
SO网友:Gigawwad
我正在使用Bootstrap 4。x、 所以我也想改变结构。我所做的工作如下:
在里面woocommerce/templates/checkout/form-billing.php
我可以通过调用以下命令分别针对所有字段:
<div class="row">
<div class="col-6">
<?php woocommerce_form_field(\'billing_first_name\', array(\'placeholder\' => \'Vorname *\', \'required\' => true), $checkout->get_value(\'billing_first_name\')); ?>
</div>
<div class="col-6">
<?php woocommerce_form_field(\'billing_last_name\', array(\'placeholder\' => \'Nachname *\', \'required\' => true), $checkout->get_value(\'billing_last_name\')); ?>
</div>
</div>
输出插入
<p class="form-row form-row-first validate-required" id="billing_<name-of-field>_field">
, 因为它是在中预定义的:
plugins/woocommerce/includes/wc-template-functions.php 第2692行。所以没有办法改变它,因为它是在模板函数中硬编码的。您可以用普通HTML编写自己的表单字段,检查
woocommerce_form_field();
@谢谢你提供的信息:谢谢你指出国家字段有问题,我遇到了这个恼人的错误。如果检查文件,则第141行有以下代码:rows.detach().appendTo( wrapper );
. 如果您查看第114行,您将看到rows 指向.form-row, 在wc模板函数中硬编码。php。