Как добавить отчество в адрес
Для того, чтобы добавить отчество в адрес на странице оформления заказа, нужно добавить в файл functions.php дочерней темы такой код
add_filter( 'woocommerce_default_address_fields', function ( $fields ) {
$fields['first_name']['class'] = [ 'form-row-wide', 'address-field' ];
$fields['last_name']['class'] = [ 'form-row-wide', 'address-field' ];
$fields['second_name'] = [
'label' => 'Отчество',
'required' => true,
'class' => [ 'form-row-wide', 'address-field' ],
'autocomplete' => 'family-name',
'priority' => 11,
];
unset( $fields['company'] );
return $fields;
} );
add_filter( 'woocommerce_customer_meta_fields', function ( $fields ) {
$fields['billing']['fields']['billing_second_name'] = [
'label' => 'Отчество',
];
$fields['shipping']['fields']['shipping_second_name'] = [
'label' => 'Отчество',
];
return $fields;
} );
add_filter( 'woocommerce_order_formatted_billing_address', function ( $fields, $order ) {
$fields['second_name'] = get_post_meta( $order->get_id(), '_billing_second_name', true );
return $fields;
}, 10, 2 );
add_filter( 'woocommerce_order_formatted_shipping_address', function ( $fields, $order ) {
$fields['second_name'] = get_post_meta( $order->get_id(), '_shipping_second_name', true );
return $fields;
}, 10, 2 );
add_filter( 'woocommerce_formatted_address_replacements', function ( $replacements, $args ) {
$replacements['{second_name}'] = isset( $args['second_name'] ) ? $args['second_name'] : '';
$replacements['{name}'] = sprintf(
/* translators: 1: first name 2: last name */
_x( '%1$s %3$s %2$s', 'full name', 'woocommerce' ),
$args['first_name'],
$args['last_name'],
isset( $args['second_name'] ) ? $args['second_name'] : ''
);
return $replacements;
}, 10, 2 );
Если нужно чтобы это поле не обязательным, то параметр в параметре required
нужно false
.
Вам помог ответ?