Files
krolewskie-miody.pl/wp-content/plugins/woocommerce-payments/includes/migrations/class-migrate-payment-request-to-express-checkout-enabled.php
2026-04-28 15:13:50 +02:00

70 lines
2.1 KiB
PHP

<?php
/**
* Class Migrate_Payment_Request_To_Express_Checkout_Enabled
*
* @package WooCommerce\Payments
*/
namespace WCPay\Migrations;
use WC_Payments;
defined( 'ABSPATH' ) || exit;
/**
* Class Migrate_Payment_Request_To_Express_Checkout_Enabled
*
* In PR #11144, Google Pay and Apple Pay were split into individual payment gateways.
* In PR #11182, the `payment_request` setting on the card gateway was replaced with
* individual `enabled` settings on each of the new gateways.
*
* This migration transfers the old `payment_request` value to the new gateway settings
* and removes it from the card gateway.
*
* @see https://github.com/Automattic/woocommerce-payments/pull/11144
* @see https://github.com/Automattic/woocommerce-payments/pull/11182
* @since 10.4.0
*/
class Migrate_Payment_Request_To_Express_Checkout_Enabled {
/**
* Version in which this migration was introduced.
*
* @var string
*/
const VERSION_SINCE = '10.4.0';
/**
* Execute the migration if upgrading from a version before 10.4.0
* and the payment_request setting exists.
*/
public function maybe_migrate() {
$previous_version = get_option( 'woocommerce_woocommerce_payments_version' );
if ( version_compare( self::VERSION_SINCE, $previous_version, '<=' ) ) {
return;
}
$card_settings = get_option( 'woocommerce_woocommerce_payments_settings', [] );
if ( ! isset( $card_settings['payment_request'] ) ) {
return;
}
$this->migrate( $card_settings );
}
/**
* Does the actual migration as described in the class docblock.
*
* @param array $card_settings The card gateway settings.
*/
private function migrate( $card_settings ) {
$payment_request_enabled = ( $card_settings['payment_request'] ?? 'no' ) === 'yes' ? 'yes' : 'no';
update_option( 'woocommerce_woocommerce_payments_apple_pay_settings', [ 'enabled' => $payment_request_enabled ], true );
update_option( 'woocommerce_woocommerce_payments_google_pay_settings', [ 'enabled' => $payment_request_enabled ], true );
unset( $card_settings['payment_request'] );
update_option( 'woocommerce_woocommerce_payments_settings', $card_settings );
}
}