Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich benutzerdefinierte Spalten zu meiner WooCommerce-Admin-Bestellliste hinzufügen?

Wie kann ich benutzerdefinierte Spalten zu meiner WooCommerce-Admin-Bestellliste hinzufügen?

Susan Sarandon
Susan SarandonOriginal
2024-11-21 01:59:13741Durchsuche

How Can I Add Custom Columns to My WooCommerce Admin Order List?

Benutzerdefinierte Spalten zur Admin-Bestellliste von WooCommerce hinzufügen

In WooCommerce können Sie die Seite mit der Admin-Bestellliste so anpassen, dass sie zusätzliche Spalten enthält, die relevant angezeigt werden Informationen zu Ihren Bestellungen.

Spalten zur Bestellliste hinzufügen

Um benutzerdefinierte Spalten zur Bestellliste in WooCommerce hinzuzufügen, müssen Sie die Vorlagendatei ändern:

/wp-content/plugins/woocommerce/includes/admin/views/html-order-list.php

Innerhalb der Funktion manage_shop_order_posts_custom_column können Sie den Inhalt Ihrer benutzerdefinierten Spalten basierend auf dem Parameter $column definieren. Um beispielsweise eine Spalte hinzuzufügen, die das Bestellgewicht anzeigt, können Sie den folgenden Code verwenden:

case 'weight':
    $order = wc_get_order($post_id);
    $weight = $order->get_weight();
    echo $weight . ' kg';
    break;

Spalten an bestimmten Standort hinzufügen

Sie können die Position angeben Ihrer benutzerdefinierten Spalten, indem Sie den Filter manage_edit-shop_order_columns ändern. Mit diesem Filter können Sie die vorhandenen Spalten neu anordnen und Ihre benutzerdefinierten Spalten an einer bestimmten Stelle einfügen.

Um beispielsweise eine benutzerdefinierte Spalte mit dem Namen „Meine Spalte“ vor der Spalte „Aktionen“ einzufügen, würden Sie Folgendes verwenden Code:

add_filter('manage_edit-shop_order_columns', 'reorder_admin_order_columns');

function reorder_admin_order_columns($columns) {
    $reordered_columns = array();

    foreach ($columns as $key => $column) {
        $reordered_columns[$key] = $column;
        if ($key == 'order_status') {
            $reordered_columns['my-column'] = 'My Column';
        }
    }

    return $reordered_columns;
}

High-Performance Order Storage (HPOS)

Ab WooCommerce 8.2 ist High-Performance Order Storage (HPOS) standardmäßig für Neuinstallationen aktiviert . Dies erfordert einen etwas anderen Ansatz zum Hinzufügen benutzerdefinierter Spalten:

add_filter('manage_woocommerce_page_wc-orders_columns', 'reorder_admin_order_hpos_columns');

function reorder_admin_order_hpos_columns($columns) {
    $reordered_columns = array();

    foreach ($columns as $key => $column) {
        $reordered_columns[$key] = $column;
        if ($key == 'order_status') {
            $reordered_columns['my-column'] = 'My Column';
        }
    }

    return $reordered_columns;
}

add_action('manage_woocommerce_page_wc-orders_custom_column', 'display_admin_order_hpos_column_content', 10, 2);

function display_admin_order_hpos_column_content($column, $order) {
    switch ($column) {
        case 'my-column':
            // Get custom order metadata
            $value = $order->get_meta('_the_meta_key');
            if (!empty($value)) {
                echo $value;
            } else {
                echo '<small>(<em>no value</em>)</small>';
            }
            break;
    }
}

Diese Codeänderungen ermöglichen es Ihnen, benutzerdefinierte Spalten zur Admin-Bestelllistenseite hinzuzufügen, was Ihnen zusätzliche Einblicke und Flexibilität bei der Verwaltung Ihrer Bestellungen bietet.

Das obige ist der detaillierte Inhalt vonWie kann ich benutzerdefinierte Spalten zu meiner WooCommerce-Admin-Bestellliste hinzufügen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn