Как отобразить пользовательское поле выставления счетов при оформлении заказа в WooCommerce admin single orders

#php #wordpress #woocommerce #custom-fields #orders

#php #wordpress #woocommerce #пользовательские поля #заказы

Вопрос:

Во время процесса оформления заказа в разделе «Компания» у меня есть другое поле для регистрационного номера компании. Теперь все работает нормально, поле правильно сохраняется при каждом заказе, но мне было интересно, как я могу отобразить регистрационный номер компании под названием компании, когда я открываю заказ в панели администратора.

PS: имя поля billing_cif

Мета заказа в панели администратора WooCommerce

Комментарии:

1. Обычно мы ожидали, что вы предоставите в своем вопросе свою собственную попытку реального кода. Поскольку для этого существует некоторый существующий код в качестве официального фрагмента кода WooCommerce (но с ошибкой) , я ответил на нижеприведенный вопрос в исключительных случаях. Другие более сложные способы (но более сложные) требуют от вас реальной попытки кода в вашем вопросе.

Ответ №1:

Из этого фрагмента WooCommerce, найденного в разделе Настройка полей оформления заказа с использованием действий и фильтров (где есть небольшая ошибка), попробуйте выполнить следующее:

 /**
 * Display field value on the order edit page
 */
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){
    echo '<p><strong>'.__('My Field').':</strong><br>' . get_post_meta( $order->get_id(), 'billing_cif', true ) . '</p>';
}
 

Вы должны быть уверены, что правильная meta_key таблица billing_cif в разделе wp_postmeta выглядит так, как ее можно было бы сохранить, например _billing_cif , вместо этого.

Код вводится functions.php файл активной дочерней темы (или активной темы). Это должно работать.


Или то же самое в лучшем виде, начиная с WooCommerce 3:

 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 ){
    $billing_cif = $order->get_meta('billing_cif'); // Get custom field value

    if( ! empty( $billing_cif ) ) {
        echo '<p><strong>'.__('CIF reference').':</strong><br>' . $billing_cif . '</p>';
    }
}
 

Код вводится functions.php файл активной дочерней темы (или активной темы). Это тоже должно работать.