Bestimmen Sie die Reihenfolge der benutzerdefinierten Spalte in der Bestellliste des WooCommerce-Administrators

Lesezeit: 2 Minuten

Bestimmen Sie die Reihenfolge der benutzerdefinierten Spalte in der Bestellliste
Patrick

Ich habe eine neue benutzerdefinierte Spalte in der WooCommerce-Admin-Bestellliste hinzugefügt:

add_filter( 'manage_edit-shop_order_columns', 'custom_woo_columns_function' );
function custom_woo_columns_function( $columns ) {
    $new_columns = ( is_array( $columns ) ) ? $columns : array();
    

    // all of your columns will be added before the actions column
    $new_columns['storecode'] = '門市代碼';

    //stop editing
    
    return $new_columns;
}
// Change order of columns (working)
add_action( 'manage_shop_order_posts_custom_column', 'custom_woo_admin_value', 2 );
function custom_woo_admin_value( $column ) {
     
     $order_id = get_post($order_id)->ID;
     $CVSStoreID = get_post_meta($order_id, '_shipping_CVSStoreID', true);
    
    if ( $column == 'storecode' ) {
        echo ( isset( $CVSStoreID ) ? $CVSStoreID : '' );
    }
}

Wie soll ich diese Spalte nach vorne verschieben?

Geben Sie hier die Bildbeschreibung ein

1647206346 594 Bestimmen Sie die Reihenfolge der benutzerdefinierten Spalte in der Bestellliste
7uc1f3r

Ihr aktueller Code fügt die benutzerdefinierte Spalte am Ende hinzu, da Sie diese Spalte am Ende der vorhandenen hinzufügen $columns Reihe.

Um dies zu ändern, können Sie verwenden array_slicedann ist es nur noch eine Frage der Anpassung $number variabel in die gewünschte Position.

Sie erhalten also:

// Display new column on WooCommerce admin orders list (header)
function filter_manage_edit_shop_order_columns( $columns ) {
    // Number (adapt to your needs)
    $number = 4;
    
    // Add new column after $number column
    return array_slice( $columns, 0, $number, true )
    + array( 'storecode' => __( '門市代碼', 'woocommerce' ) )
    + array_slice( $columns, $number, NULL, true );
}
add_filter( 'manage_edit-shop_order_columns', 'filter_manage_edit_shop_order_columns', 10, 1 );

// Display details in the new column on WooCommerce admin orders list (populate the column)
function action_manage_shop_order_posts_custom_column( $column, $post_id ) {    
    // Compare
    if ( $column == 'storecode' ) {
        // Get order
        $order = wc_get_order( $post_id );
    
        // Get meta
        $value = $order->get_meta( '_shipping_CVSStoreID' );
        
        // NOT empty
        if ( ! empty ( $value ) ) {
            echo ucfirst( $value );
        } else {
            echo __( 'N/A', 'woocommerce' );
        }
    }
}
add_action( 'manage_shop_order_posts_custom_column' , 'action_manage_shop_order_posts_custom_column', 10, 2 );

999030cookie-checkBestimmen Sie die Reihenfolge der benutzerdefinierten Spalte in der Bestellliste des WooCommerce-Administrators

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy