Отобразить пользовательское поле флажка в списке заказов администратора woocomerce - PullRequest
0 голосов
/ 14 февраля 2020

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

function ERP_Checkbox() {
    echo '<div id="ERP_Checkbox">';

    woocommerce_form_field( 'ERP', array(
        'type'      => 'checkbox',
        'class'     => array('input-checkbox'),
        'label'     => __('Integrated on ERP'),
    ),  WC()->checkout->get_value( 'ERP' ) );

    echo '</div>';
}

Также мне нужно сохранить значение при проверке от администратора

function save_order_custom_meta_data( $order, $data ) {
    if ( isset($_POST['ERP']) )
        $order->update_meta_data('ERP', '1' );
}

Затем мое, чтобы отобразить его в порядке администратора list

function display_ERP_order_column_data( $column ) {
    global $the_order, $post;

    if( $column  == 'ERP Sent' ) {
        if( $ERP= $the_order->get_meta( 'ERP' ) ) {
            echo __("Yes", "woocommerce");
        } else {
            echo ' - ';
        }
    }
}

Я совершенно не знаком с редактированием woocommerce и PHP. Определенно мне не хватает действий для отображения результатов. Может ли кто-нибудь помочь мне в этом?

1 Ответ

0 голосов
/ 14 февраля 2020

Если я правильно понимаю, вы хотите добавить новый столбец в список заказов администратора woocomerce с флажком (см. Код ниже)

что именно должен делать флажок? просто включен или выключен?

/**
 * Adds 'ERP' column header to 'Orders' page immediately after 'Total' column.
 */
function add_erp_order_column( $columns ) {
    $new_columns = array();

    foreach ( $columns as $column_name => $column_info ) {

        $new_columns[ $column_name ] = $column_info;

        if ( $column_name === 'order_total' ) {
            $new_columns['erp'] = __( 'ERP SENT', 'woocommerce' );
        }
    }

    return $new_columns;
}
add_filter('manage_edit-shop_order_columns', 'add_erp_order_column', 10, 1 );

/**
 * Display data to 'ERP' column.
 */
function display_enclosed_invoice_order_column_data( $column ) {
    global $the_order, $post;

    if( $column == 'erp' ) {
        woocommerce_form_field( 'erp_checkbox', array(
            'type'      => 'checkbox',
            'required'  => true,
        ));
    }
}
add_action( 'manage_shop_order_posts_custom_column' , 'display_enclosed_invoice_order_column_data' );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...