<?php namespace Automattic\WooCommerce\Blueprint\Importers; use Automattic\WooCommerce\Blueprint\StepProcessor; use Automattic\WooCommerce\Blueprint\StepProcessorResult; use Automattic\WooCommerce\Blueprint\Steps\SetSiteOptions; use Automattic\WooCommerce\Blueprint\UseWPFunctions; /** * Class ImportSetSiteOptions * * Importer for the SetSiteOptions step. * * @package Automattic\WooCommerce\Blueprint\Importers */ class ImportSetSiteOptions implements StepProcessor { use UseWPFunctions; /** * Process the step. * * @param object $schema The schema to process. * * @return StepProcessorResult */ public function process( $schema ): StepProcessorResult { $result = StepProcessorResult::success( SetSiteOptions::get_step_name() ); foreach ( $schema->options as $key => $value ) { if ( is_object( $value ) ) { $value = (array) $value; } $updated = $this->wp_update_option( $key, $value ); if ( $updated ) { $result->add_info( "{$key} has been updated" ); } else { $current_value = $this->wp_get_option( $key ); if ( $current_value === $value ) { $result->add_info( "{$key} has not been updated because the current value is already up to date." ); } } } return $result; } /** * Get the step class. * * @return string */ public function get_step_class(): string { return SetSiteOptions::class; } }