Переместить поле Примечания к оформлению заказа выше "создать учетную запись" в WooCommerce 3
Я использую версию WooCommerce 3.2.1, и я попытался добавить приведенный ниже код в свою тему functions.php
для перемещения поля оформления заказа, но это не работает:
add_filter( 'woocommerce_checkout_fields', 'bbloomer_move_checkout_fields_woo_3');
function bbloomer_move_checkout_fields_woo_3( $fields ) {
$fields['order']['order_comments']['priority'] = 8;
return $fields;
}
Я хотел бы переместить текстовое поле "Примечания к заказу" над флажком "создать учетную запись" и в поле "billing_postcode" на странице оформления заказа.
Как я могу заставить это работать?
3
Author: LoicTheAztec, 2017-11-24
1 answers
В приведенном ниже коде:
- Я удаляю "Примечания к заказу"
- Я добавляю аналогичное пользовательское поле выставления счетов (с именем "billing_customer_note")
- Я переупорядочиваю поля (*)
- Как только Заказ отправлен при оформлении заказа, я добавляю данные пользовательского поля выставления счетов "примечание клиента" в качестве классического примечания к заказу...
Вот этот код:
// Checkout fields customizations
add_filter( 'woocommerce_checkout_fields' , 'customizing_checkout_fields', 10, 1 );
function customizing_checkout_fields( $fields ) {
// Remove the Order Notes
unset($fields['order']['order_comments']);
// Define custom Order Notes field data array
$customer_note = array(
'type' => 'textarea',
'class' => array('form-row-wide', 'notes'),
'label' => __('Order Notes', 'woocommerce'),
'placeholder' => _x('Notes about your order, e.g. special notes for delivery.', 'placeholder', 'woocommerce')
);
// Set custom Order Notes field
$fields['billing']['billing_customer_note'] = $customer_note;
// Define billing fields new order
$ordered_keys = array(
'billing_first_name',
'billing_last_name',
'billing_company',
'billing_country',
'billing_address_1',
'billing_address_2',
'billing_city',
'billing_state',
'billing_postcode',
'billing_phone',
'billing_email',
'billing_customer_note', // <= HERE
);
// Set billing fields new order
$count = 0;
foreach( $ordered_keys as $key ) {
$count += 10;
$fields['billing'][$key]['priority'] = $count;
}
return $fields;
}
// Set the custom field 'billing_customer_note' in the order object as a default order note (before it's saved)
add_action( 'woocommerce_checkout_create_order', 'customizing_checkout_create_order', 10, 2 );
function customizing_checkout_create_order( $order, $data ) {
$order->set_customer_note( isset( $data['billing_customer_note'] ) ? $data['billing_customer_note'] : '' );
}
Код входит в function.php файл вашей активной дочерней темы (или темы) или также в любом плагине файл.
Протестировано и работает.
4
Author: LoicTheAztec, 2017-11-24 01:38:03