Automattic\WooCommerce\Blocks\AIContent

UpdatePatterns::prepare_promptsprivateWC 1.0

Prepares the prompts for the AI.

Method of the class: UpdatePatterns{}

No Hooks.

Returns

Array.

Usage

// private - for code of main (parent) class only
$result = $this->prepare_prompts( $patterns );
$patterns(array) (required)
The array of patterns.

UpdatePatterns::prepare_prompts() code WC 9.8.5

private function prepare_prompts( array $patterns ) {
	$prompts    = [];
	$result     = [];
	$group_size = count( self::WC_PATTERNS_IN_THE_ASSEMBLER );
	$i          = 1;
	foreach ( $patterns as $pattern ) {
		$slug = $pattern['slug'] ?? '';

		if ( ! in_array( $slug, self::WC_PATTERNS_IN_THE_ASSEMBLER, true ) ) {
			continue;
		}

		$content         = $pattern['content'] ?? '';
		$counter         = 1;
		$result[ $slug ] = [];

		if ( isset( $content['titles'] ) ) {
			foreach ( $content['titles'] as $title ) {
				$result[ $slug ][ $counter ++ ] = $title['ai_prompt'];
			}
		}

		if ( isset( $content['descriptions'] ) ) {
			foreach ( $content['descriptions'] as $description ) {
				$result[ $slug ][ $counter ++ ] = $description['ai_prompt'];
			}
		}

		if ( isset( $content['buttons'] ) ) {
			foreach ( $content['buttons'] as $button ) {
				$result[ $slug ][ $counter ++ ] = $button['ai_prompt'];
			}
		}

		$i ++;

		if ( $i === $group_size ) {
			$prompts[] = $result;
			$result    = [];
			$i         = 1;
		}
	}

	return $prompts;
}