web-dev-qa-db-fra.com

Woocommerce: Ajouter une colonne à la page d’administration de ORDERS avec les articles achetés

Après la mise à jour vers Woocommerce 3.0, dans la page ORDRE de Woocommerce (où vous pouvez vérifier toutes les commandes passées par les clients, avec le statut de la commande, l'adresse de facturation, l'adresse de livraison, le total, etc.), la colonne contenant les articles achetés par le client est manquante. Avant la mise à jour de WC, cette colonne était là. Maintenant c'est parti.

Quelqu'un pourrait-il m'aider à ajouter encore cette colonne?

Merci beaucoup!

1
Sender

J'ai déjà réussi à créer une colonne grâce à ceci:

    // ADDING COLUMN TITLES
add_filter( 'manage_edit-shop_order_columns', 'custom_shop_order_column',11);
function custom_shop_order_column($columns)
{
   //add columns
    $columns['my-column1'] = __( 'Column Title','theme_slug');
   return $columns;
}

// adding the data for each orders by column (example)
add_action( 'manage_shop_order_posts_custom_column' , 'custom_orders_list_column_content', 10, 2 );
function custom_orders_list_column_content( $column )
{
    global $post, $woocommerce, $the_order;
    $order_id = $the_order->id;

    switch ( $column )
    {
        case 'my-column1' :
            $myVarOne = wc_get_order_item_meta( $order_id, '_the_meta_key1', true );
            echo $myVarOne;
            break;
    }

Mais je ne sais pas comment ajouter les données à ces colonnes. Je dois ajouter les articles achetés par les clients. C'est possible?

Merci!

1
Sender

Voici un plugin gratuit qui le restaure comme avant:

https://wordpress.org/plugins/restore-purchased-items-column/

1
anon

Si vous souhaitez afficher les produits achetés dans une colonne, vous pouvez utiliser ce code:

add_action( 'manage_shop_order_posts_custom_column' , 'custom_orders_list_column_content', 10, 2 );
function custom_orders_list_column_content( $column )
{
    global $the_order;
    $order_id = $the_order->id;

    switch ( $column )
    {
        case 'my-column1' :
            $order_items = $the_order->get_items();
            foreach( $order_items as $myVarOne ) {
                echo $myVarOne['quantity'] .'&nbsp;&times;&nbsp;'. $myVarOne['name'] .'<br />';
            }
            break;
    }
}

Vous pouvez également afficher le code complet avec des captures d'écran dans ce didacticiel .

0
Misha Rudrastyh