PluginProbe
Code Engine – PHP Snippets, AI Functions & Automation for WordPress / 0.5.6
Code Engine – PHP Snippets, AI Functions & Automation for WordPress v0.5.6
0.5.7 0.5.6 0.5.5 0.5.4 0.5.3 0.5.2 0.5.1 0.5.0 0.4.9 0.4.8 0.4.7 0.4.6 trunk 0.0.1 0.0.2 0.2.8 0.2.9 0.3.0 0.3.1 0.3.2 0.3.3 0.3.4 0.3.5 0.3.6 0.3.7 All 33 releases
← All changes | common/ratings.php +166 -164 0.3.20.5.6 View file →
@@ -1,184 +1,186 @@
1 1 <?php
2 2
3 -if ( !class_exists( 'MeowCommon_Ratings' ) ) {
3 +if ( !class_exists( 'MeowKit_MWCODE_Ratings' ) ) {
4 4
5 - class MeowCommon_Ratings {
5 + class MeowKit_MWCODE_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-*' ];
6 10
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)
10 - public $ignored_domains = [ 'mwai-*' ];
11 + public function __construct( $prefix, $mainfile, $domain ) {
12 + $this->mainfile = $mainfile;
13 + $this->domain = $domain;
14 + $this->prefix = $prefix;
11 15
12 - public function __construct( $prefix, $mainfile, $domain ) {
13 - $this->mainfile = $mainfile;
14 - $this->domain = $domain;
15 - $this->prefix = $prefix;
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 + }
16 27
17 - if ( array_search( $this->domain, $this->ignored_domains ) !== false ) {
18 - return;
19 - }
20 - foreach ( $this->ignored_domains as $ignored_domain ) {
21 - if ( strpos( $ignored_domain, '*' ) !== false ) {
22 - $ignored_domain = str_replace( '*', '', $ignored_domain );
23 - if ( strpos( $this->domain, $ignored_domain ) !== false ) {
24 - return;
25 - }
26 - }
27 - }
28 -
29 - // Add the hooks
30 - register_activation_hook( $mainfile, array( $this, 'show_meowapps_create_rating_date' ) );
28 + // Add the hooks
29 + register_activation_hook( $mainfile, [ $this, 'show_meowapps_create_rating_date' ] );
31 30 if ( is_admin() ) {
32 31 $rating_date = $this->create_rating_date();
33 32 if ( time() > $rating_date ) {
34 - add_action( 'admin_notices', array( $this, 'admin_notices_rating' ) );
35 - add_filter( 'safe_style_css', function( $styles ) {
36 - $styles[] = 'display';
37 - return $styles;
38 - } );
33 + add_action( 'admin_notices', [ $this, 'admin_notices_rating' ] );
34 + add_filter( 'safe_style_css', function ( $styles ) {
35 + $styles[] = 'display';
36 + return $styles;
37 + } );
39 38 }
40 39 }
41 - }
40 + }
42 41
43 - function show_meowapps_create_rating_date() {
44 - delete_option( 'meowapps_hide_meowapps' );
45 - $this->create_rating_date();
46 - }
42 + public function show_meowapps_create_rating_date() {
43 + delete_option( 'meowapps_hide_meowapps' );
44 + $this->create_rating_date();
45 + }
47 46
48 - function create_rating_date() {
49 - $rating_date = get_option( $this->prefix . '_rating_date' );
50 - if ( empty( $rating_date ) ) {
51 - $two_weeks = strtotime( '+2 weeks' );
52 - $three_weeks = strtotime( '+3 weeks' );
53 - $rating_date = mt_rand( $two_weeks, $three_weeks );
54 - update_option( $this->prefix . '_rating_date', $rating_date, false );
55 - }
56 - return $rating_date;
57 - }
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 + }
58 57
59 - function admin_notices_rating() {
60 - if ( isset( $_POST[$this->prefix . '_remind_me'] ) ) {
61 - $two_weeks = strtotime( '+2 weeks' );
62 - $six_weeks = strtotime( '+6 weeks' );
63 - $future_date = mt_rand( $two_weeks, $six_weeks );
64 - update_option( $this->prefix . '_rating_date', $future_date, false );
65 - return;
66 - }
67 - else if ( isset( $_POST[$this->prefix . '_never_remind_me'] ) ) {
68 - $twenty_years = strtotime( '+5 years' );
69 - update_option( $this->prefix . '_rating_date', $twenty_years, false );
70 - return;
71 - }
72 - else if ( isset( $_POST[$this->prefix . '_did_it'] ) ) {
73 - $twenty_years = strtotime( '+100 years' );
74 - update_option( $this->prefix . '_rating_date', $twenty_years, false );
75 - return;
76 - }
77 - $rating_date = get_option( $this->prefix . '_rating_date' );
78 - $html = wp_kses_post( '<div class="notice notice-success" data-rating-date="' .
79 - date( 'Y-m-d', $rating_date ) . '">' );
80 - $esc_nice_name = esc_attr( $this->nice_name_from_file( $this->mainfile ) );
81 - if ( $esc_nice_name === 'Wp Retina 2x Pro' ) {
82 - $esc_nice_name = "Perfect Images";
83 - }
84 - else if ( $esc_nice_name === 'Wp Retina 2x' ) {
85 - $esc_nice_name = "Perfect Images";
86 - }
87 - else if ( $esc_nice_name === 'Ai Engine Pro' ) {
88 - $esc_nice_name = "AI Engine";
89 - }
90 - $esc_short_url = esc_attr( $this->nice_short_url_from_file( $this->mainfile ) );
91 - $escaped_prefix = $this->prefix;
92 - $html .= '<p style="font-size: 100%;">';
93 - // Translators: %1$s is a plugin nicename, %2$s is a short url (slug)
94 - $url = 'https://wordpress.org/support/plugin/' . $esc_short_url . '/reviews/?rate=5#new-post';
95 - $html .= sprintf(
96 - __( '<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>
97 - ', $this->domain ), $esc_nice_name
98 - );
99 - $html .= '<div style="padding: 5px 0 12px 0; display: flex; align-items: center;">';
100 - $html .= '<a target="_blank" class="button button-primary" style="margin-right: 10px;" href="' . $url . '">
101 - ✏️ Write Review
102 - </a>
103 - <form method="post" action="" style="margin-right: 10px;">
104 - <input type="hidden" name="' . $escaped_prefix . '_did_it" value="true">
105 - <input type="submit" name="submit" id="submit" class="button button-secondary" value="'
106 - . __( '✌️ Done!', $this->domain ) . '">
107 - </form>
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>
108 112
109 - <div style="flex: auto;"></div>
113 + <div style="flex: auto;"></div>
110 114
111 - <form method="post" action="" style="margin-right: 10px;">
112 - <input type="hidden" name="' . $escaped_prefix . '_remind_me" value="true">
113 - <input type="submit" name="submit" id="submit" class="button button-secondary" value="'
114 - . __( '⏰ Remind me later', $this->domain ) . '">
115 - </form>
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>
116 120
117 - <form method="post" action="">
118 - <input type="hidden" name="' . $escaped_prefix . '_never_remind_me" value="true">
119 - <input type="submit" name="submit" id="submit" class="button-link" style="font-size: small;" value="'
120 - . __( 'Hide', $this->domain ) . '">
121 - </form>
122 - </div>';
123 - $html .= '</div>';
124 - echo wp_kses( $html, array(
125 - 'div' => array(
126 - 'class' => array(),
127 - 'data-rating-date' => array(),
128 - 'style' => array(),
129 - ),
130 - 'p' => array(
131 - 'style' => array(),
132 - ),
133 - 'h2' => array(
134 - 'class' => array(),
135 - 'style' => array()
136 - ),
137 - 'b' => array(),
138 - 'br' => array(),
139 - 'a' => array(
140 - 'href' => array(),
141 - 'target' => array(),
142 - 'class' => array(),
143 - 'style' => array(),
144 - ),
145 - 'form' => array(
146 - 'method' => array(),
147 - 'action' => array(),
148 - 'class' => array(),
149 - 'style' => array(),
150 - ),
151 - 'input' => array(
152 - 'type' => array(),
153 - 'name' => array(),
154 - 'value' => array(),
155 - 'id' => array(),
156 - 'class' => array(),
157 - ),
158 - ) );
159 - }
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 + }
160 164
161 - function nice_short_url_from_file( $file ) {
162 - $info = pathinfo( $file );
163 - if ( !empty( $info ) ) {
164 - $info['filename'] = str_replace( '-pro', '', $info['filename'] );
165 - return $info['filename'];
166 - }
167 - return "";
168 - }
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 + }
169 173
170 - function nice_name_from_file( $file ) {
171 - $info = pathinfo( $file );
172 - if ( !empty( $info ) ) {
173 - if ( $info['filename'] == 'wplr-sync' ) {
174 - return "Photo Engine";
175 - }
176 - $info['filename'] = str_replace( '-', ' ', $info['filename'] );
177 - $file = ucwords( $info['filename'] );
178 - }
179 - return $file;
180 - }
181 - }
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 + }
182 186 }
183 -
184 -?>