ImportActivatePlugin.php
<?php
namespace Automattic\WooCommerce\Blueprint\Importers;
use Automattic\WooCommerce\Blueprint\StepProcessor;
use Automattic\WooCommerce\Blueprint\StepProcessorResult;
use Automattic\WooCommerce\Blueprint\Steps\ActivatePlugin;
use Automattic\WooCommerce\Blueprint\UsePluginHelpers;
/**
* Class ImportActivatePlugin
*/
class ImportActivatePlugin implements StepProcessor {
use UsePluginHelpers;
/**
* Process the schema.
*
* @param object $schema The schema to process.
*
* @return StepProcessorResult
*/
public function process( $schema ): StepProcessorResult {
$result = StepProcessorResult::success( ActivatePlugin::get_step_name() );
// Not snake case because it's a property of the schema.
$plugin_path = $schema->pluginPath; // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase
$activate = $this->wp_activate_plugin( $plugin_path );
if ( $this->is_wp_error( $activate ) ) {
$result->add_error( "Unable to activate {$plugin_path}." );
} else {
$result->add_info( "Activated {$plugin_path}." );
}
return $result;
}
/**
* Get the step class.
*
* @return string
*/
public function get_step_class(): string {
return ActivatePlugin::class;
}
/**
* Check if the current user has the required capabilities for this step.
*
* @param object $schema The schema to process.
*
* @return bool True if the user has the required capabilities. False otherwise.
*/
public function check_step_capabilities( $schema ): bool {
return current_user_can( 'activate_plugins' );
}
}