Automattic\WooCommerce\Internal\Admin

CategoryLookup::regenerate()publicWC 1.0

Regenerate all lookup table data.

Method of the class: CategoryLookup{}

No Hooks.

Return

null. Nothing (null).

Usage

$CategoryLookup = new CategoryLookup();
$CategoryLookup->regenerate();

CategoryLookup::regenerate() code WC 8.7.0

public function regenerate() {
	global $wpdb;

	$wpdb->query( "TRUNCATE TABLE $wpdb->wc_category_lookup" );

	$terms = get_terms(
		'product_cat',
		array(
			'hide_empty' => false,
			'fields'     => 'id=>parent',
		)
	);

	$hierarchy = array();
	$inserts   = array();

	$this->unflatten_terms( $hierarchy, $terms, 0 );
	$this->get_term_insert_values( $inserts, $hierarchy );

	if ( ! $inserts ) {
		return;
	}

	$insert_string = implode(
		'),(',
		array_map(
			function( $item ) {
				return implode( ',', $item );
			},
			$inserts
		)
	);

	$wpdb->query( "INSERT IGNORE INTO $wpdb->wc_category_lookup (category_tree_id,category_id) VALUES ({$insert_string})" ); // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.PreparedSQL.InterpolatedNotPrepared
}