1 回答
TA贡献1921条经验 获得超9个赞
您错过了priority允许重新排序表单字段的表单字段“ ”参数……在下面的代码中,我使用for循环动态生成 20 字段(仅用于测试,因为它是最快的)。
在这里,这些表单字段的优先级从第一个的 200 开始,每个字段增加 10。
代码:
add_filter( 'woocommerce_checkout_fields', 'customizing_checkout_fields', 10, 1 );
function customizing_checkout_fields( $fields ) {
## 1. unset the unwanted billing fields
unset($fields['order']['order_comments']);
unset($fields['billing']['billing_company']);
unset($fields['billing']['billing_address_1']);
unset($fields['billing']['billing_address_2']);
unset($fields['billing']['billing_city']);
unset($fields['billing']['billing_postcode']);
unset($fields['billing']['billing_state']);
unset($fields['billing']['billing_phone']);
## 2. Add 20 form fields (from "Test 1" to "Test 20")
// Using a for loop to make the 20 fields dynamically
for ( $i = 1, $j = 0; $i <= 20; $i++, $j += 10 ) {
$fields['billing']['billing_test' . $i] = array(
'label' => __('Test', 'woocommerce') . ' ' . $i,
'placeholder' => _x('', 'placeholder', 'woocommerce'),
'required' => true,
'clear' => true,
'class' => array('form-row'),
'priority' => (200 + $j) // <== The priority starting at 200 and increasing by 10 each time
);
}
return $fields;
}
代码位于您的活动子主题(或活动主题)的 function.php 文件中。测试和工作。
因此,在您的情况下,您将使用(没有 for 循环):
add_filter( 'woocommerce_checkout_fields', 'customizing_checkout_fields', 10, 1 );
function customizing_checkout_fields( $fields ) {
## 1. unset the unwanted billing fields
unset($fields['order']['order_comments']);
unset($fields['billing']['billing_company']);
unset($fields['billing']['billing_address_1']);
unset($fields['billing']['billing_address_2']);
unset($fields['billing']['billing_city']);
unset($fields['billing']['billing_postcode']);
unset($fields['billing']['billing_state']);
unset($fields['billing']['billing_phone']);
## 2. Add 20 form fields (from "Test 1" to "Test 20")
$fields['billing']['billing_test1'] = array(
'label' => __('Test 1', 'woocommerce'),
'placeholder' => _x('', 'placeholder', 'woocommerce'),
'required' => true,
'clear' => true,
'class' => array('form-row'),
'priority' => 200 // <== <== <== priority
);
$fields['billing']['billing_test2'] = array(
'label' => __('Test 2', 'woocommerce'),
'placeholder' => _x('', 'placeholder', 'woocommerce'),
'required' => true,
'clear' => true,
'class' => array('form-row'),
'priority' => 210 // <== Increased by 10
);
// A further 18 copies of the above field from "Test 3" to "Test 20"
return $fields;
}
- 1 回答
- 0 关注
- 166 浏览
添加回答
举报
