Fügen Sie eine benutzerdefinierte Spalte mit den Gesamtausgaben des Kunden für die Bestellliste des WooCommerce-Administrators hinzu

Lesezeit: 2 Minuten

Benutzer-Avatar
Karnak

Wir haben viele wiederkehrende Kunden, daher versuche ich, den User Lifetime Value (LTV – SUM aller vergangenen Bestellungen) in der WooCommerce-Admin-Bestellliste anzuzeigen, um schnell die besten Benutzer zu identifizieren.

Aber ich weiß gar nicht, ob das möglich ist. Ich habe eine benutzerdefinierte Spalte, um zu sehen, ob es sich um wiederkehrende Käufer handelt oder nicht, aber ich habe keine Ahnung, wo ich bei LTV anfangen soll.

Mein Code zur Kennzeichnung von Rückkäufern:

add_filter( 'manage_shop_order_posts_columns', 
'shalior_wc_set_custom_edit_post_columns',99,1 );
function shalior_wc_set_custom_edit_post_columns($columns) {
    $columns['is-returning'] = __( 'Is returning?', 'your_text_domain' );
    return $columns;
}

add_action( 'manage_shop_order_posts_custom_column' , 'shalior_wc_is_returning', 99, 2 );
function shalior_wc_is_returning( $column, $post_id ) {
switch ( $column ) {

    case 'is-returning':
        $order = new WC_Order( $post_id );
        $user_id = $order->get_user_id();
        $orders_count = wc_get_customer_order_count( $user_id );
        echo $orders_count > 1 ? '<span style="color: #040404; background: #9ae288; 
  padding: 3px; padding-left: 12px; padding-right: 12px; border-radius: 3px;">Yes</span>' : "No" ;
        break;
}
} 

add_action('admin_head', 'my_custom_fonts');

function my_custom_fonts() {
    echo '<style>
    td.is-returning.column-is-returning {
    text-align: center;
}
th#is-returning {
    text-align: center;
}
th.manage-column.column-is-returning {
    text-align: center;
}
td.order_coupons.column-order_coupons {
    text-align: center;
}
th#order_coupons {
    text-align: center;
}
th.manage-column.column-order_coupons {
    text-align: center;
}
</style>';
}

Du kannst den … benutzen get_total_spent() Funktion, die zurückgibt, wie viel Geld ein Kunde ausgegeben hat

Sie erhalten also:

/**
 * Add column
 */
function filter_manage_edit_shop_order_columns( $columns ) {
    $columns['total-spent'] = __( 'LTV', 'woocommerce' );
    
    return $columns;
}
add_filter( 'manage_edit-shop_order_columns', 'filter_manage_edit_shop_order_columns', 10, 1 );

/**
 * Populate column
 */
function filter_manage_shop_order_posts_custom_column( $column, $post_id ) {
    // Compare
    if ( $column == 'total-spent' ) {
        // Get order
        $order = wc_get_order( $post_id );

        // Is a WC_Order
        if ( is_a( $order, 'WC_Order' ) ) {
            // Get user id
            $user_id = $order->get_user_id();
            
            // NOT empty
            if ( ! empty ( $user_id ) ) {
                // Get customer
                $customer = new WC_Customer( $user_id );
                
                // Output
                echo $customer->get_total_spent();
            } else {
                // Output
                echo __( 'N/A', 'woocommerce' );
            }
        }
    }
}
add_filter( 'manage_shop_order_posts_custom_column', 'filter_manage_shop_order_posts_custom_column', 10, 2 );

1016610cookie-checkFügen Sie eine benutzerdefinierte Spalte mit den Gesamtausgaben des Kunden für die Bestellliste des WooCommerce-Administrators hinzu

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

Privacy policy