Kiwi Social Share – Social Media Share Buttons & Icons - Version 2.0.14

Version Description

Download this release

Release Info

Developer machothemes
Plugin Icon wp plugin Kiwi Social Share – Social Media Share Buttons & Icons
Version 2.0.14
Comparing to
See all releases

Code changes from version 2.0.13 to 2.0.14

includes/class-kiwi-social-share-review.php ADDED
@@ -0,0 +1,182 @@
1
+ <?php
2
+
3
+ class Kiwi_Social_Share_Review {
4
+
5
+ private static $instance;
6
+ private $when = array( 5, 15, 30 );
7
+ private $value;
8
+ private $messages;
9
+ private $link = 'https://wordpress.org/support/plugin/%s/reviews/#new-post';
10
+ private $slug = '';
11
+ private $option_name = '';
12
+
13
+ function __construct( $args ) {
14
+
15
+ if ( isset( $args['slug'] ) ) {
16
+ $this->slug = $args['slug'];
17
+ }
18
+
19
+ $this->value = $this->value();
20
+
21
+ $this->messages = array(
22
+ 'notice' => __( "Hey, I noticed you have installed our plugin for %s day(s) - that's awesome! Could you please do me a BIG favor and give it a 5-star rating on WordPress? Just to help us spread the word and boost our motivation.", 'kiwi-social-share' ),
23
+ 'rate' => __( 'Ok, you deserve it', 'kiwi-social-share' ),
24
+ 'rated' => __( 'I already did', 'kiwi-social-share' ),
25
+ 'no_rate' => __( 'No, not good enough', 'kiwi-social-share' ),
26
+ );
27
+
28
+ if ( isset( $args['messages'] ) ) {
29
+ $this->messages = wp_parse_args( $args['messages'], $this->messages );
30
+ }
31
+
32
+ $this->init();
33
+
34
+ }
35
+
36
+ public static function get_instance( $args ) {
37
+ if ( null === static::$instance ) {
38
+ static::$instance = new static( $args );
39
+ }
40
+
41
+ return static::$instance;
42
+ }
43
+
44
+ private function init() {
45
+ if ( ! is_admin() ) {
46
+ return;
47
+ }
48
+
49
+ add_action( 'wp_ajax_epsilon_review', array( $this, 'ajax' ) );
50
+
51
+ if ( $this->check() ) {
52
+ add_action( 'admin_notices', array( $this, 'five_star_wp_rate_notice' ) );
53
+ add_action( 'admin_enqueue_scripts', array( $this, 'enqueue' ) );
54
+ add_action( 'admin_print_footer_scripts', array( $this, 'ajax_script' ) );
55
+ }
56
+
57
+ }
58
+
59
+ private function check() {
60
+
61
+ $options = get_option( 'kiwi_general_settings' );
62
+ $option = isset( $options['givemereview'] ) ? $options['givemereview'] : '';
63
+ $currDate = date( 'Y-m-d' );
64
+ if ( 'already-rated' == $option ) {
65
+ return false;
66
+ }
67
+
68
+ if ( $this->value == $option ) {
69
+ return false;
70
+ }
71
+
72
+ if ( is_array( $this->when ) ) {
73
+ foreach ( $this->when as $et ) {
74
+ if ( date( 'Y-m-d', strtotime( $currDate . ' +' . $et . ' days' ) ) == $this->value ) {
75
+ return true;
76
+ }
77
+
78
+ }
79
+ }
80
+
81
+ }
82
+
83
+ private function value() {
84
+
85
+ $value = get_transient( 'kiwi_social_share_review' );
86
+
87
+ if ( $value ) {
88
+ $current_time = time(); // or your date as well
89
+ $trans_date = strtotime($value);
90
+ $date_diff = $current_time - $trans_date;
91
+ return round($date_diff / (60 * 60 * 24));
92
+ }
93
+
94
+ $date = date( 'Y-m-d' );
95
+ set_transient( 'kiwi_social_share_review', $date, 24 * 30 * HOUR_IN_SECONDS );
96
+
97
+ }
98
+
99
+ public function five_star_wp_rate_notice() {
100
+
101
+ $url = sprintf( $this->link, $this->slug );
102
+
103
+ ?>
104
+ <div id="<?php echo $this->slug ?>-epsilon-review-notice" class="notice notice-success is-dismissible">
105
+ <p><?php echo sprintf( wp_kses_post( $this->messages['notice'] ), $this->value ); ?></p>
106
+ <p class="actions">
107
+ <a id="epsilon-rate" href="<?php echo esc_url( $url ) ?>"
108
+ class="button button-primary epsilon-review-button"><?php echo esc_html( $this->messages['rate'] ); ?></a>
109
+ <a id="epsilon-rated" href="#"
110
+ class="button button-secondary epsilon-review-button"><?php echo esc_html( $this->messages['rated'] ); ?></a>
111
+ <a id="epsilon-no-rate" href="#"
112
+ class="button button-secondary epsilon-review-button"><?php echo esc_html( $this->messages['no_rate'] ); ?></a>
113
+ </p>
114
+ </div>
115
+ <?php
116
+ }
117
+
118
+ public function ajax() {
119
+
120
+ check_ajax_referer( 'epsilon-review', 'security' );
121
+
122
+ $options = get_option( 'kiwi_general_settings', array() );
123
+
124
+ if ( isset( $_POST['epsilon-review'] ) ) {
125
+ $options['givemereview'] = 'already-rated';
126
+ } else {
127
+ $options['givemereview'] = $this->value;
128
+ }
129
+
130
+ update_option( 'kiwi_general_settings', $options );
131
+
132
+ wp_die( 'ok' );
133
+
134
+ }
135
+
136
+ public function enqueue() {
137
+ wp_enqueue_script( 'jquery' );
138
+ }
139
+
140
+ public function ajax_script() {
141
+
142
+ $ajax_nonce = wp_create_nonce( "epsilon-review" );
143
+
144
+ ?>
145
+
146
+ <script type="text/javascript">
147
+ jQuery(document).ready(function ($) {
148
+
149
+ $('.epsilon-review-button').click(function (evt) {
150
+ var href = $(this).attr('href'),
151
+ id = $(this).attr('id');
152
+
153
+ evt.preventDefault();
154
+
155
+ var data = {
156
+ action: 'epsilon_review',
157
+ security: '<?php echo $ajax_nonce; ?>',
158
+ };
159
+
160
+ if ('epsilon-rated' === id) {
161
+ data['epsilon-review'] = 1;
162
+ }
163
+
164
+ $.post('<?php echo admin_url( 'admin-ajax.php' ) ?>', data, function (response) {
165
+ $('#<?php echo $this->slug ?>-epsilon-review-notice').slideUp('fast', function () {
166
+ $(this).remove();
167
+ });
168
+
169
+ if ('epsilon-rate' === id) {
170
+ window.location.href = href;
171
+ }
172
+
173
+ });
174
+
175
+ });
176
+
177
+ });
178
+ </script>
179
+
180
+ <?php
181
+ }
182
+ }
includes/class-kiwi-social-share.php CHANGED
@@ -122,10 +122,6 @@ class Kiwi_Social_Share {
122
add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ), 10, 1 );
123
add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_styles' ), 10, 1 );
124
125
- // Handle feedback
126
- require_once 'lib/class-kiwi-social-share-feedback.php';
127
- new Kiwi_Social_Share_Feedback( $this->file );
128
-
129
// Handle localisation
130
$this->load_plugin_textdomain();
131
add_action( 'init', array( $this, 'load_localisation' ), 0 );
122
add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ), 10, 1 );
123
add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_styles' ), 10, 1 );
124
125
// Handle localisation
126
$this->load_plugin_textdomain();
127
add_action( 'init', array( $this, 'load_localisation' ), 0 );
includes/lib/class-epsilon-plugin-request.php DELETED
@@ -1,225 +0,0 @@
1
- <?php
2
-
3
- class Epsilon_Plugin_Request {
4
-
5
- /**
6
- * Url for the request
7
- *
8
- * @var string
9
- */
10
- private $url = 'https://tamewp.com/';
11
- /**
12
- * Api endpoint
13
- *
14
- * @var string
15
- */
16
- private $endpoint = 'wp-json/epsilon/v1/add-tracking-data';
17
- /**
18
- * Private data
19
- *
20
- * @var array
21
- */
22
- private $data = array(
23
- 'server' => array(),
24
- 'user' => array(),
25
- 'wordpress' => array(
26
- 'deactivated_plugin' => array(),
27
- ),
28
- );
29
- /**
30
- * Plugin file
31
- *
32
- * @var string
33
- */
34
- private $plugin_file = '';
35
-
36
- private $allow_tracking = 0;
37
-
38
- public $request_successful = false;
39
-
40
- function __construct( $_plugin_file, $args ) {
41
-
42
- // Set variables
43
- $this->allow_tracking = $args['tracking'];
44
- $this->plugin_file = $_plugin_file;
45
- $this->data['unique'] = md5( home_url() . get_bloginfo( 'admin_email' ) );
46
- $this->data['wordpress']['deactivated_plugin']['uninstall_reason'] = $args['reason'];
47
- $this->data['wordpress']['deactivated_plugin']['uninstall_details'] = $args['details'];
48
-
49
- // Start collecting data
50
- $this->_collect_data();
51
- $this->_generate_url();
52
- $this->request_successful = $this->_send_request();
53
- }
54
-
55
- /**
56
- * Collect all data for the request.
57
- *
58
- */
59
- private function _collect_data() {
60
-
61
- $current_plugin = get_plugin_data( $this->plugin_file );
62
-
63
- // Plugin data
64
- $this->data['wordpress']['deactivated_plugin']['slug'] = $current_plugin['TextDomain'];
65
- $this->data['wordpress']['deactivated_plugin']['name'] = $current_plugin['Name'];
66
- $this->data['wordpress']['deactivated_plugin']['version'] = $current_plugin['Version'];
67
- $this->data['wordpress']['deactivated_plugin']['author'] = $current_plugin['AuthorName'];
68
-
69
- if ( $this->allow_tracking ) {
70
- $this->_collect_wordpress_data();
71
- $this->_collect_server_data();
72
- $this->_collect_user_data();
73
- }
74
-
75
- }
76
-
77
- /**
78
- * Collect WordPress data.
79
- *
80
- */
81
- private function _collect_wordpress_data() {
82
- $this->data['wordpress']['locale'] = ( get_bloginfo( 'version' ) >= 4.7 ) ? get_user_locale() : get_locale();
83
- $this->data['wordpress']['wp_version'] = get_bloginfo( 'version' );
84
- $this->data['wordpress']['multisite'] = is_multisite();
85
-
86
- $this->data['wordpress']['themes'] = $this->get_themes();
87
- $this->data['wordpress']['plugins'] = $this->get_plugins();
88
- }
89
-
90
- /**
91
- * Collect server data.
92
- *
93
- */
94
- private function _collect_server_data() {
95
- $this->data['server']['server'] = isset( $_SERVER['SERVER_SOFTWARE'] ) ? $_SERVER['SERVER_SOFTWARE'] : '';
96
- $this->data['server']['php_version'] = phpversion();
97
- $this->data['server']['url'] = home_url();
98
- }
99
-
100
- /**
101
- * Collect user data.
102
- *
103
- */
104
- private function _collect_user_data() {
105
- $admin = get_user_by( 'email', get_bloginfo( 'admin_email' ) );
106
- if ( ! $admin ) {
107
- $this->data['user']['email'] = '';
108
- $this->data['user']['first_name'] = '';
109
- $this->data['user']['last_name'] = '';
110
- }else{
111
- $this->data['user']['email'] = get_bloginfo( 'admin_email' );
112
- $this->data['user']['first_name'] = $admin->first_name;
113
- $this->data['user']['last_name'] = $admin->last_name;
114
- }
115
- }
116
-
117
- /**
118
- * Get current themes
119
- *
120
- * @return array
121
- */
122
- private function get_themes() {
123
- $theme = wp_get_theme();
124
-
125
- return array(
126
- 'installed' => $this->_get_installed_themes(),
127
- 'active' => array(
128
- 'slug' => get_stylesheet(),
129
- 'name' => $theme->get( 'Name' ),
130
- 'version' => $theme->get( 'Version' ),
131
- 'author' => $theme->get( 'Author' ),
132
- ),
133
- );
134
- }
135
-
136
- /**
137
- * Get an array of installed themes
138
- */
139
- private function _get_installed_themes() {
140
- $installed = wp_get_themes();
141
- $theme = get_stylesheet();
142
- $arr = array();
143
-
144
- foreach ( $installed as $slug => $info ) {
145
- if ( $slug === $theme ) {
146
- continue;
147
- }
148
- $arr[ $slug ] = array(
149
- 'slug' => $slug,
150
- 'name' => $info->get( 'Name' ),
151
- 'version' => $info->get( 'Version' ),
152
- 'author' => $info->get( 'Author' )
153
- );
154
- };
155
-
156
- return $arr;
157
- }
158
-
159
- /**
160
- * Get a list of installed plugins
161
- */
162
- private function get_plugins() {
163
- if ( ! function_exists( 'get_plugins' ) ) {
164
- include ABSPATH . '/wp-admin/includes/plugin.php';
165
- }
166
-
167
- $plugins = get_plugins();
168
- $option = get_option( 'active_plugins', array() );
169
- $active = array();
170
- $installed = array();
171
- foreach ( $plugins as $id => $info ) {
172
- if ( in_array( $id, $active ) ) {
173
- continue;
174
- }
175
-
176
- $id = explode( '/', $id );
177
- $id = ucwords( str_replace( '-', ' ', $id[0] ) );
178
-
179
- $installed[] = $id;
180
- }
181
-
182
- foreach ( $option as $id ) {
183
- $id = explode( '/', $id );
184
- $id = ucwords( str_replace( '-', ' ', $id[0] ) );
185
-
186
- $active[] = $id;
187
- }
188
-
189
- return array(
190
- 'installed' => $installed,
191
- 'active' => $active,
192
- );
193
- }
194
-
195
- /**
196
- * Generate the url
197
- */
198
- protected function _generate_url() {
199
- $this->url = $this->url . $this->endpoint;
200
- }
201
-
202
- /**
203
- * Send dat to server.
204
- *
205
- */
206
- private function _send_request() {
207
-
208
- $request = wp_remote_post( $this->url, array(
209
- 'method' => 'POST',
210
- 'timeout' => 20,
211
- 'redirection' => 5,
212
- 'httpversion' => '1.1',
213
- 'blocking' => true,
214
- 'body' => $this->data,
215
- 'user-agent' => 'MT/EPSILON-CUSTOMER-TRACKING/' . esc_url( home_url() )
216
- ) );
217
-
218
- if ( is_wp_error( $request ) ) {
219
- return false;
220
- }
221
-
222
- return true;
223
-
224
- }
225
- }
includes/lib/class-kiwi-social-share-feedback.php DELETED
@@ -1,252 +0,0 @@
1
- <?php
2
-
3
- class Kiwi_Social_Share_Feedback {
4
-
5
- private $plugin_file = '';
6
- private $plugin_name = '';
7
-
8
- function __construct( $_plugin_file ) {
9
-
10
- $this->plugin_file = $_plugin_file;
11
- $this->plugin_name = basename( $this->plugin_file, '.php' );
12
-
13
- // Deactivation
14
- add_filter( 'plugin_action_links_' . plugin_basename( $this->plugin_file ), array( $this, 'filter_action_links' ) );
15
- add_action( 'admin_footer-plugins.php', array( $this, 'goodbye_ajax' ) );
16
- add_action( 'wp_ajax_epsilon_deactivate_plugin', array( $this, 'epsilon_deactivate_plugin_callback' ) );
17
-
18
- }
19
-
20
- /**
21
- * Filter the deactivation link to allow us to present a form when the user deactivates the plugin
22
- * @since 1.0.0
23
- */
24
- public function filter_action_links( $links ) {
25
-
26
- if( isset( $links['deactivate'] ) ) {
27
- $deactivation_link = $links['deactivate'];
28
- // Insert an onClick action to allow form before deactivating
29
- $deactivation_link = str_replace( '<a ', '<div class="epsilon-deactivate-form-wrapper"><span class="epsilon-deactivate-form" id="epsilon-deactivate-form-' . esc_attr( $this->plugin_name ) . '"></span></div><a onclick="javascript:event.preventDefault();" id="epsilon-deactivate-link-' . esc_attr( $this->plugin_name ) . '" ', $deactivation_link );
30
- $links['deactivate'] = $deactivation_link;
31
- }
32
- return $links;
33
- }
34
-
35
- /**
36
- * Form text strings
37
- * These can be filtered
38
- * @since 1.0.0
39
- */
40
- public function goodbye_ajax() {
41
- // Get our strings for the form
42
- $form = $this->get_form_info();
43
-
44
- // Build the HTML to go in the form
45
- $html = '<div class="epsilon-deactivate-form-head"><strong>' . esc_html( $form['heading'] ) . '</strong></div>';
46
- $html .= '<div class="epsilon-deactivate-form-body"><p>' . esc_html( $form['body'] ) . '</p>';
47
- if( is_array( $form['options'] ) ) {
48
- $html .= '<div class="epsilon-deactivate-options"><p>';
49
- foreach( $form['options'] as $key => $option ) {
50
- if ( 'features' == $key ) {
51
- $html .= '<input type="radio" name="epsilon-deactivate-reason" checked="checked" id="' . esc_attr( $key ) . '" value="' . esc_attr( $key ) . '"> <label for="' . esc_attr( $key ) . '">' . esc_attr( $option ) . '</label><br>';
52
- }else{
53
- $html .= '<input type="radio" name="epsilon-deactivate-reason" id="' . esc_attr( $key ) . '" value="' . esc_attr( $key ) . '"> <label for="' . esc_attr( $key ) . '">' . esc_attr( $option ) . '</label><br>';
54
- }
55
- }
56
- $html .= '</p><label id="epsilon-deactivate-details-label" for="epsilon-deactivate-reasons"><strong>' . esc_html( $form['details'] ) .'</strong></label><textarea name="epsilon-deactivate-details" id="epsilon-deactivate-details" rows="2" style="width:100%"></textarea>';
57
- $html .= '<input type="checkbox" name="epsilon-deactivate-tracking" checked="" id="allow-tracking" value="yes"> <label for="allow-tracking">' . esc_html__( 'Allow us to get more information in order to improve our plugin', 'kiwi-social-share') . '</label><br>';
58
- $html .= '</div><!-- .epsilon-deactivate-options -->';
59
- }
60
- $html .= '</div><!-- .epsilon-deactivate-form-body -->';
61
- $html .= '<p class="deactivating-spinner"><span class="spinner"></span> ' . __( 'Submitting form', 'kiwi-social-share') . '</p>';
62
- $html .= '<div class="epsilon-deactivate-form-footer"><p><a id="epsilon-deactivate-plugin" href="#">' . __( 'Just Deactivate', 'kiwi-social-share') . '</a><a id="epsilon-deactivate-submit-form" class="button button-primary" href="#">' . __( 'Submit and Deactivate', 'kiwi-social-share') . '</a></p></div>'
63
- ?>
64
- <div class="epsilon-deactivate-form-bg" data-plugin="<?php echo esc_attr( $this->plugin_name ); ?>"></div>
65
- <style type="text/css">
66
- .epsilon-deactivate-form-active .epsilon-deactivate-form-bg {
67
- background: rgba( 0, 0, 0, .5 );
68
- position: fixed;
69
- top: 0;
70
- left: 0;
71
- width: 100%;
72
- height: 100%;
73
- }
74
- .epsilon-deactivate-form-wrapper {
75
- position: relative;
76
- z-index: 999;
77
- display: none;
78
- }
79
- .epsilon-deactivate-form-active .epsilon-deactivate-form-wrapper {
80
- display: block;
81
- }
82
- .epsilon-deactivate-form {
83
- display: none;
84
- }
85
- .epsilon-deactivate-form-active .epsilon-deactivate-form {
86
- position: absolute;
87
- bottom: 30px;
88
- left: 0;
89
- max-width: 400px;
90
- background: #fff;
91
- white-space: normal;
92
- }
93
- .epsilon-deactivate-form-head {
94
- background: #51AD31;
95
- color: #fff;
96
- padding: 8px 18px;
97
- }
98
- .epsilon-deactivate-form-body {
99
- padding: 8px 18px;
100
- color: #444;
101
- }
102
- .deactivating-spinner {
103
- display: none;
104
- }
105
- .deactivating-spinner .spinner {
106
- float: none;
107
- margin: 4px 4px 0 18px;
108
- vertical-align: bottom;
109
- visibility: visible;
110
- }
111
- .epsilon-deactivate-form-footer {
112
- padding: 8px 18px;
113
- }
114
- .epsilon-deactivate-form-footer p {
115
- display: flex;
116
- align-items: center;
117
- justify-content: space-between;
118
- }
119
- .epsilon-deactivate-form.process-response .epsilon-deactivate-form-body,
120
- .epsilon-deactivate-form.process-response .epsilon-deactivate-form-footer {
121
- position: relative;
122
- }
123
- .epsilon-deactivate-form.process-response .epsilon-deactivate-form-body:after,
124
- .epsilon-deactivate-form.process-response .epsilon-deactivate-form-footer:after {
125
- content: "";
126
- display: block;
127
- position: absolute;
128
- top: 0;
129
- left: 0;
130
- width: 100%;
131
- height: 100%;
132
- background-color: rgba( 255, 255, 255, .5 );
133
- }
134
- </style>
135
- <script>
136
- jQuery(document).ready(function($){
137
- var deactivateURL = $("#epsilon-deactivate-link-<?php echo esc_attr( $this->plugin_name ); ?>"),
138
- formContainer = $('#epsilon-deactivate-form-<?php echo esc_attr( $this->plugin_name ); ?>'),
139
- detailsStrings = {
140
- 'setup' : '<?php echo __( 'What was the dificult part ?', 'kiwi-social-share') ?>',
141
- 'documentation' : '<?php echo __( 'What can we describe more ?', 'kiwi-social-share') ?>',
142
- 'features' : '<?php echo __( 'How could we improve ?', 'kiwi-social-share') ?>',
143
- 'better-plugin' : '<?php echo __( 'Can you mention it ?', 'kiwi-social-share') ?>',
144
- 'incompatibility' : '<?php echo __( 'With what plugin or theme is incompatible ?', 'kiwi-social-share') ?>',
145
- };
146
-
147
- $( deactivateURL ).on("click",function(){
148
- // We'll send the user to this deactivation link when they've completed or dismissed the form
149
- var url = deactivateURL.attr( 'href' );
150
- $('body').toggleClass('epsilon-deactivate-form-active');
151
- formContainer.fadeIn();
152
- formContainer.html( '<?php echo $html; ?>');
153
-
154
- formContainer.on( 'change', 'input[name="epsilon-deactivate-reason"]', function(){
155
- var detailsLabel = formContainer.find( '#epsilon-deactivate-details-label strong' );
156
- var value = formContainer.find( 'input[name="epsilon-deactivate-reason"]:checked' ).val();
157
- detailsLabel.text( detailsStrings[ value ] );
158
- });
159
-
160
- formContainer.on('click', '#epsilon-deactivate-submit-form', function(e){
161
- var data = {
162
- 'action': 'epsilon_deactivate_plugin',
163
- 'security': "<?php echo wp_create_nonce ( 'epsilon_deactivate_plugin' ); ?>",
164
- 'dataType': "json"
165
- };
166
- e.preventDefault();
167
- // As soon as we click, the body of the form should disappear
168
- formContainer.addClass( 'process-response' );
169
- // Fade in spinner
170
- formContainer.find(".deactivating-spinner").fadeIn();
171
-
172
- data['reason'] = formContainer.find( 'input[name="epsilon-deactivate-reason"]:checked' ).val();
173
- data['details'] = formContainer.find('#epsilon-deactivate-details').val();
174
- data['tracking'] = formContainer.find( '#allow-tracking:checked' ).length;
175
-
176
- $.post(
177
- ajaxurl,
178
- data,
179
- function(response){
180
- // Redirect to original deactivation URL
181
- window.location.href = url;
182
- }
183
- );
184
- });
185
-
186
- formContainer.on('click', '#epsilon-deactivate-plugin', function(e){
187
- e.preventDefault();
188
- window.location.href = url;
189
- });
190
-
191
- // If we click outside the form, the form will close
192
- $('.epsilon-deactivate-form-bg').on('click',function(){
193
- formContainer.fadeOut();
194
- $('body').removeClass('epsilon-deactivate-form-active');
195
- });
196
- });
197
- });
198
- </script>
199
- <?php }
200
-
201
- /*
202
- * Form text strings
203
- * These are non-filterable and used as fallback in case filtered strings aren't set correctly
204
- * @since 1.0.0
205
- */
206
- public function get_form_info() {
207
- $form = array();
208
- $form['heading'] = __( 'Sorry to see you go', 'kiwi-social-share');
209
- $form['body'] = __( 'Before you deactivate the plugin, would you quickly give us your reason for doing so?', 'kiwi-social-share');
210
- $form['options'] = array(
211
- 'setup' => __( 'Set up is too difficult', 'kiwi-social-share'),
212
- 'documentation' => __( 'Lack of documentation', 'kiwi-social-share'),
213
- 'features' => __( 'Not the features I wanted', 'kiwi-social-share'),
214
- 'better-plugin' => __( 'Found a better plugin', 'kiwi-social-share'),
215
- 'incompatibility' => __( 'Incompatible with theme or plugin', 'kiwi-social-share'),
216
- );
217
- $form['details'] = __( 'How could we improve ?', 'kiwi-social-share');
218
- return $form;
219
- }
220
-
221
- public function epsilon_deactivate_plugin_callback() {
222
-
223
- check_ajax_referer( 'epsilon_deactivate_plugin', 'security' );
224
-
225
- if ( isset($_POST['reason']) && isset($_POST['details']) && isset($_POST['tracking']) ) {
226
- require_once 'class-epsilon-plugin-request.php';
227
- $args = array(
228
- 'reason' => $_POST['reason'],
229
- 'details' => $_POST['details'],
230
- 'tracking' => $_POST['tracking'],
231
- );
232
- $request = new Epsilon_Plugin_Request( $this->plugin_file, $args );
233
- if ( $request->request_successful ) {
234
- echo json_encode( array(
235
- 'status' => 'ok',
236
- ) );
237
- }else{
238
- echo json_encode( array(
239
- 'status' => 'nok',
240
- ) );
241
- }
242
- }else{
243
- echo json_encode( array(
244
- 'status' => 'ok',
245
- ) );
246
- }
247
-
248
- die();
249
-
250
- }
251
-
252
- }
includes/lib/cmb2/cmb2-old.rar ADDED
Binary file
kiwi-social-share.php CHANGED
@@ -1,13 +1,13 @@
1
<?php
2
/*
3
* Plugin Name: Kiwi Social Share - Social Media Share Buttons & Icons
4
- * Version: 2.0.13
5
- * Plugin URI: https://www.machothemes.com/kiwi-social-share
6
* Description: Really beautiful & simple social media & share buttons + icons. Simplicity & speed is key with this social media share plugin.
7
- * Author: Macho Themes
8
* Author URI: https://www.machothemes.com
9
* Requires at least: 4.0
10
- * Tested up to: 4.9
11
*
12
* Text Domain: kiwi-social-share
13
* Domain Path: /languages/
@@ -38,7 +38,7 @@ require_once 'includes/class-kiwi-social-share-autoloader.php';
38
* @return object Kiwi_Social_Share
39
*/
40
function Kiwi_Social_Share() {
41
- $instance = Kiwi_Social_Share::instance( __FILE__, '2.0.13' );
42
43
if ( is_null( $instance->settings ) ) {
44
$instance->settings = Kiwi_Social_Share_Settings::instance( $instance );
@@ -47,4 +47,18 @@ function Kiwi_Social_Share() {
47
return $instance;
48
}
49
50
- Kiwi_Social_Share();
1
<?php
2
/*
3
* Plugin Name: Kiwi Social Share - Social Media Share Buttons & Icons
4
+ * Version: 2.0.14
5
+ * Plugin URI: https://www.machothemes.com/item/kiwi-social-share
6
* Description: Really beautiful & simple social media & share buttons + icons. Simplicity & speed is key with this social media share plugin.
7
+ * Author: MachoThemes
8
* Author URI: https://www.machothemes.com
9
* Requires at least: 4.0
10
+ * Tested up to: 5.0
11
*
12
* Text Domain: kiwi-social-share
13
* Domain Path: /languages/
38
* @return object Kiwi_Social_Share
39
*/
40
function Kiwi_Social_Share() {
41
+ $instance = Kiwi_Social_Share::instance( __FILE__, '2.0.14' );
42
43
if ( is_null( $instance->settings ) ) {
44
$instance->settings = Kiwi_Social_Share_Settings::instance( $instance );
47
return $instance;
48
}
49
50
+ function kiwi_social_share_check_for_review() {
51
+ if ( ! is_admin() ) {
52
+ return;
53
+ }
54
+ require_once KIWI_SOCIAL_SHARE_BASE . 'includes/class-kiwi-social-share-review.php';
55
+
56
+ Kiwi_Social_Share_Review::get_instance( array(
57
+ 'slug' => 'kiwi-social-share',
58
+ ) );
59
+ }
60
+
61
+ Kiwi_Social_Share();
62
+
63
+ kiwi_social_share_check_for_review();
64
+
readme.txt CHANGED
@@ -3,14 +3,16 @@
3
Contributors: machothemes, silkalns
4
Tags: social media button, social share button, social floating bar, social share bar, facebook share, social sharing icons, twitter share, woocommerce sharing, share buttons, pinterest share, google plus share, social share counters
5
Requires at least: 3.8
6
- Tested up to: 4.9
7
- Stable tag: 2.0.13
8
License: GPLv3 or later
9
License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
11
This is by far the best free WordPress share plugin. It is simple yet does exactly what it should with plenty of customisation options.
12
== Description ==
13
14
This is by far the best & easiest to use WordPress social media share plugin. A WordPress share plugin with custom icons built-in.
15
16
@@ -41,7 +43,7 @@ A WordPress Social Media Widget solution is coming soon, stay tuned.
41
42
**About us:**
43
44
- We are a young team of WordPress aficionados who love building WordPress plugins & <a href="https://www.machothemes.com/" rel="friend" target="_blank" title="Premium WordPress themes">Premium WordPress themes</a> over on our theme shop. We’re also blogging and wish to help our users find the best <a rel="friend" href="https://www.machothemes.com/blog/cheap-wordpress-hosting/" target="_blank" title="Cheap WordPress Hosting">Cheap WordPress hosting</a> & the best <a href="https://www.machothemes.com/blog/best-free-wordpress-bootstrap-themes/" title="Bootstrap WordPress themes" target="_blank" rel="friend">Bootstrap WordPress Themes</a>.
45
46
47
== Installation ==
@@ -76,6 +78,9 @@ Floating Bar Filters
76
77
== Changelog ==
78
79
= 2.0.13 =
80
* Fixed "Trying to get property ‘post_content’ when there is no id, like 404"
81
3
Contributors: machothemes, silkalns
4
Tags: social media button, social share button, social floating bar, social share bar, facebook share, social sharing icons, twitter share, woocommerce sharing, share buttons, pinterest share, google plus share, social share counters
5
Requires at least: 3.8
6
+ Tested up to: 5.0
7
+ Stable tag: 2.0.14
8
License: GPLv3 or later
9
License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
11
This is by far the best free WordPress share plugin. It is simple yet does exactly what it should with plenty of customisation options.
12
== Description ==
13
14
+ **Kiwi Social Share** is a standalone plugin built, maintained & operated by the friendly folks over at [MachoThemes](https://www.machothemes.com/)
15
+
16
This is by far the best & easiest to use WordPress social media share plugin. A WordPress share plugin with custom icons built-in.
17
18
43
44
**About us:**
45
46
+ We are a young team of WordPress aficionados who love building WordPress plugins & <a href="https://www.machothemes.com/" target="_blank" title="Premium WordPress themes">Premium WordPress themes</a> over on our theme shop. We’re also blogging and wish to help our users find the best <a href="https://www.machothemes.com/blog/cheapest-wordpress-hosting/" target="_blank" title="Cheap WordPress Hosting">Cheap WordPress hosting</a> & the best <a href="https://www.machothemes.com/blog/best-free-wordpress-bootstrap-themes/" title="Bootstrap WordPress themes" target="_blank">Bootstrap WordPress Themes</a>.
47
48
49
== Installation ==
78
79
== Changelog ==
80
81
+ = 2.014 =
82
+ * Remove uninstall feedback
83
+
84
= 2.0.13 =
85
* Fixed "Trying to get property ‘post_content’ when there is no id, like 404"
86