Automattic\WooCommerce\Blocks\AIContent
UpdatePatterns::apply_ai_responses_to_patterns()
Applies the AI responses to the patterns.
Method of the class: UpdatePatterns{}
No Hooks.
Return
Mixed
.
Usage
// private - for code of main (parent) class only $result = $this->apply_ai_responses_to_patterns( $patterns, $ai_responses );
- $patterns(array) (required)
- The array of patterns.
- $ai_responses(array) (required)
- The array of AI responses.
UpdatePatterns::apply_ai_responses_to_patterns() UpdatePatterns::apply ai responses to patterns code WC 9.8.1
private function apply_ai_responses_to_patterns( array $patterns, array $ai_responses ) { foreach ( $patterns as $i => $pattern ) { $pattern_slug = $pattern['slug']; if ( ! in_array( $pattern_slug, self::WC_PATTERNS_IN_THE_ASSEMBLER, true ) ) { continue; } foreach ( $ai_responses as $ai_response ) { $ai_response = json_decode( $ai_response['completion'], true ); if ( isset( $ai_response[ $pattern_slug ] ) ) { $ai_response_content = $ai_response[ $pattern_slug ]; $counter = 1; if ( isset( $patterns[ $i ]['content']['titles'] ) ) { foreach ( $patterns[ $i ]['content']['titles'] as $j => $title ) { if ( ! isset( $ai_response_content[ $counter ] ) ) { $ai_response_content[ $counter ] = $ai_response_content[ $counter - 1 ] ?? ''; } $patterns[ $i ]['content']['titles'][ $j ]['default'] = $this->sanitize_string( $ai_response_content[ $counter ] ); $counter ++; } } if ( isset( $patterns[ $i ]['content']['descriptions'] ) ) { foreach ( $patterns[ $i ]['content']['descriptions'] as $k => $description ) { if ( ! isset( $ai_response_content[ $counter ] ) ) { $ai_response_content[ $counter ] = $ai_response_content[ $counter - 1 ] ?? ''; } $patterns[ $i ]['content']['descriptions'][ $k ]['default'] = $this->sanitize_string( $ai_response_content[ $counter ] ); $counter ++; } } if ( isset( $patterns[ $i ]['content']['buttons'] ) ) { foreach ( $patterns[ $i ]['content']['buttons'] as $l => $button ) { if ( ! isset( $ai_response_content[ $counter ] ) ) { $ai_response_content[ $counter ] = $ai_response_content[ $counter - 1 ] ?? ''; } $patterns[ $i ]['content']['buttons'][ $l ]['default'] = $this->sanitize_string( $ai_response_content[ $counter ] ); $counter ++; } } } } } return $patterns; }