*/ class Deactivator extends Base { public $slug; public $name; public $server; public function __construct( $plugin ) { $this->plugin = $plugin; $this->server = $this->plugin['server']; $this->slug = $this->plugin['TextDomain']; $this->name = $this->plugin['Name']; self::hooks(); } function hooks() { $this->action( 'admin_footer', 'deactivation_survey_modal', 99 ); if( did_action( 'cx-plugin-deactivation' ) ) return; do_action( 'cx-plugin-deactivation' ); $this->action( 'admin_enqueue_scripts', 'enqueue_scripts', 99 ); $this->priv( 'cx-plugin-deactivation', 'send_deactivation_survey', 99 ); } public function enqueue_scripts( $screen ) { if ( get_current_screen()->base != 'plugins' )return; wp_enqueue_style( "cx-plugin-deactivator", plugins_url( 'assets/css/deactivator.css', __FILE__ ), [], '' ); wp_enqueue_script( "cx-plugin-deactivator", plugins_url( 'assets/js/deactivator.js', __FILE__ ), [ 'jquery' ], '', true ); } public function deactivation_survey_modal() { if ( get_current_screen()->base != 'plugins' ) return; ?>
slug}/{$this->slug}.php" ); // send data $url = add_query_arg( [ 'rest_route' => '/plugins/deactivation', 'first_name' => $_POST['first_name'], 'last_name' => $_POST['last_name'], 'email' => $_POST['user_email'], 'plugin' => $_POST['plugin'], 'site_url' => $_POST['site_url'], 'reason' => serialize( $_POST['reason'] ), 'explanation' => $_POST['explanation'], ], wp_unslash( $this->server ) ); wp_remote_get( $url ); wp_send_json( [ 'status' => 1, 'message' => __( 'Plugin deactivated' ) ] ); } public function get_reasons() { $reasons = [ 'temporary' => 'It\'s a temporary deactivation', 'found_better' => 'Found a better plugin', 'features_missing' => 'Important features missing', 'doesnt_working' => 'It doesn\'t work as expected', 'mistakenly_installed' => 'I had installed it by mistake', 'others' => 'Others', ]; return apply_filters( "cx-plugin-deactivation-reasons", $reasons, $this->slug ); } }