Я использую фрагмент из более крупного (красивого) кода, который я получил из ответа, предоставленного @LoicTheAztec здесь: WooCommerce: добавьте пользовательский метабокс на страницу заказа администратора
// Display field value on the order edit page (not in custom fields metabox)
add_action( 'woocommerce_admin_order_data_after_billing_address', 'my_custom_checkout_field_display_admin_order_meta', 10, 1 );
function my_custom_checkout_field_display_admin_order_meta($order){
$my_custom_field = get_post_meta( $order->id, '_my_field_slug', true );
if ( ! empty( $my_custom_field ) ) {
echo '<p><strong>'. __("My Field", "woocommerce").':</strong> ' . get_post_meta( $order->id, '_my_field_slug', true ) . '</p>';}
}
Узнав о пользовательских атрибутах с помощью других вопросов, которые я нашел, я знаю, что могу сделать текстовое поле только для чтения, добавив array('readonly' => 'readonly'), но не уверен, как я мог бы реализовать это (если возможно) в приведенном выше фрагменте. Любая помощь будет принята с благодарностью и заранее благодарна!






Попробуйте следующую замену на поле ввода только для чтения(для Woocommerce 3+):
add_action( 'woocommerce_admin_order_data_after_billing_address', 'custom_field_value_display_on_admin_order', 10, 1 );
function custom_field_value_display_on_admin_order( $order ){
if ( $value = $order->get_meta('_my_field_slug') ) {
echo '<p class = "form-field"><label for = ""><strong>'. __("My Field", "woocommerce").':</strong></label>
<input type = "text" name = "my_field_slug" value = "' . $value . '" readonly></p>';
}
}
в файле function.php вашей активной дочерней темы (или активной темы). Проверено и работает.
Работает отлично! Спасибо как всегда!