Как сделать так, чтобы в новом столбце списка заказов администратора WooCommerce был доступен поиск? - PullRequest
1 голос
/ 18 апреля 2020

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

В столбце обычно есть номер счета-фактуры с переменной $numero_documento

add_filter('manage_edit-shop_order_columns', 'boleta_o_factura' );
function boleta_o_factura( $order_columns ){
    $order_columns['boleta_factura'] = "Boleta o Factura Total_Pedido";
    return $order_columns;
}

add_action( 'manage_shop_order_posts_custom_column','misha_order_items_column_cnt' );
function misha_order_items_column_cnt( $colname ) {
    global $the_order; // the global order object
    $numero_documento = get_post_meta( $the_order->get_id(), 'Documento_numero', true );
    $pdf_link = get_post_meta( $the_order->get_id(), '_pdf_url', true );
    if( $colname == 'boleta_factura' ) {
        if( empty( $numero_documento )){
            echo get_post_meta($the_order->get_id(), 'error_logs_document', true);
        }
        else{
            echo "<a target='_blank' href=".$pdf_link.">Doc ".$numero_documento."</a><br>";
        }   
    echo $the_order->get_formatted_order_total();
    }
}

1 Ответ

0 голосов
/ 26 апреля 2020

Вы можете сделать его доступным для поиска с помощью крюка woocommerce_shop_order_search_fields, просто добавьте правильный meta_key


Примечание: У меня есть немного упростил код, потому что у меня нет тех полей (post meta), с которыми вы тестируете свой код, но концепция работает


Примечание: manage_shop_order_posts_custom_column содержит в качестве второго параметра $post_id, поэтому использование global необязательно

// Add a Header
function custom_shop_order_column( $columns ) {
    // Add new column
    $columns['boleta_factura'] = "Boleta o Factura Total_Pedido";

    return $columns;
}
add_filter( 'manage_edit-shop_order_columns', 'custom_shop_order_column', 10, 1 );

// Populate the Column
function custom_shop_order_list_column_content( $column, $post_id ) {
    // Compare
    if ( $column == 'boleta_factura' ) {
        $numero_documento = get_post_meta( $post_id, 'Documento_numero', true );

        if ( $numero_documento ) {
            echo $numero_documento;
        } else {
            echo 'my url';
        }
    }
}
add_action( 'manage_shop_order_posts_custom_column' , 'custom_shop_order_list_column_content', 10, 2 );

// Make metakey searchable
function custom_shop_order_search_fields( $meta_keys ) {
    $meta_keys[] = 'Documento_numero';
    return $meta_keys;
}
add_filter( 'woocommerce_shop_order_search_fields', 'custom_shop_order_search_fields', 10, 1 );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...