Отображение значения метаданных заказа Woocommerce в текстовом поле только для чтения - PullRequest
0 голосов
/ 27 февраля 2019

Я использую фрагмент из более крупного (красивого) кода, который я получил от ответа, предоставленного @LoicTheAztec здесь: WooCommerce: добавление пользовательского Metabox на страницу заказа администратора

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

1 Ответ

0 голосов
/ 27 февраля 2019

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

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...