Отображение значения метаданных заказа Woocommerce в текстовом поле ввода только для чтения

Я использую фрагмент из более крупного (красивого) кода, который я получил из ответа, предоставленного @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'), но не уверен, как я мог бы реализовать это (если возможно) в приведенном выше фрагменте. Любая помощь будет принята с благодарностью и заранее благодарна!

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
0
186
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Попробуйте следующую замену на поле ввода только для чтения(для 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 вашей активной дочерней темы (или активной темы). Проверено и работает.

Работает отлично! Спасибо как всегда!

Acephalia 27.02.2019 23:26

Другие вопросы по теме