WC_Customer_Data_Store::get_order_count( WC_Customer $customer )

Return the number of orders this customer has.


Description Description


Parameters Parameters

$customer

(Required) Customer object.


Top ↑

Return Return

(integer)


Top ↑

Source Source

File: includes/data-stores/class-wc-customer-data-store.php

	public function get_order_count( &$customer ) {
		$count = get_user_meta( $customer->get_id(), '_order_count', true );

		if ( '' === $count ) {
			global $wpdb;

			$count = $wpdb->get_var(
				// phpcs:disable WordPress.DB.PreparedSQL.NotPrepared
				"SELECT COUNT(*)
				FROM $wpdb->posts as posts
				LEFT JOIN {$wpdb->postmeta} AS meta ON posts.ID = meta.post_id
				WHERE   meta.meta_key = '_customer_user'
				AND     posts.post_type = 'shop_order'
				AND     posts.post_status IN ( '" . implode( "','", array_map( 'esc_sql', array_keys( wc_get_order_statuses() ) ) ) . "' )
				AND     meta_value = '" . esc_sql( $customer->get_id() ) . "'"
				// phpcs:enable
			);
			update_user_meta( $customer->get_id(), '_order_count', $count );
		}

		return absint( $count );
	}

Top ↑

Changelog Changelog

Changelog
Version Description
3.0.0 Introduced.


Top ↑

User Contributed Notes User Contributed Notes

You must log in before being able to contribute a note or feedback.