mirror of
https://gh.wpcy.net/https://github.com/woocommerce/woocommerce-paypal-payments.git
synced 2026-04-26 01:14:19 +08:00
Add OPTION_NAME_BCDC_MIGRATION_OVERRIDE to uninstall cleanup list to ensure the BCDC migration override flag is removed when plugin is uninstalled. This prevents the flag from persisting and incorrectly affecting payment method availability if the plugin is reinstalled. Addresses issue where flag could prevent Fastlane/ACDC access when merchants reconnect with different accounts after reinstalling plugin.
100 lines
4.2 KiB
PHP
100 lines
4.2 KiB
PHP
<?php
|
|
/**
|
|
* The uninstall module services.
|
|
*
|
|
* @package WooCommerce\PayPalCommerce\Uninstall
|
|
*/
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace WooCommerce\PayPalCommerce\Uninstall;
|
|
|
|
use WooCommerce\PayPalCommerce\ApiClient\Repository\PayPalRequestIdRepository;
|
|
use WooCommerce\PayPalCommerce\Settings\Ajax\SwitchSettingsUiEndpoint;
|
|
use WooCommerce\PayPalCommerce\Settings\Service\Migration\PaymentSettingsMigration;
|
|
use WooCommerce\PayPalCommerce\Uninstall\Assets\ClearDatabaseAssets;
|
|
use WooCommerce\PayPalCommerce\Vendor\Psr\Container\ContainerInterface;
|
|
use WooCommerce\PayPalCommerce\WcGateway\Gateway\CardButtonGateway;
|
|
use WooCommerce\PayPalCommerce\WcGateway\Gateway\CreditCardGateway;
|
|
use WooCommerce\PayPalCommerce\WcGateway\Gateway\PayPalGateway;
|
|
use WooCommerce\PayPalCommerce\WcGateway\Gateway\PayUponInvoice\PayUponInvoiceGateway;
|
|
use WooCommerce\PayPalCommerce\WcGateway\Settings\Settings;
|
|
use WooCommerce\PayPalCommerce\Webhooks\Status\WebhookSimulation;
|
|
use WooCommerce\PayPalCommerce\Webhooks\WebhookRegistrar;
|
|
|
|
return array(
|
|
'uninstall.ppcp-all-option-names' => function ( ContainerInterface $container ): array {
|
|
return array(
|
|
$container->get( 'webhook.last-webhook-storage.key' ),
|
|
'woocommerce_ppcp-is_pay_later_settings_migrated',
|
|
'woocommerce_' . PayPalGateway::ID . '_settings',
|
|
'woocommerce_' . CreditCardGateway::ID . '_settings',
|
|
'woocommerce_' . PayUponInvoiceGateway::ID . '_settings',
|
|
'woocommerce_' . CardButtonGateway::ID . '_settings',
|
|
Settings::KEY,
|
|
'woocommerce-ppcp-version',
|
|
WebhookSimulation::OPTION_ID,
|
|
WebhookRegistrar::KEY,
|
|
'ppcp_payment_tokens_migration_initialized',
|
|
SwitchSettingsUiEndpoint::OPTION_NAME_SHOULD_USE_OLD_UI,
|
|
SwitchSettingsUiEndpoint::OPTION_NAME_MIGRATION_IS_DONE,
|
|
PaymentSettingsMigration::OPTION_NAME_BCDC_MIGRATION_OVERRIDE,
|
|
);
|
|
},
|
|
|
|
'uninstall.ppcp-all-scheduled-action-names' => function ( ContainerInterface $container ): array {
|
|
return array(
|
|
'woocommerce_paypal_payments_check_pui_payment_captured',
|
|
'woocommerce_paypal_payments_check_saved_payment',
|
|
'woocommerce_paypal_payments_payment_tokens_migration',
|
|
);
|
|
},
|
|
|
|
'uninstall.ppcp-all-action-names' => function ( ContainerInterface $container ): array {
|
|
return array(
|
|
'woocommerce_paypal_payments_uninstall',
|
|
);
|
|
},
|
|
|
|
'uninstall.clear-db-endpoint' => function ( ContainerInterface $container ): string {
|
|
return 'ppcp-clear-db';
|
|
},
|
|
|
|
'uninstall.clear-database-script-data' => function ( ContainerInterface $container ): array {
|
|
return array(
|
|
'clearDb' => array(
|
|
'endpoint' => \WC_AJAX::get_endpoint( $container->get( 'uninstall.clear-db-endpoint' ) ),
|
|
'nonce' => wp_create_nonce( $container->get( 'uninstall.clear-db-endpoint' ) ),
|
|
'button' => '.ppcp-clear_db_now',
|
|
'messageSelector' => '.clear-db-info-message',
|
|
'confirmationMessage' => __( 'Are you sure? the operation will remove all plugin data.', 'woocommerce-paypal-payments' ),
|
|
'successMessage' => sprintf(
|
|
'<div class="updated clear-db-info-message"><p><strong>%1$s</strong></p></div>',
|
|
esc_html__( 'The plugin data is successfully cleared.', 'woocommerce-paypal-payments' )
|
|
),
|
|
'failureMessage' => sprintf(
|
|
'<div class="error clear-db-info-message"><p><strong>%1$s</strong></p></div>',
|
|
esc_html__( 'Operation failed. Check WooCommerce logs for more details.', 'woocommerce-paypal-payments' )
|
|
),
|
|
'redirectUrl' => admin_url( 'admin.php?page=wc-settings&tab=checkout§ion=ppcp-gateway' ),
|
|
),
|
|
);
|
|
},
|
|
|
|
'uninstall.module-url' => static function ( ContainerInterface $container ): string {
|
|
return plugins_url( '/modules/ppcp-uninstall/', $container->get( 'ppcp.path-to-plugin-main-file' ) );
|
|
},
|
|
|
|
'uninstall.clear-db-assets' => function ( ContainerInterface $container ): ClearDatabaseAssets {
|
|
return new ClearDatabaseAssets(
|
|
$container->get( 'uninstall.module-url' ),
|
|
$container->get( 'ppcp.asset-version' ),
|
|
'ppcp-clear-db',
|
|
$container->get( 'uninstall.clear-database-script-data' )
|
|
);
|
|
},
|
|
|
|
'uninstall.clear-db' => function ( ContainerInterface $container ): ClearDatabaseInterface {
|
|
return new ClearDatabase();
|
|
},
|
|
);
|