File "ImportSetWCPaymentGateways.php"
Full Path: /home/siazco/grocery.siazco.se/wp-content/plugins/woocommerce/src/Admin/Features/Blueprint/Importers/ImportSetWCPaymentGateways.php
File size: 2.12 KB
MIME-type: text/x-php
Charset: utf-8
<?php
declare( strict_types = 1);
namespace Automattic\WooCommerce\Admin\Features\Blueprint\Importers;
use Automattic\WooCommerce\Admin\Features\Blueprint\Steps\SetWCPaymentGateways;
use Automattic\WooCommerce\Blueprint\StepProcessor;
use Automattic\WooCommerce\Blueprint\StepProcessorResult;
use Automattic\WooCommerce\Blueprint\UseWPFunctions;
/**
* Class ImportSetWCPaymentGateways
*
* This class imports WooCommerce payment gateways settings and implements the StepProcessor interface.
*
* @package Automattic\WooCommerce\Admin\Features\Blueprint\Importers
*/
class ImportSetWCPaymentGateways implements StepProcessor {
use UseWPFunctions;
/**
* Process the import of WooCommerce payment gateways settings.
*
* @param object $schema The schema object containing import details.
* @return StepProcessorResult
*/
public function process( $schema ): StepProcessorResult {
$result = StepProcessorResult::success( SetWCPaymentGateways::get_step_name() );
$payment_gateways = $this->get_wc_payment_gateways();
$fields = array( 'title', 'description', 'enabled' );
foreach ( $schema->payment_gateways as $id => $payment_gateway_data ) {
if ( ! isset( $payment_gateways[ $id ] ) ) {
$result->add_info( "Skipping {$id}. The payment gateway is not available" );
continue;
}
$payment_gateway = $payment_gateways[ $id ];
// Refer to https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/includes/class-wc-ajax.php#L3564.
foreach ( $fields as $field ) {
if ( isset( $payment_gateway_data->{$field} ) ) {
$payment_gateway->update_option( $field, $payment_gateway_data->{$field} );
}
}
$result->add_info( "{$id} has been updated." );
$this->wp_do_action( 'woocommerce_update_options' );
}
return $result;
}
/**
* Return the payment gateways resgietered in WooCommerce
*
* @return string
*/
public function get_wc_payment_gateways() {
return WC()->payment_gateways->payment_gateways();
}
/**
* Get the class name for the step.
*
* @return string
*/
public function get_step_class(): string {
return SetWCPaymentGateways::class;
}
}