Основной файл, который отвечает за отображение этих полей, находится в плагине WooCommerce в: includes/admin/meta-boxes/class-wc-meta-box-order-data.php
.
Единственный доступный и эффективный хук: woocommerce_admin_shipping_fields
.
Но вы сможете изменить только порядок полей для выставления счетов администратора, используя что-то вроде:
add_filter( 'woocommerce_admin_billing_fields' , 'change_order_admin_billing_fields' );
function change_order_admin_billing_fields( $fields ) {
global $the_order;
$address_2 = $fields['address_2'];
unset($fields['address_2']);
$fields['address_2'] = $address_2;
return $fields;
}
, что даст вам что-то вроде:
Таким образом, как вы можете видеть , вы не получите поле выставления счета address_2
, которое будет отображаться после идентификатора транзакции , как вы sh, но только под полем выставления счета phone
.
Добавление - отображение поля billing_address_2
перед полем billing_country
:
add_filter( 'woocommerce_admin_billing_fields' , 'change_order_admin_billing_fields' );
function change_order_admin_billing_fields( $fields ) {
global $the_order;
$sorted_fields = [];
$address_2 = $fields['address_2'];
unset($fields['address_2']);
foreach ( $fields as $key => $values ) {
if( $key === 'country' ) {
$sorted_fields['address_2'] = $address_2;
}
$sorted_fields[$key] = $values;
}
return $sorted_fields;
}