Показать пользовательское поле из кассы woocommerce на быстром просмотре страницы заказа - PullRequest
0 голосов
/ 26 апреля 2018

Я следую всем шагам из этого урока: https://docs.woocommerce.com/document/tutorial-customising-checkout-fields-using-actions-and-filters/

    // Hook in
    add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );

    // Our hooked in function - $fields is passed via the filter!
    function custom_override_checkout_fields( $fields ) {
         $fields['shipping']['shipping_phone'] = array(
         'label'     => __('Phone', 'woocommerce'),
        'placeholder'   => _x('Phone', 'placeholder', 'woocommerce'),
        'required'  => false,
        'class'     => array('form-row-wide'),
        'clear'     => true
         );

         return $fields;
    }

    /**
     * Display field value on the order edit page
     */

    add_action( 'woocommerce_admin_order_data_after_shipping_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 From Checkout Form').':</strong> ' .        get_post_meta( $order->get_id(), '_shipping_phone', true ) . '</p>';
    }

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

Спасибо!

1 Ответ

0 голосов
/ 06 августа 2018

Я обнаружил действие для отображения настраиваемых полей в окне предварительного просмотра заказа:

add_action( 'woocommerce_admin_order_preview_start', 'custom_display_order_data_in_admin' );

или:

add_action( 'woocommerce_admin_order_preview_end', 'custom_display_order_data_in_admin' );

Но, как вы могли заметить, эти два действия добавят настраиваемые полялибо в начале, либо в конце.

РЕДАКТИРОВАТЬ: весь код, который я использовал в моем пользовательском плагине, выглядит так:

function custom_display_order_data_in_admin( $order ){  ?>
        <div class="order_data_column">
            <div class="address">
            <?php
                echo '<p><strong>' . __( 'billing cart' ) . ':</strong>' . get_post_meta( $order->id, '_billing_cart', true ) . '</p>';
             ?>
            </div>
            <div class="edit_address">
                <?php woocommerce_wp_text_input( array( 'id' => '_billing_cart', 'label' => __( 'billing cart' ), 'wrapper_class' => '_billing_company_field' ) ); ?>

            </div>
        </div>
    <?php }

    add_action( 'woocommerce_admin_order_data_after_shipping_address', 'custom_display_order_data_in_admin' );

    add_action( 'woocommerce_admin_order_preview_end', 'custom_display_order_data_in_admin' );

Вы должны просто изменить параметрыкак вы использовали в своем собственном коде

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