diff -r be944660c56a -r 3d72ae0968f4 wp/wp-content/plugins/portfolio/bws_menu/deactivation-form.php --- a/wp/wp-content/plugins/portfolio/bws_menu/deactivation-form.php Wed Sep 21 18:19:35 2022 +0200 +++ b/wp/wp-content/plugins/portfolio/bws_menu/deactivation-form.php Tue Sep 27 16:37:53 2022 +0200 @@ -1,11 +1,13 @@ ' . __( 'Contact Support', 'bestwebsoft' ) . ''; @@ -26,65 +29,65 @@ 'id' => 'NOT_WORKING', 'text' => __( 'The plugin is not working', 'bestwebsoft' ), 'input_type' => 'textarea', - 'input_placeholder' => esc_attr__( "Kindly share what didn't work so we can fix it in future updates...", 'bestwebsoft' ) + 'input_placeholder' => __( "Kindly share what didn't work so we can fix it in future updates...", 'bestwebsoft' ), ), array( 'id' => 'DIDNT_WORK_AS_EXPECTED', 'text' => __( "The plugin didn't work as expected", 'bestwebsoft' ), 'input_type' => 'textarea', - 'input_placeholder' => esc_attr__( 'What did you expect?', 'bestwebsoft' ) + 'input_placeholder' => __( 'What did you expect?', 'bestwebsoft' ), ), array( 'id' => 'SUDDENLY_STOPPED_WORKING', 'text' => __( 'The plugin suddenly stopped working', 'bestwebsoft' ), 'input_type' => '', 'input_placeholder' => '', - 'internal_message' => $contact_support_template + 'internal_message' => $contact_support_template, ), array( 'id' => 'BROKE_MY_SITE', 'text' => __( 'The plugin broke my site', 'bestwebsoft' ), 'input_type' => '', 'input_placeholder' => '', - 'internal_message' => $contact_support_template + 'internal_message' => $contact_support_template, ), array( 'id' => 'COULDNT_MAKE_IT_WORK', 'text' => __( "I couldn't understand how to get it work", 'bestwebsoft' ), 'input_type' => '', 'input_placeholder' => '', - 'internal_message' => $contact_support_template + 'internal_message' => $contact_support_template, ), array( 'id' => 'FOUND_A_BETTER_PLUGIN', 'text' => __( 'I found a better plugin', 'bestwebsoft' ), 'input_type' => 'textfield', - 'input_placeholder' => esc_attr__( "What's the plugin name?", 'bestwebsoft' ) + 'input_placeholder' => __( "What's the plugin name?", 'bestwebsoft' ), ), array( 'id' => 'GREAT_BUT_NEED_SPECIFIC_FEATURE', 'text' => __( "The plugin is great, but I need specific feature that you don't support", 'bestwebsoft' ), 'input_type' => 'textarea', - 'input_placeholder' => esc_attr__( 'What feature?', 'bestwebsoft' ) + 'input_placeholder' => __( 'What feature?', 'bestwebsoft' ), ), array( 'id' => 'NO_LONGER_NEEDED', 'text' => __( 'I no longer need the plugin', 'bestwebsoft' ), 'input_type' => '', - 'input_placeholder' => '' + 'input_placeholder' => '', ), array( 'id' => 'TEMPORARY_DEACTIVATION', 'text' => __( "It's a temporary deactivation, I'm just debugging an issue", 'bestwebsoft' ), 'input_type' => '', - 'input_placeholder' => '' + 'input_placeholder' => '', ), array( 'id' => 'OTHER', 'text' => __( 'Other', 'bestwebsoft' ), 'input_type' => 'textfield', - 'input_placeholder' => '' - ) + 'input_placeholder' => '', + ), ); $modal_html = '
@@ -92,13 +95,13 @@

' . __( 'Quick Feedback', 'bestwebsoft' ) . '

-

