Automattic\WooCommerce\Internal\ProductAttributesLookup

LookupDataStore::add_product_attributes_lookup_table_settings()publicWC 1.0

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

Метод класса: LookupDataStore{}

Хуков нет.

Возвращает

Массив. New settings configuration array.

Использование

$LookupDataStore = new LookupDataStore();
$LookupDataStore->add_product_attributes_lookup_table_settings( $settings, $section_id ): array;
$settings(массив) (обязательный)
Original settings configuration array.
$section_id(строка) (обязательный)
Settings section identifier.

Код LookupDataStore::add_product_attributes_lookup_table_settings() WC 9.7.1

public function add_product_attributes_lookup_table_settings( array $settings, string $section_id ): array {
	if ( 'advanced' === $section_id && $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(
				'title'         => __( 'Optimized updates', 'woocommerce' ),
				'desc'          => __( 'Uses much more performant queries to update the lookup table, but may not be compatible with some extensions.', 'woocommerce' ),
				'desc_tip'      => __( 'This setting only works when product data is stored in the posts table.', 'woocommerce' ),
				'id'            => 'woocommerce_attribute_lookup_optimized_updates',
				'default'       => 'no',
				'type'          => 'checkbox',
				'checkboxgroup' => 'start',
			);
		}

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

	return $settings;
}