Intereting Posts
Как убедиться, что плагины wordpress и woocommerce работают со всеми конфигурациями как вы получаете имя пользователя автора? Чрезвычайно медленный pageload для длинного сообщения при использовании the_content? Ссылка WordPress не работает на Linkedin Попытка реализовать .pdf Загрузка файлов в Admin для плагина Измените файл PHP родительской темы и сохраните в дочерней теме Плагин: выполнить функцию после сохранения «страницы параметров» Разделение основного запроса на несколько циклов с помощью query_posts и / или pre_get_posts? Последующие действия по типу поля Custom Faby multicheck даты / времени и полей загрузки файлов (изображений) для настраиваемых полей (например, с большим количеством полей) Что вы порекомендуете для размещения 10 + отдельных сайтов WordPress? Как добавить WordPress Audio Player в качестве аудио в аудиозаписях? Как добавить один и тот же виджет дважды? как установить bootstrap на двадцать четыре темы Сортировка записей по дате, смешивающих два типа сообщений

Как отобразить пользовательское поле в заказах woocommerce в панели администратора?

в настоящее время я добавляю пользовательское поле фактурирования в woocommerce

function custom_override_checkout_fields( $fields ) { $fields['billing']['billing_phone_new'] = array( 'label' => __('Phone 2', 'woocommerce'), 'placeholder' => _x('Phone 2', 'placeholder', 'woocommerce'), 'required' => false, 'class' => array('form-row-wide'), 'clear' => true ); return $fields; } add_filter('woocommerce_checkout_fields','custom_override_checkout_fields'); 

Мне нужно изменить это значение поля в стороне администратора. В настоящее время я могу редактировать все другие значения в биллинговом адресе, но это значение не отображается в разделе admin. Я использую следующий код только для того, чтобы увидеть значение в разделе admin.

 function order_phone_backend($order){ echo "<p><strong>Billing phone 2:</strong> " . get_post_meta( $order->id, '_billing_phone_new', true ) . "</p><br>"; } add_action( 'woocommerce_admin_order_data_after_billing_address', 'order_phone_backend', 10, 1 ); 

Я прочитал документацию https://docs.woothemes.com/document/tutorial-customising-checkout-fields-using-actions-and-filters/ . Но все в этом документе, работающем корректно, ожидает, что billing_phone / Phone заметьте в разделе Custom. Я проверяю параметр экрана, но я уже отметил пользовательское поле. Другое настраиваемое поле и его значение видны и редактируются.

Как я могу отредактировать это значение в конце. Пожалуйста помоги .

Solutions Collecting From Web of "Как отобразить пользовательское поле в заказах woocommerce в панели администратора?"

Код, который вы предоставили, является неполным. Не уверен, что это единственный код, который вы используете для достижения того, чего хотите. Итак, помимо первого кода, который вы предоставили, я добавляю все остальное код, который требуется для отображения нового поля в бэкэнде в поле «Детали заказа» и сделать его редактируемым через настраиваемые поля. Обратите внимание, что во втором кодовом блоке вы назвали поле ключа как _billing_new_phone . Любое настраиваемое имя ключа поля, начинающееся с символа _ (подчеркивание), является скрытым настраиваемым полем и не будет отображаться на бэкэнд в разделе «Пользовательские поля».

 /** * Process the checkout */ add_action('woocommerce_checkout_process', 'my_custom_checkout_field_process'); function my_custom_checkout_field_process() { // Check if set, if its not set add an error. if ( ! $_POST['billing_phone_new'] ) wc_add_notice( __( 'Phone 2 is compulsory. Please enter a value' ), 'error' ); } /** * Update the order meta with field value */ add_action( 'woocommerce_checkout_update_order_meta', 'my_custom_checkout_field_update_order_meta' ); function my_custom_checkout_field_update_order_meta( $order_id ) { if ( ! empty( $_POST['billing_phone_new'] ) ) { update_post_meta( $order_id, 'billing_phone_new', sanitize_text_field( $_POST['billing_phone_new'] ) ); } } /** * 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>'.__('Phone 2').':</strong> <br/>' . get_post_meta( $order->id, 'billing_phone_new', true ) . '</p>'; } 

WooCommerce не делает новое поле проверки редактируемым в соответствии со стандартным полем «Сведения о заказе». Он будет доступен в режиме «только просмотр» в этом поле, но вы можете отредактировать его с помощью стандартного настраиваемого поля WordPress. См. Снимок экрана ниже.

введите описание изображения здесь

Вот решение: доступ к прямым данным продукта не разрешен, например

 $product->id 

Правильный способ продвижения вперед:

 $product->get_id()