PluginProbe
Meow Gallery / 4.2.2
Meow Gallery v4.2.2
5.5.5 5.5.4 5.5.3 5.5.2 5.5.1 5.5.0 5.4.9 5.4.8 5.4.7 4.1.5 4.1.6 4.1.7 4.1.8 4.1.9 4.2.0 4.2.1 4.2.2 4.2.3 4.2.4 4.2.5 4.2.6 4.2.7 4.2.8 4.2.9 4.3.0 All 157 releases
← All changes | common/ratings.php +97 -169 5.5.2 → 4.2.2 View file →
@@ -1,186 +1,114 @@
1 1 <?php
2 2
3 -if ( !class_exists( 'MeowKit_MGL_Ratings' ) ) {
3 +if ( !class_exists( 'MeowCommon_Ratings' ) ) {
4 4
5 - class MeowKit_MGL_Ratings {
6 - public $mainfile; // plugin main file (media-file-renamer.php)
7 - public $domain; // domain used for translation (media-file-renamer)
8 - public $prefix; // used for many things (filters, options, etc)
9 - public $ignored_domains = [ 'mwai-*' ];
5 + class MeowCommon_Ratings {
10 6
11 - public function __construct( $prefix, $mainfile, $domain ) {
12 - $this->mainfile = $mainfile;
13 - $this->domain = $domain;
14 - $this->prefix = $prefix;
7 + public $mainfile; // plugin main file (media-file-renamer.php)
8 + public $domain; // domain used for translation (media-file-renamer)
9 + public $prefix; // used for many things (filters, options, etc)
15 10
16 - if ( array_search( $this->domain, $this->ignored_domains ) !== false ) {
17 - return;
18 - }
19 - foreach ( $this->ignored_domains as $ignored_domain ) {
20 - if ( strpos( $ignored_domain, '*' ) !== false ) {
21 - $ignored_domain = str_replace( '*', '', $ignored_domain );
22 - if ( strpos( $this->domain, $ignored_domain ) !== false ) {
23 - return;
24 - }
25 - }
26 - }
11 + public function __construct( $prefix, $mainfile, $domain ) {
12 + $this->mainfile = $mainfile;
13 + $this->domain = $domain;
14 + $this->prefix = $prefix;
27 15
28 - // Add the hooks
29 - register_activation_hook( $mainfile, [ $this, 'show_meowapps_create_rating_date' ] );
16 + register_activation_hook( $mainfile, array( $this, 'show_meowapps_create_rating_date' ) );
17 +
30 18 if ( is_admin() ) {
31 19 $rating_date = $this->create_rating_date();
32 20 if ( time() > $rating_date ) {
33 - add_action( 'admin_notices', [ $this, 'admin_notices_rating' ] );
34 - add_filter( 'safe_style_css', function ( $styles ) {
35 - $styles[] = 'display';
36 - return $styles;
37 - } );
21 + add_action( 'admin_notices', array( $this, 'admin_notices_rating' ) );
38 22 }
39 23 }
40 - }
24 + }
41 25
42 - public function show_meowapps_create_rating_date() {
43 - delete_option( 'meowapps_hide_meowapps' );
44 - $this->create_rating_date();
45 - }
26 + function show_meowapps_create_rating_date() {
27 + delete_option( 'meowapps_hide_meowapps' );
28 + $this->create_rating_date();
29 + }
46 30
47 - public function create_rating_date() {
48 - $rating_date = get_option( $this->prefix . '_rating_date' );
49 - if ( empty( $rating_date ) ) {
50 - $two_weeks = strtotime( '+2 weeks' );
51 - $three_weeks = strtotime( '+3 weeks' );
52 - $rating_date = mt_rand( $two_weeks, $three_weeks );
53 - update_option( $this->prefix . '_rating_date', $rating_date, false );
54 - }
55 - return $rating_date;
56 - }
31 + function create_rating_date() {
32 + $rating_date = get_option( $this->prefix . '_rating_date' );
33 + if ( empty( $rating_date ) ) {
34 + $two_months = strtotime( '+2 months' );
35 + $six_months = strtotime( '+4 months' );
36 + $rating_date = mt_rand( $two_months, $six_months );
37 + update_option( $this->prefix . '_rating_date', $rating_date, false );
38 + }
39 + return $rating_date;
40 + }
57 41
58 - public function admin_notices_rating() {
59 - // Verify the nonce before acting on any of the review-notice buttons (CSRF protection).
60 - $nonce_ok = isset( $_POST[ $this->prefix . '_rating_nonce' ] )
61 - && wp_verify_nonce( sanitize_text_field( wp_unslash( $_POST[ $this->prefix . '_rating_nonce' ] ) ), $this->prefix . '_rating' );
62 - if ( $nonce_ok && isset( $_POST[$this->prefix . '_remind_me'] ) ) {
63 - $two_weeks = strtotime( '+2 weeks' );
64 - $six_weeks = strtotime( '+6 weeks' );
65 - $future_date = mt_rand( $two_weeks, $six_weeks );
66 - update_option( $this->prefix . '_rating_date', $future_date, false );
67 - return;
68 - }
69 - else if ( $nonce_ok && isset( $_POST[$this->prefix . '_never_remind_me'] ) ) {
70 - $twenty_years = strtotime( '+5 years' );
71 - update_option( $this->prefix . '_rating_date', $twenty_years, false );
72 - return;
73 - }
74 - else if ( $nonce_ok && isset( $_POST[$this->prefix . '_did_it'] ) ) {
75 - $twenty_years = strtotime( '+100 years' );
76 - update_option( $this->prefix . '_rating_date', $twenty_years, false );
77 - return;
78 - }
79 - $rating_date = get_option( $this->prefix . '_rating_date' );
80 - $html = wp_kses_post( '<div class="notice notice-success" data-rating-date="' .
81 - date( 'Y-m-d', $rating_date ) . '">' );
82 - $esc_nice_name = esc_attr( $this->nice_name_from_file( $this->mainfile ) );
83 - if ( $esc_nice_name === 'Wp Retina 2x Pro' ) {
84 - $esc_nice_name = 'Perfect Images';
85 - }
86 - else if ( $esc_nice_name === 'Wp Retina 2x' ) {
87 - $esc_nice_name = 'Perfect Images';
88 - }
89 - else if ( $esc_nice_name === 'Ai Engine Pro' ) {
90 - $esc_nice_name = 'AI Engine';
91 - }
92 - $esc_short_url = esc_attr( $this->nice_short_url_from_file( $this->mainfile ) );
93 - $escaped_prefix = $this->prefix;
94 - $rating_nonce = esc_attr( wp_create_nonce( $this->prefix . '_rating' ) );
95 - $html .= '<p style="font-size: 100%;">';
96 - // Translators: %1$s is a plugin nicename, %2$s is a short url (slug)
97 - $url = 'https://wordpress.org/support/plugin/' . $esc_short_url . '/reviews/';
98 - $html .= sprintf(
99 - __( '<h2 style="margin: 0" class="title">You have been using <b>%1$s</b> for some time now. Thank you! 💕</h2><p>If you have a minute, can you write a <b><a target="_blank" href="' . $url . '">little review</a></b> for me? That would <b>really</b> bring me joy and motivation! 💫 <br />Don\'t hesitate to <b>share your feature requests</b> with the review, I always check them and try my best.</p>
100 - ', $this->domain ),
101 - $esc_nice_name
102 - );
103 - $html .= '<div style="padding: 5px 0 12px 0; display: flex; align-items: center;">';
104 - $html .= '<a target="_blank" class="button button-primary" style="margin-right: 10px;" href="' . $url . '">
105 - ✏️ Write Review
106 - </a>
107 - <form method="post" action="" style="margin-right: 10px;">
108 - <input type="hidden" name="' . $escaped_prefix . '_did_it" value="true"><input type="hidden" name="' . $escaped_prefix . '_rating_nonce" value="' . $rating_nonce . '">
109 - <input type="submit" name="submit" id="submit" class="button button-secondary" value="'
110 - . __( '✌️ Done!', $this->domain ) . '">
111 - </form>
42 + function admin_notices_rating() {
43 + if ( isset( $_POST[$this->prefix . '_remind_me'] ) ) {
44 + $two_weeks = strtotime( '+2 weeks' );
45 + $six_weeks = strtotime( '+6 weeks' );
46 + $future_date = mt_rand( $two_weeks, $six_weeks );
47 + update_option( $this->prefix . '_rating_date', $future_date, false );
48 + return;
49 + }
50 + else if ( isset( $_POST[$this->prefix . '_never_remind_me'] ) ) {
51 + $twenty_years = strtotime( '+5 years' );
52 + update_option( $this->prefix . '_rating_date', $twenty_years, false );
53 + return;
54 + }
55 + else if ( isset( $_POST[$this->prefix . '_did_it'] ) ) {
56 + $twenty_years = strtotime( '+10 years' );
57 + update_option( $this->prefix . '_rating_date', $twenty_years, false );
58 + return;
59 + }
60 + $rating_date = get_option( $this->prefix . '_rating_date' );
61 + $html = '<div class="notice notice-success" data-rating-date="' . date( 'Y-m-d', $rating_date ) . '">';
62 + $html .= '<p style="font-size: 100%;">';
63 + $html .= sprintf(
64 + // translators: %1$s is a plugin nicename, %2$s is a short url (slug)
65 + __( 'You have been using <b>%1$s</b> for some time now. Thank you! Could you kindly share your opinion with me, along with, maybe, features you would like to see implemented? Then, please <a style="font-weight: bold; color: #b926ff;" target="_blank" href="https://wordpress.org/support/plugin/%2$s/reviews/?rate=5#new-post">write a little review</a>. That will also bring me joy and motivation! I will get back to you :)', $this->domain ),
66 + $this->nice_name_from_file( $this->mainfile ),
67 + $this->nice_short_url_from_file( $this->mainfile )
68 + );
69 + $html .= '<p>
70 + <form method="post" action="" style="float: right;">
71 + <input type="hidden" name="' . $this->prefix . '_never_remind_me" value="true">
72 + <input type="submit" name="submit" id="submit" class="button button-red" value="'
73 + . __( 'Never remind me!', $this->domain ) . '">
74 + </form>
75 + <form method="post" action="" style="float: right; margin-right: 10px;">
76 + <input type="hidden" name="' . $this->prefix . '_remind_me" value="true">
77 + <input type="submit" name="submit" id="submit" class="button button-primary" value="'
78 + . __( 'Remind me in a few weeks...', $this->domain ) . '">
79 + </form>
80 + <form method="post" action="" style="float: right; margin-right: 10px;">
81 + <input type="hidden" name="' . $this->prefix . '_did_it" value="true">
82 + <input type="submit" name="submit" id="submit" class="button button-primary" value="'
83 + . __( 'Yes, I did it!', $this->domain ) . '">
84 + </form>
85 + <div style="clear: both;"></div>
86 + </p>';
87 + $html .= '</div>';
88 + wp_kses_post( $html );
89 + }
112 90
113 - <div style="flex: auto;"></div>
91 + function nice_short_url_from_file( $file ) {
92 + $info = pathinfo( $file );
93 + if ( !empty( $info ) ) {
94 + $info['filename'] = str_replace( '-pro', '', $info['filename'] );
95 + return $info['filename'];
96 + }
97 + return "";
98 + }
114 99
115 - <form method="post" action="" style="margin-right: 10px;">
116 - <input type="hidden" name="' . $escaped_prefix . '_remind_me" value="true"><input type="hidden" name="' . $escaped_prefix . '_rating_nonce" value="' . $rating_nonce . '">
117 - <input type="submit" name="submit" id="submit" class="button button-secondary" value="'
118 - . __( '⏰ Remind me later', $this->domain ) . '">
119 - </form>
100 + function nice_name_from_file( $file ) {
101 + $info = pathinfo( $file );
102 + if ( !empty( $info ) ) {
103 + if ( $info['filename'] == 'wplr-sync' ) {
104 + return "Photo Engine";
105 + }
106 + $info['filename'] = str_replace( '-', ' ', $info['filename'] );
107 + $file = ucwords( $info['filename'] );
108 + }
109 + return $file;
110 + }
111 + }
112 +}
120 113
121 - <form method="post" action="">
122 - <input type="hidden" name="' . $escaped_prefix . '_never_remind_me" value="true"><input type="hidden" name="' . $escaped_prefix . '_rating_nonce" value="' . $rating_nonce . '">
123 - <input type="submit" name="submit" id="submit" class="button-link" style="font-size: small;" value="'
124 - . __( 'Hide', $this->domain ) . '">
125 - </form>
126 - </div>';
127 - $html .= '</div>';
128 - echo wp_kses( $html, [
129 - 'div' => [
130 - 'class' => [],
131 - 'data-rating-date' => [],
132 - 'style' => [],
133 - ],
134 - 'p' => [
135 - 'style' => [],
136 - ],
137 - 'h2' => [
138 - 'class' => [],
139 - 'style' => []
140 - ],
141 - 'b' => [],
142 - 'br' => [],
143 - 'a' => [
144 - 'href' => [],
145 - 'target' => [],
146 - 'class' => [],
147 - 'style' => [],
148 - ],
149 - 'form' => [
150 - 'method' => [],
151 - 'action' => [],
152 - 'class' => [],
153 - 'style' => [],
154 - ],
155 - 'input' => [
156 - 'type' => [],
157 - 'name' => [],
158 - 'value' => [],
159 - 'id' => [],
160 - 'class' => [],
161 - ],
162 - ] );
163 - }
164 -
165 - public function nice_short_url_from_file( $file ) {
166 - $info = pathinfo( $file );
167 - if ( !empty( $info ) ) {
168 - $info['filename'] = str_replace( '-pro', '', $info['filename'] );
169 - return $info['filename'];
170 - }
171 - return '';
172 - }
173 -
174 - public function nice_name_from_file( $file ) {
175 - $info = pathinfo( $file );
176 - if ( !empty( $info ) ) {
177 - if ( $info['filename'] == 'wplr-sync' ) {
178 - return 'Photo Engine';
179 - }
180 - $info['filename'] = str_replace( '-', ' ', $info['filename'] );
181 - $file = ucwords( $info['filename'] );
182 - }
183 - return $file;
184 - }
185 - }
186 -}
114 +?>