Php 重新排列签出字段
我已使用此功能重新排列Woocommerce结帐页面上的订单字段:Php 重新排列签出字段,php,wordpress,woocommerce,Php,Wordpress,Woocommerce,我已使用此功能重新排列Woocommerce结帐页面上的订单字段: //Reorder checkout add_filter( 'woocommerce_checkout_fields', 'reorder_woo_fields' ); function reorder_woo_fields( $fields ) { $fields2['billing']['billing_first_name'] = $fields['billing'] ['billin
//Reorder checkout
add_filter( 'woocommerce_checkout_fields', 'reorder_woo_fields' );
function reorder_woo_fields( $fields ) {
$fields2['billing']['billing_first_name'] = $fields['billing'] ['billing_first_name'];
$fields2['billing']['billing_last_name'] = $fields['billing']['billing_last_name'];
$fields2['billing']['billing_company'] = $fields['billing']['billing_company'];
$fields2['billing']['billing_address_1'] = $fields['billing']['billing_address_1'];
$fields2['billing']['billing_city'] = $fields['billing']['billing_city'];
$fields2['billing']['billing_postcode'] = $fields['billing']['billing_postcode'];
$fields2['billing']['billing_country'] = $fields['billing']['billing_country'];
$fields2['billing']['billing_email'] = $fields['billing']['billing_email'];
$fields2['billing']['billing_phone'] = $fields['billing']['billing_phone'];
$fields2['shipping']['shipping_first_name'] = $fields['shipping']['shipping_first_name'];
$fields2['shipping']['shipping_last_name'] = $fields['shipping']['shipping_last_name'];
$fields2['shipping']['shipping_company'] = $fields['shipping']['shipping_company'];
$fields2['shipping']['shipping_address_1'] = $fields['shipping']['shipping_address_1'];
$fields2['shipping']['shipping_city'] = $fields['shipping']['shipping_city'];
$fields2['shipping']['shipping_postcode'] = $fields['shipping']['shipping_postcode'];
$fields2['shipping']['shipping_country'] = $fields['shipping']['shipping_country'];
// Add full width Classes and Clears to Adjustments
$fields2['billing']['billing_first_name'] = array(
'label' => __('First Name', 'woocommerce'),
'class' => array('form-row-wide'),
'clear' => true,
'required' => true
);
$fields2['billing']['billing_last_name'] = array(
'label' => __('Last Name', 'woocommerce'),
'class' => array('form-row-wide'),
'clear' => true,
'required' => true
);
$fields2['shipping']['shipping_first_name'] = array(
'label' => __('First Name', 'woocommerce'),
'class' => array('form-row-wide'),
'clear' => true,
'required' => true
);
$fields2['shipping']['shipping_last_name'] = array(
'label' => __('Last Name', 'woocommerce'),
'class' => array('form-row-wide'),
'clear' => true,
'required' => true
);
return $fields2;
}
这是可行的,但是当启用调试模式时,我在chekcout页面上得到一个错误:
注意:第58行未定义索引:order in/html/wordpress/wp content/plugins/woocommerce/templates/checkout/form-shipping.php
警告:第58行/html/wordpress/wp content/plugins/woocommerce/templates/checkout/form-shipping.php中为foreach()提供的参数无效
aynone能理解这一点吗?您可以尝试下面的代码对签出页面字段进行重新排序。您可以更改数组中字段的顺序
// for billing fields
add_filter("woocommerce_checkout_fields", "new_order_fields");
function new_order_fields($fields) {
$order = array(
"billing_company",
"billing_first_name",
"billing_last_name",
"billing_address_1",
"billing_address_2",
"billing_postcode",
"billing_country",
"billing_email",
"billing_phone"
);
foreach( $order as $field ) {
$ordered_fields[$field] = $fields["billing"][$field];
}
$fields["billing"] = $ordered_fields;
return $fields;
}
// for shipping fields
add_filter("woocommerce_checkout_fields", "new_shiping_order_fields");
function new_shiping_order_fields($fields) {
$order = array(
"shipping_city",
"shipping_postcode",
"shipping_country",
"shipping_first_name",
"shipping_last_name",
"shipping_company",
"shipping_address_1",
"shipping_address_2"
);
foreach( $order as $field ) {
$ordered_fields[$field] = $fields["shipping"][$field];
}
$fields["shipping"] = $ordered_fields;
return $fields;
}
您可以尝试使用下面的代码对签出页面字段进行重新排序。您可以更改数组中字段的顺序
// for billing fields
add_filter("woocommerce_checkout_fields", "new_order_fields");
function new_order_fields($fields) {
$order = array(
"billing_company",
"billing_first_name",
"billing_last_name",
"billing_address_1",
"billing_address_2",
"billing_postcode",
"billing_country",
"billing_email",
"billing_phone"
);
foreach( $order as $field ) {
$ordered_fields[$field] = $fields["billing"][$field];
}
$fields["billing"] = $ordered_fields;
return $fields;
}
// for shipping fields
add_filter("woocommerce_checkout_fields", "new_shiping_order_fields");
function new_shiping_order_fields($fields) {
$order = array(
"shipping_city",
"shipping_postcode",
"shipping_country",
"shipping_first_name",
"shipping_last_name",
"shipping_company",
"shipping_address_1",
"shipping_address_2"
);
foreach( $order as $field ) {
$ordered_fields[$field] = $fields["shipping"][$field];
}
$fields["shipping"] = $ordered_fields;
return $fields;
}
您可以在中找到有关这方面的完整指南 您正在定义一个新数组
$fields2
,该数组没有woocommerce\u checkout\u fields
中所需的所有字段。您只需要像这样覆盖$fields[“billing”]
和$fields[“shipping”]
要删除字段(例如订单注释),您可以将此行放在函数中
unset($fields['order']['order_comments']);
您可以在中找到有关这方面的完整指南 您正在定义一个新数组
$fields2
,该数组没有woocommerce\u checkout\u fields
中所需的所有字段。您只需要像这样覆盖$fields[“billing”]
和$fields[“shipping”]
要删除字段(例如订单注释),您可以将此行放在函数中
unset($fields['order']['order_comments']);
我看到的第一件事是,['billing']和['billing\u First\u name']之间有一个额外的空格。这可能是你的问题的原因我看到的第一件事是你在['billing']和['billing\u first\u name']之间有一个额外的空间。这可能是您出现问题的原因。这将只重新排列字段,但我还需要删除订单注释字段并为某些字段添加全宽(请参见上面的代码)…这将只重新排列字段,但我还需要删除订单注释字段并为某些字段添加全宽(请参见上面的代码)。。。