Automattic\WooCommerce\Internal\ProductAttributesLookup
LookupDataStore::add_product_attributes_lookup_table_settings
Handler for 'woocommerce_get_settings_products', adds the settings related to the product attributes lookup table.
Method of the class: LookupDataStore{}
No Hooks.
Returns
Array. New settings configuration array.
Usage
$LookupDataStore = new LookupDataStore(); $LookupDataStore->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() LookupDataStore::add product attributes lookup table settings code WC 10.4.3
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;
}