Automattic\WooCommerce\Admin\API\AI

Images::generate_images()publicWC 1.0

Generate Images from Pexels

Method of the class: Images{}

No Hooks.

Return

WP_Error|WP_REST_Response.

Usage

$Images = new Images();
$Images->generate_images( $request );
$request(WP_REST_Request) (required)
Request object.

Images::generate_images() code WC 9.7.1

public function generate_images( WP_REST_Request $request ) {

	$business_description = sanitize_text_field( wp_unslash( $request['business_description'] ) );

	if ( empty( $business_description ) ) {
		$business_description = get_option( 'woo_ai_describe_store_description' );
	}

	$last_business_description = get_option( 'last_business_description_with_ai_content_generated' );

	if ( $last_business_description === $business_description ) {
		return rest_ensure_response(
			array(
				'ai_content_generated' => true,
				'images'               => array(),
			),
		);
	}

	$ai_connection = new Connection();

	$site_id = $ai_connection->get_site_id();

	if ( is_wp_error( $site_id ) ) {
		return $site_id;
	}

	$token = $ai_connection->get_jwt_token( $site_id );

	if ( is_wp_error( $token ) ) {
		return $token;
	}

	$images = ( new Pexels() )->get_images( $ai_connection, $token, $business_description );

	if ( is_wp_error( $images ) ) {
		$images = array(
			'images'      => array(),
			'search_term' => '',
		);
	}

	return rest_ensure_response(
		array(
			'ai_content_generated' => true,
			'images'               => $images,
		)
	);
}