! \wp_next_scheduled( Cleanup_Integration::START_HOOK ) ) { // This just schedules the cleanup routine cron again. \wp_schedule_single_event( ( \time() + ( \MINUTE_IN_SECONDS * 5 ) ), Cleanup_Integration::START_HOOK ); } return; } } } } from the database, and otherwise considers * whether the old words need to have their weights updated. * * @param int $indexable_id The id of the indexable which needs to have its * old words updated. * @param Prominent_Words[] $old_words An array with prominent words that were already * present in the database for a given indexable. * @param array $words The new prominent words for a given indexable. * * @return array The words that need to be created. */ protected function handle_old_words( $indexable_id, $old_words, $words ) { // Return early if the indexable didn't already have any prominent words associated with it. if ( empty( $old_words ) ) { return $words; } $outdated_stems = []; foreach ( $old_words as $old_word ) { // If an old prominent word is no longer associated with an indexable, // add it to the array with outdated stems, so that at a later step // it can be deleted from the database. if ( ! \array_key_exists( $old_word->stem, $words ) ) { $outdated_stems[] = $old_word->stem; continue; } // If the old word should still be associated with the indexable, // update its weight if that has changed. $this->update_weight_if_changed( $old_word, $words[ $old_word->stem ] ); // Remove the key from the array with the new prominent words. unset( $words[ $old_word->stem ] ); } // Delete all the outdated prominent words in one query. try { $this->prominent_words_repository->delete_by_indexable_id_and_stems( $indexable_id, $outdated_stems ); // phpcs:ignore Generic.CodeAnalysis.EmptyStatement.DetectedCatch -- There is nothing to do. } catch ( Exception $exception ) { // Do nothing. } return $words; } /** * Updates the weight of the given prominent word, if the weight has changed significantly. * * @param Prominent_Words $word The prominent word of which to update the weight. * @param float $new_weight The new weight. * * @return void */ protected function update_weight_if_changed( $word, $new_weight ) { if ( \abs( $word->weight - $new_weight ) > 0.1 ) { $word->weight = $new_weight; $word->save(); } } /** * Creates the given words in the database and links them to the indexable with the given id. * * @param int $indexable_id The ID of the indexable. * @param array $words The prominent words to create, as a `'stem'` => weight` map. * * @return void */ protected function create_words( $indexable_id, $words ) { // Return early if there are no new words to add to the database. if ( empty( $words ) ) { return; } $new_models = []; foreach ( $words as $stem => $weight ) { $new_model = $this->prominent_words_repository->query()->create( [ 'indexable_id' => $indexable_id, 'stem' => $stem, 'weight' => $weight, ] ); $new_models[] = $new_model; } try { $this->prominent_words_repository->query()->insert_many( $new_models ); // phpcs:ignore Generic.CodeAnalysis.EmptyStatement.DetectedCatch -- There is nothing to do. } catch ( Exception $exception ) { // Do nothing. } } } WET SOUNDS STADPSLIDERBRACKET | CarTronics

WET SOUNDS STADPSLIDERBRACKET

$44.99

Wet Sounds Stealth Slider Bracket For STEALTH 6 & STEALTH 10 Soundbars

Only 2 left in stock

SKU: STADPSLIDERBRACKET Category: Tags: , , Brand:

Description

Secure your Wet Sounds Soundbar in place when exploring the great outdoors with the Stealth Slider Brackets. CNC'd from billet aluminum, these slider brackets will allow you to adjust the soundbar mounting width. If you have limited options on mounting, you can use the sliders with the end legs of the soundbar (included with soundbar) or use with any of our optional Round or Square mounting clamps to securely mount your bar on round or square tubing such as a roll cage, or wake tower.

Additional information

Weight 5.00 lbs
Dimensions 5.00 × 5.00 × 5.00 in

Reviews

There are no reviews yet.

Only logged in customers who have purchased this product may leave a review.