woocommerce-paypal-payments/modules/ppcp-uninstall/services.php

98 lines
4 KiB
PHP
Raw Normal View History

2022-12-07 16:28:59 +04:00
<?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\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;
2022-12-07 16:28:59 +04:00
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,
);
},
2022-12-07 16:28:59 +04:00
'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',
);
},
2022-12-08 19:25:19 +04:00
'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(
2022-12-08 19:25:19 +04:00
'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',
2022-12-08 19:25:19 +04:00
'messageSelector' => '.clear-db-info-message',
2022-12-14 15:24:32 +04:00
'confirmationMessage' => __( 'Are you sure? the operation will remove all plugin data.', 'woocommerce-paypal-payments' ),
2022-12-08 19:25:19 +04:00
'successMessage' => sprintf(
'<div class="updated clear-db-info-message"><p><strong>%1$s</strong></p></div>',
2022-12-08 19:25:19 +04:00
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>',
2022-12-08 19:25:19 +04:00
esc_html__( 'Operation failed. Check WooCommerce logs for more details.', 'woocommerce-paypal-payments' )
),
2022-12-09 16:51:29 +04:00
'redirectUrl' => admin_url( 'admin.php?page=wc-settings&tab=checkout&section=ppcp-gateway' ),
),
);
},
'uninstall.module-url' => static function ( ContainerInterface $container ): string {
return plugins_url( '/modules/ppcp-uninstall/', $container->get( 'ppcp.path-to-plugin-main-file' ) );
},
2022-12-08 19:25:19 +04:00
'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();
},
2022-12-07 16:28:59 +04:00
);