' . __( 'If you have a moment, please let us know why you are deactivating', 'bestwebsoft' ) . ":

    "; +

    ' . __( 'If you have a moment, please let us know why you are deactivating', 'bestwebsoft' ) . ':

      '; foreach ( $reasons as $reason ) { $list_item_classes = 'bws-modal-reason' . ( ! empty( $reason['input_type'] ) ? ' has-input' : '' ); if ( ! empty( $reason['internal_message'] ) ) { - $list_item_classes .= ' has-internal-message'; + $list_item_classes .= ' has-internal-message'; $reason_internal_message = $reason['internal_message']; } else { $reason_internal_message = ''; @@ -134,11 +137,11 @@ foreach ( $bstwbsftwppdtplgns_active_plugins as $basename => $plugin_data ) { - $slug = dirname( $basename ); + $slug = dirname( $basename ); $plugin_id = sanitize_title( $plugin_data['Name'] ); $script .= "(function($) { - var modalHtml = " . json_encode( $modal_html ) . ", + var modalHtml = " . wp_json_encode( $modal_html ) . ", \$modal = $( modalHtml ), \$deactivateLink = $( '#the-list .active[data-plugin=\"" . $basename . "\"] .deactivate a' ), \$anonymousFeedback = \$modal.find( '.bws-modal-anonymous-label' ), @@ -269,7 +272,7 @@ _parent.find( 'input, textarea' ).attr( 'placeholder', _parent.data( 'input-placeholder' ) ).focus(); if ( BwsModalIsReasonSelected( 'OTHER' ) ) { - \$modal.find( '.message' ).text( '" . __( 'Please tell us the reason so we can improve it.', 'bestwebsoft' ) . "' ).show(); + \$modal.find( '.message' ).text( '" . esc_html__( 'Please tell us the reason so we can improve it.', 'bestwebsoft' ) . "' ).show(); } } }); @@ -338,7 +341,7 @@ /* add script in FOOTER */ wp_register_script( 'bws-deactivation-feedback-dialog-boxes', '', array( 'jquery' ), false, true ); wp_enqueue_script( 'bws-deactivation-feedback-dialog-boxes' ); - wp_add_inline_script( 'bws-deactivation-feedback-dialog-boxes', sprintf( $script ) ); + wp_add_inline_script( 'bws-deactivation-feedback-dialog-boxes', $script ); } } @@ -351,71 +354,79 @@ function bws_submit_uninstall_reason_action() { global $bstwbsftwppdtplgns_options, $wp_version, $bstwbsftwppdtplgns_active_plugins, $current_user; - wp_verify_nonce( $_REQUEST['bws_ajax_nonce'], 'bws_ajax_nonce' ); - - $reason_id = isset( $_REQUEST['reason_id'] ) ? stripcslashes( sanitize_text_field( $_REQUEST['reason_id'] ) ) : ''; - $basename = isset( $_REQUEST['plugin'] ) ? stripcslashes( sanitize_text_field( $_REQUEST['plugin'] ) ) : ''; + if ( isset( $_REQUEST['bws_ajax_nonce'] ) ) { - if ( empty( $reason_id ) || empty( $basename ) ) { - exit; - } - - $reason_info = isset( $_REQUEST['reason_info'] ) ? stripcslashes( sanitize_text_field( $_REQUEST['reason_info'] ) ) : ''; - if ( ! empty( $reason_info ) ) { - $reason_info = substr( $reason_info, 0, 255 ); - } - $is_anonymous = isset( $_REQUEST['is_anonymous'] ) && 1 == $_REQUEST['is_anonymous']; + wp_verify_nonce( sanitize_text_field( wp_unslash( $_REQUEST['bws_ajax_nonce'] ) ), 'bws_ajax_nonce' ); - $options = array( - 'product' => $basename, - 'reason_id' => $reason_id, - 'reason_info' => $reason_info, - ); + $reason_id = isset( $_REQUEST['reason_id'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['reason_id'] ) ) : ''; + $basename = isset( $_REQUEST['plugin'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['plugin'] ) ) : ''; - if ( ! $is_anonymous ) { - if ( ! isset( $bstwbsftwppdtplgns_options ) ) - $bstwbsftwppdtplgns_options = ( is_multisite() ) ? get_site_option( 'bstwbsftwppdtplgns_options' ) : get_option( 'bstwbsftwppdtplgns_options' ); - - if ( ! empty( $bstwbsftwppdtplgns_options['track_usage']['usage_id'] ) ) { - $options['usage_id'] = $bstwbsftwppdtplgns_options['track_usage']['usage_id']; - } else { - $options['usage_id'] = false; - $options['url'] = get_bloginfo( 'url' ); - $options['wp_version'] = $wp_version; - $options['is_active'] = false; - $options['version'] = $bstwbsftwppdtplgns_active_plugins[ $basename ]['Version']; + if ( empty( $reason_id ) || empty( $basename ) ) { + exit; } - $options['email'] = $current_user->data->user_email; - } + $reason_info = isset( $_REQUEST['reason_info'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['reason_info'] ) ) : ''; + if ( ! empty( $reason_info ) ) { + $reason_info = substr( $reason_info, 0, 255 ); + } + $is_anonymous = isset( $_REQUEST['is_anonymous'] ) && 1 === intval( $_REQUEST['is_anonymous'] ); + + $options = array( + 'product' => $basename, + 'reason_id' => $reason_id, + 'reason_info' => $reason_info, + ); - /* send data */ - $raw_response = wp_remote_post( 'https://bestwebsoft.com/wp-content/plugins/products-statistics/deactivation-feedback/', array( - 'method' => 'POST', - 'body' => $options, - 'timeout' => 15, - ) ); + if ( ! $is_anonymous ) { + if ( ! isset( $bstwbsftwppdtplgns_options ) ) { + $bstwbsftwppdtplgns_options = ( is_multisite() ) ? get_site_option( 'bstwbsftwppdtplgns_options' ) : get_option( 'bstwbsftwppdtplgns_options' ); + } - if ( ! is_wp_error( $raw_response ) && 200 == wp_remote_retrieve_response_code( $raw_response ) ) { - if ( ! $is_anonymous ) { - $response = maybe_unserialize( wp_remote_retrieve_body( $raw_response ) ); + if ( ! empty( $bstwbsftwppdtplgns_options['track_usage']['usage_id'] ) ) { + $options['usage_id'] = $bstwbsftwppdtplgns_options['track_usage']['usage_id']; + } else { + $options['usage_id'] = false; + $options['url'] = get_bloginfo( 'url' ); + $options['wp_version'] = $wp_version; + $options['is_active'] = false; + $options['version'] = $bstwbsftwppdtplgns_active_plugins[ $basename ]['Version']; + } + + $options['email'] = $current_user->data->user_email; + } - if ( is_array( $response ) && ! empty( $response['usage_id'] ) && $response['usage_id'] != $options['usage_id'] ) { - $bstwbsftwppdtplgns_options['track_usage']['usage_id'] = $response['usage_id']; + /* send data */ + $raw_response = wp_remote_post( + 'https://bestwebsoft.com/wp-content/plugins/products-statistics/deactivation-feedback/', + array( + 'method' => 'POST', + 'body' => $options, + 'timeout' => 15, + ) + ); + + if ( ! is_wp_error( $raw_response ) && 200 === intval( wp_remote_retrieve_response_code( $raw_response ) ) ) { + if ( ! $is_anonymous ) { + $response = maybe_unserialize( wp_remote_retrieve_body( $raw_response ) ); - if ( is_multisite() ) - update_site_option( 'bstwbsftwppdtplgns_options', $bstwbsftwppdtplgns_options ); - else - update_option( 'bstwbsftwppdtplgns_options', $bstwbsftwppdtplgns_options ); + if ( is_array( $response ) && ! empty( $response['usage_id'] ) && $response['usage_id'] !== $options['usage_id'] ) { + $bstwbsftwppdtplgns_options['track_usage']['usage_id'] = $response['usage_id']; + + if ( is_multisite() ) { + update_site_option( 'bstwbsftwppdtplgns_options', $bstwbsftwppdtplgns_options ); + } else { + update_option( 'bstwbsftwppdtplgns_options', $bstwbsftwppdtplgns_options ); + } + } } - } - echo 'done'; - } else { - echo $response->get_error_code() . ': ' . $response->get_error_message(); + echo 'done'; + } else { + echo wp_kses_data( $response->get_error_code() ) . ': ' . wp_kses_data( $response->get_error_message() ); + } } exit; } } -add_action( 'wp_ajax_bws_submit_uninstall_reason_action', 'bws_submit_uninstall_reason_action' ); \ No newline at end of file +add_action( 'wp_ajax_bws_submit_uninstall_reason_action', 'bws_submit_uninstall_reason_action' );