File manager - Edit - /home/vblioqus/unfreezetiktok.com/wp-content/plugins/webp-converter-for-media/src/Service/DeactivationModalLoader.php
Back
<?php namespace WebpConverter\Service; use WebpConverter\Error\Notice\LibsNotInstalledNotice; use WebpConverter\Error\Notice\LibsWithoutWebpSupportNotice; use WebpConverter\HookableInterface; use WebpConverter\PluginData; use WebpConverter\PluginInfo; use WebpConverter\Settings\Page\AdvancedSettingsPage; use WebpConverter\Settings\Page\PageIntegrator; use WebpConverterVendor\MattPlugins\DeactivationModal; /** * Initiates the popup displayed when the plugin is deactivated. */ class DeactivationModalLoader implements HookableInterface { const API_URL = 'https://data.mattplugins.com/deactivations/%s'; /** * @var PluginInfo */ private $plugin_info; /** * @var PluginData */ private $plugin_data; /** * @var StatsManager */ private $stats_manager; public function __construct( PluginInfo $plugin_info, PluginData $plugin_data, ?StatsManager $stats_manager = null ) { $this->plugin_info = $plugin_info; $this->plugin_data = $plugin_data; $this->stats_manager = $stats_manager ?: new StatsManager(); } /** * {@inheritdoc} */ public function init_hooks() { add_action( 'load-plugins.php', [ $this, 'load_modal' ] ); } /** * @return void * @throws DeactivationModal\Exception\DuplicatedFormOptionKeyException * @throws DeactivationModal\Exception\DuplicatedFormValueKeyException * @internal */ public function load_modal() { new DeactivationModal\Modal( $this->plugin_info->get_plugin_slug(), new DeactivationModal\Model\FormTemplate( sprintf( self::API_URL, $this->plugin_info->get_plugin_slug() ), sprintf( /* translators: %s: plugin name */ __( 'We are sorry that you are leaving our %s plugin', 'webp-converter-for-media' ), 'Converter for Media' ), __( 'Can you, please, take a moment to tell us why you are deactivating this plugin (anonymous answer)?', 'webp-converter-for-media' ), __( 'Submit and Deactivate', 'webp-converter-for-media' ), __( 'Skip and Deactivate', 'webp-converter-for-media' ), $this->load_notice_message() ), ( new DeactivationModal\Model\FormOptions() ) ->set_option( new DeactivationModal\Model\FormOption( 'server_config', 10, sprintf( /* translators: %s: notice title */ __( 'I have the %s notice in the plugin settings', 'webp-converter-for-media' ), __( 'Server configuration error', 'webp-converter-for-media' ) ), function () { $errors = apply_filters( 'webpc_server_errors', [] ); if ( ! in_array( $errors, [ [ LibsWithoutWebpSupportNotice::ERROR_KEY ], [ LibsNotInstalledNotice::ERROR_KEY ] ] ) ) { return null; } return sprintf( /* translators: %1$s: open anchor tag, %2$s: close anchor tag */ __( 'If your server does not meet the technical requirements, you can use "Remote server" as "Conversion method", in %1$sthe plugin settings%2$s.', 'webp-converter-for-media' ), '<a href="' . esc_url( PageIntegrator::get_settings_page_url() ) . '">', '</a>' ); }, __( 'What is your error? Have you been looking for a solution to this issue?', 'webp-converter-for-media' ) ) ) ->set_option( new DeactivationModal\Model\FormOption( 'misunderstanding', 20, __( 'Images are not displayed in the WebP format', 'webp-converter-for-media' ), function () { return sprintf( /* translators: %1$s: open anchor tag, %2$s: close anchor tag */ __( 'Check out %1$sour instructions%2$s and see how to check if the plugin is working properly.', 'webp-converter-for-media' ), '<a href="https://url.mattplugins.com/converter-deactivation-misunderstanding-instruction" target="_blank">', '</a>' ); }, __( 'Did you check the operation of the plugin in accordance with the instructions?', 'webp-converter-for-media' ) ) ) ->set_option( new DeactivationModal\Model\FormOption( 'website_broken', 30, __( 'This plugin broke my website', 'webp-converter-for-media' ), function () { return sprintf( /* translators: %1$s: option label, %2$s: open anchor tag, %3$s: close anchor tag */ __( 'Check the %1$s option in %2$sthe plugin settings%3$s - this should solve the problem.', 'webp-converter-for-media' ), __( 'Disable rewrite inheritance in .htaccess files', 'webp-converter-for-media' ), '<a href="' . esc_url( PageIntegrator::get_settings_page_url( AdvancedSettingsPage::PAGE_SLUG ) ) . '">', '</a>' ); }, __( 'What exactly happened?', 'webp-converter-for-media' ) ) ) ->set_option( new DeactivationModal\Model\FormOption( 'better_plugin', 40, __( 'I found a better plugin', 'webp-converter-for-media' ), null, __( 'What is the name of this plugin? Why is it better?', 'webp-converter-for-media' ) ) ) ->set_option( new DeactivationModal\Model\FormOption( 'temporary_deactivation', 50, __( 'This is a temporary deactivation', 'webp-converter-for-media' ), null, null ) ) ->set_option( new DeactivationModal\Model\FormOption( 'other', 60, __( 'Other reason', 'webp-converter-for-media' ), null, __( 'What is the reason? What can we improve for you?', 'webp-converter-for-media' ) ) ), ( new DeactivationModal\Model\FormValues() ) ->set_value( new DeactivationModal\Model\FormValue( 'request_error_codes', function () { return implode( ',', apply_filters( 'webpc_server_errors', [] ) ); } ) ) ->set_value( new DeactivationModal\Model\FormValue( 'request_plugin_settings', function () { $settings_json = json_encode( $this->plugin_data->get_plugin_settings_public() ); return base64_encode( $settings_json ?: '' ); // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions } ) ) ->set_value( new DeactivationModal\Model\FormValue( 'request_plugin_stats', function () { $stats_data = [ 'usage_time' => $this->stats_manager->get_plugin_usage_time(), 'first_version' => $this->stats_manager->get_plugin_first_version(), 'regeneration_images' => $this->stats_manager->get_regeneration_images(), 'webp_all' => $this->stats_manager->get_images_webp_all(), 'webp_unconverted' => $this->stats_manager->get_images_webp_unconverted(), 'avif_all' => $this->stats_manager->get_images_avif_all(), 'avif_unconverted' => $this->stats_manager->get_images_avif_unconverted(), 'rewrite_root' => PathsGenerator::get_rewrite_root(), 'rewrite_path' => PathsGenerator::get_rewrite_path(), ]; $stats_json = json_encode( $stats_data ); return base64_encode( $stats_json ?: '' ); // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions } ) ) ->set_value( new DeactivationModal\Model\FormValue( 'request_plugin_version', function () { return $this->plugin_info->get_plugin_version(); } ) ) ); } /** * @return string|null */ private function load_notice_message(): ?string { if ( ( apply_filters( 'webpc_server_errors', [] ) !== [] ) || is_multisite() ) { return null; } $images_all = $this->stats_manager->get_images_webp_all() ?: 0; $images_left = $this->stats_manager->get_images_webp_unconverted() ?: 0; if ( ( $images_all === 0 ) || ( $images_left === 0 ) ) { return null; } return sprintf( /* translators: %1$s: button label, %2$s: open anchor tag, %3$s: close anchor tag */ __( 'You have unconverted images on your website - click the %1$s button in %2$sthe plugin settings%3$s. This is all you need to do after installing the plugin.', 'webp-converter-for-media' ), '"' . __( 'Start Bulk Optimization', 'webp-converter-for-media' ) . '"', '<a href="' . esc_url( admin_url( 'upload.php?page=' . PageIntegrator::UPLOAD_MENU_PAGE ) ) . '">', '</a>' ); } }
| ver. 1.4 |
Github
|
.
| PHP 8.2.30 | Generation time: 0.09 |
proxy
|
phpinfo
|
Settings