Automattic\WooCommerce\Internal\ProductAttributesLookup

LookupDataStore::add_product_attributes_lookup_table_settings()privateWC 1.0

Handler for 'woocommerce_get_settings_products', adds the settings related to the product attributes lookup table.

Method of the class: LookupDataStore{}

No Hooks.

Return

Array. New settings configuration array.

Usage

// private - for code of main (parent) class only
$result = $this->add_product_attributes_lookup_table_settings( $settings, $section_id ): array;
$settings(array) (required)
Original settings configuration array.
$section_id(string) (required)
Settings section identifier.

LookupDataStore::add_product_attributes_lookup_table_settings() code WC 8.6.1

private function add_product_attributes_lookup_table_settings( array $settings, string $section_id ): array {
	if ( $section_id === 'advanced' && $this->check_lookup_table_exists() ) {
		$title_item = array(
			'title' => __( 'Product attributes lookup table', 'woocommerce' ),
			'type'  => 'title',
		);

		$regeneration_is_in_progress = $this->regeneration_is_in_progress();

		if ( $regeneration_is_in_progress ) {
			$title_item['desc'] = __( 'These settings are not available while the lookup table regeneration is in progress.', 'woocommerce' );
		}

		$settings[] = $title_item;

		if ( ! $regeneration_is_in_progress ) {
			$regeneration_aborted_warning =
				$this->regeneration_was_aborted() ?
					sprintf(
						"<p><strong style='color: #E00000'>%s</strong></p><p>%s</p>",
						__( 'WARNING: The product attributes lookup table regeneration process was aborted.', 'woocommerce' ),
						__( 'This means that the table is probably in an inconsistent state. It\'s recommended to run a new regeneration process or to resume the aborted process (Status - Tools - Regenerate the product attributes lookup table/Resume the product attributes lookup table regeneration) before enabling the table usage.', 'woocommerce' )
					) : null;

			$settings[] = array(
				'title'         => __( 'Enable table usage', 'woocommerce' ),
				'desc'          => __( 'Use the product attributes lookup table for catalog filtering.', 'woocommerce' ),
				'desc_tip'      => $regeneration_aborted_warning,
				'id'            => 'woocommerce_attribute_lookup_enabled',
				'default'       => 'no',
				'type'          => 'checkbox',
				'checkboxgroup' => 'start',
			);

			$settings[] = array(
				'title'         => __( 'Direct updates', 'woocommerce' ),
				'desc'          => __( 'Update the table directly upon product changes, instead of scheduling a deferred update.', 'woocommerce' ),
				'id'            => 'woocommerce_attribute_lookup_direct_updates',
				'default'       => 'no',
				'type'          => 'checkbox',
				'checkboxgroup' => 'start',
			);
		}

		$settings[] = array( 'type' => 'sectionend' );
	}

	return $settings;
}