'testing-only', 'text' => __( 'It was for testing only', 'accessibility-widget' ), 'banner' => array( 'message' => __( 'Test didn\'t go as planned? Tell us what features would make us a better fit.', 'accessibility-widget' ), 'link_text' => __( 'Suggest a feature', 'accessibility-widget' ), 'link_url' => 'https://wordpress.org/support/plugin/accessibility-widget/#new-post', ), ), array( 'id' => 'cant-figure-out', 'text' => __( 'I couldn\'t figure out how to use it', 'accessibility-widget' ), 'fields' => array( array( 'type' => 'textarea', 'label' => __( 'What was confusing or difficult?', 'accessibility-widget' ), 'placeholder' => __( 'e.g. Navigation was difficult, settings were unclear...', 'accessibility-widget' ), ), ), 'banner' => array( 'message' => __( 'Need quick help? Our team can guide you step-by-step.', 'accessibility-widget' ), 'link_text' => __( 'Connect with support', 'accessibility-widget' ), 'link_url' => 'https://wordpress.org/support/plugin/accessibility-widget/#new-post', ), ), array( 'id' => 'technical-issues', 'text' => __( 'It caused technical issues on my site', 'accessibility-widget' ), 'fields' => array( array( 'type' => 'textarea', 'label' => __( 'What issue did you experience? (e.g., layout break, performance issue, plugin conflict)', 'accessibility-widget' ), 'placeholder' => __( 'Describe the technical issue in detail...', 'accessibility-widget' ), ), ), 'banner' => array( 'message' => __( 'We can usually resolve compatibility issues quickly.', 'accessibility-widget' ), 'link_text' => __( 'Contact support', 'accessibility-widget' ), 'link_url' => 'https://wordpress.org/support/plugin/accessibility-widget/#new-post', ), ), array( 'id' => 'compliance-concern', 'text' => __( 'I\'m concerned about compliance or legal coverage', 'accessibility-widget' ), 'fields' => array( array( 'type' => 'textarea', 'label' => __( 'What concerns do you have?', 'accessibility-widget' ), 'placeholder' => __( 'Share your legal or compliance questions...', 'accessibility-widget' ), ), ), ), array( 'id' => 'feature-missing', 'text' => __( 'I need a feature that isn\'t available', 'accessibility-widget' ), 'fields' => array( array( 'type' => 'textarea', 'label' => __( 'Which feature were you looking for?', 'accessibility-widget' ), 'placeholder' => __( 'Describe the feature you need...', 'accessibility-widget' ), ), ), 'banner' => array( 'message' => __( 'We\'re actively improving AccessYes and prioritizing feature requests.', 'accessibility-widget' ), 'link_text' => __( 'Submit feature request', 'accessibility-widget' ), 'link_url' => 'https://wordpress.org/support/plugin/accessibility-widget/#new-post', ), ), array( 'id' => 'found-another-solution', 'text' => __( 'I found another solution', 'accessibility-widget' ), 'fields' => array( array( 'type' => 'textarea', 'label' => __( 'What made the other solution a better fit?', 'accessibility-widget' ), 'placeholder' => __( 'Which alternative are you using and why?', 'accessibility-widget' ), ), ), 'banner' => array( 'message' => __( 'If there\'s something missing, let us know — we may already support it.', 'accessibility-widget' ), 'link_text' => __( 'Tell us what’s missing', 'accessibility-widget' ), 'link_url' => 'https://wordpress.org/support/plugin/accessibility-widget/#new-post', ), ), ); return $reasons; } /** * Add deactivation scripts (modal + JS) */ public function deactivate_scripts() { global $pagenow; if ( 'plugins.php' !== $pagenow ) { return; } $reasons = $this->get_uninstall_reasons(); $reasons = ( isset( $reasons ) && is_array( $reasons ) ) ? $reasons : array(); // Generate nonce for security $nonce = wp_create_nonce( 'cya11y_uninstall_feedback_nonce' ); ?>
__( 'Invalid request.', 'accessibility-widget' ) ) ); } // Security check: Verify nonce if ( ! isset( $_POST['nonce'] ) || ! wp_verify_nonce( sanitize_text_field( wp_unslash( $_POST['nonce'] ) ), 'cya11y_uninstall_feedback_nonce' ) ) { wp_send_json_error( array( 'message' => __( 'Security check failed.', 'accessibility-widget' ) ) ); wp_die(); } // Security check: Verify user capability (only administrators can deactivate plugins) if ( ! current_user_can( 'activate_plugins' ) ) { wp_send_json_error( array( 'message' => __( 'Permission denied.', 'accessibility-widget' ) ) ); wp_die(); } global $wpdb; if ( ! isset( $_POST['reason_id'] ) ) { wp_send_json_error( array( 'message' => __( 'Missing required data.', 'accessibility-widget' ) ) ); wp_die(); } # User requested data structure $data = wp_json_encode( array( 'reason_id' => sanitize_text_field( wp_unslash( $_POST['reason_id'] ) ), 'date' => gmdate( 'M d, Y h:i:s A' ), 'url' => home_url(), 'user_email' => isset( $_POST['user_email'] ) ? sanitize_email( wp_unslash( $_POST['user_email'] ) ) : '', 'reason_info' => isset( $_POST['reason_info'] ) ? sanitize_textarea_field( wp_unslash( $_POST['reason_info'] ) ) : '', 'software' => isset( $_SERVER['SERVER_SOFTWARE'] ) ? sanitize_text_field( wp_unslash( $_SERVER['SERVER_SOFTWARE'] ) ) : '', 'php_version' => phpversion(), 'mysql_version' => $wpdb->db_version(), 'wp_version' => get_bloginfo( 'version' ), 'wc_version' => ( function_exists( 'WC' ) ) ? WC()->version : '', 'locale' => get_locale(), 'languages' => implode( ',', get_available_languages() ), 'theme' => wp_get_theme()->get( 'Name' ), 'plugin_version' => defined( 'CY_A11Y_VERSION' ) ? CY_A11Y_VERSION : '', 'is_multisite' => is_multisite() ? true: false, )); // Send feedback to remote endpoint (non-blocking) - Placeholder URL wp_remote_post( 'https://feedback.cookieyes.com/api/v1/accessyes-feedbacks', array( 'headers' => array( 'Content-Type' => 'application/json; charset=utf-8' ), 'method' => 'POST', 'timeout' => 45, 'redirection' => 5, 'httpversion' => '1.0', 'blocking' => false, 'body' => $data, 'cookies' => array(), ) ); wp_send_json_success(); } } new Uninstall_Feedback();