web-dev-qa-db-fra.com

Ajouter des colonnes à la liste des commandes d'administration dans WooCommerce

J'utilise le plugin WooCommerce pour l'un de mes sites de commerce électronique WordPress sites Web. Je souhaite ajouter des colonnes à ma page de liste de commandes dans la zone d'administration de WooCommerce. Je ne suis pas en mesure de savoir où ajouter cela .

Quelqu'un peut-il indiquer la page de modèle à modifier pour répondre à mes besoins?

13
Upendra Sharma

Mise à jour: 30/03/2018 - ajout d'une fonction de positionnement aux nouvelles colonnes

Donc, si vous souhaitez ajouter des colonnes dans la page de liste d'administration des commandes (en backend):

AJOUT DE COLONNES DANS LA LISTE DES COMMANDES D'ADMINISTRATION DE WOOCOMMERCE

Dans l'exemple ci-dessous, nous ajoutons 2 nouvelles colonnes personnalisées, avant les colonnes "Total" et "Actions" existantes.

// ADDING 2 NEW COLUMNS WITH THEIR TITLES (keeping "Total" and "Actions" columns at the end)
add_filter( 'manage_edit-shop_order_columns', 'custom_shop_order_column', 20 );
function custom_shop_order_column($columns)
{
    $reordered_columns = array();

    // Inserting columns to a specific location
    foreach( $columns as $key => $column){
        $reordered_columns[$key] = $column;
        if( $key ==  'order_status' ){
            // Inserting after "Status" column
            $reordered_columns['my-column1'] = __( 'Title1','theme_domain');
            $reordered_columns['my-column2'] = __( 'Title2','theme_domain');
        }
    }
    return $reordered_columns;
}

// Adding custom fields meta data for each new column (example)
add_action( 'manage_shop_order_posts_custom_column' , 'custom_orders_list_column_content', 20, 2 );
function custom_orders_list_column_content( $column, $post_id )
{
    switch ( $column )
    {
        case 'my-column1' :
            // Get custom post meta data
            $my_var_one = get_post_meta( $post_id, '_the_meta_key1', true );
            if(!empty($my_var_one))
                echo $my_var_one;

            // Testing (to be removed) - Empty value case
            else
                echo '<small>(<em>no value</em>)</small>';

            break;

        case 'my-column2' :
            // Get custom post meta data
            $my_var_two = get_post_meta( $post_id, '_the_meta_key2', true );
            if(!empty($my_var_two))
                echo $my_var_two;

            // Testing (to be removed) - Empty value case
            else
                echo '<small>(<em>no value</em>)</small>';

            break;
    }
}

Le code va dans le fichier function.php de votre thème enfant actif (ou thème actif). Testé et fonctionne.

enter image description here


Réponse connexe (pour les produits): Ajouter des colonnes personnalisées à la liste des produits d'administration dans le backend WooCommerce

21
LoicTheAztec