HEX
Server: Apache/2.4.58 (Ubuntu)
System: Linux bsx-1-dev 6.8.0-101-generic #101-Ubuntu SMP PREEMPT_DYNAMIC Mon Feb 9 10:15:05 UTC 2026 x86_64
User: www-data (33)
PHP: 8.3.6
Disabled: NONE
Upload Files
File: /var/www/html/wp-content/plugins/memberpress/app/controllers/MeprDeactivationSurveyCtrl.php
<?php
defined('ABSPATH') || exit;

class MeprDeactivationSurveyCtrl extends MeprBaseCtrl
{
    /**
     * Load hooks.
     *
     * @return void
     */
    public function load_hooks()
    {
        if (MeprHooks::apply_filters('mepr_deactivation_survey_skip', $this->is_dev_url())) {
            return;
        }

        add_action('admin_enqueue_scripts', [$this, 'enqueue']);
        add_action('admin_footer', [$this, 'popup']);
    }

    /**
     * Checks if the current URL is a development URL.
     *
     * @return boolean
     */
    protected function is_dev_url()
    {
        return MeprUtils::is_dev_url();
    }

    /**
     * Enqueue scripts/styles.
     *
     * @return void
     */
    public function enqueue()
    {
        if (!$this->is_plugin_page()) {
            return;
        }

        wp_enqueue_style('mepr-deactivation-survey', MEPR_CSS_URL . '/admin-deactivation-survey.css', [], MEPR_VERSION);
        wp_enqueue_script('mepr-deactivation-survey', MEPR_JS_URL . '/admin_deactivation_survey.js', ['jquery'], MEPR_VERSION, true);

        wp_localize_script('mepr-deactivation-survey', 'MeprDeactivationSurvey', [
            'slug'                 => MEPR_PLUGIN_SLUG,
            'pleaseSelectAnOption' => __('Please select an option', 'memberpress'),
            'siteUrl'              => site_url(),
            'apiUrl'               => 'https://hooks.zapier.com/hooks/catch/43914/otu86c9/silent/',
        ]);
    }

    /**
     * Renders the deactivation survey popup.
     *
     * @return void
     */
    public function popup()
    {
        if (!$this->is_plugin_page()) {
            return;
        }

        $plugin = MEPR_PLUGIN_NAME;

        $options = [
            1 => [
                'label' => __('I no longer need the plugin', 'memberpress'),
            ],
            2 => [
                'label'   => __('I\'m switching to a different plugin', 'memberpress'),
                'details' => __('Please share which plugin', 'memberpress'),
            ],
            3 => [
                'label' => __('I couldn\'t get the plugin to work', 'memberpress'),
            ],
            4 => [
                'label' => __('It\'s a temporary deactivation', 'memberpress'),
            ],
            5 => [
                'label'   => __('Other', 'memberpress'),
                'details' => __('Please share the reason', 'memberpress'),
            ],
        ];

        MeprView::render('/admin/popups/deactivation_survey', compact('plugin', 'options'));
    }

    /**
     * Checks if the current page is a plugin page.
     *
     * @return boolean
     */
    protected function is_plugin_page()
    {
        return in_array(MeprUtils::get_current_screen_id(), ['plugins', 'plugins-network'], true);
    }
}