#php #wordpress #woocommerce #custom-fields #orders
#php #wordpress #woocommerce #пользовательские поля #заказы
Вопрос:
Во время процесса оформления заказа в разделе «Компания» у меня есть другое поле для регистрационного номера компании. Теперь все работает нормально, поле правильно сохраняется при каждом заказе, но мне было интересно, как я могу отобразить регистрационный номер компании под названием компании, когда я открываю заказ в панели администратора.
PS: имя поля billing_cif
Комментарии:
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 файл активной дочерней темы (или активной темы). Это тоже должно работать.