PluginProbe
Code Engine – PHP Snippets, AI Functions & Automation for WordPress / 0.3.0
Code Engine – PHP Snippets, AI Functions & Automation for WordPress v0.3.0
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 +164 -166 trunk0.3.0 View file →
@@ -1,186 +1,184 @@
1 1 <?php
2 2
3 -if ( !class_exists( 'MeowKit_MWCODE_Ratings' ) ) {
3 +if ( !class_exists( 'MeowCommon_Ratings' ) ) {
4 4
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-*' ];
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)
10 + public $ignored_domains = [ 'mwai-*' ];
15 11
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 - }
12 + public function __construct( $prefix, $mainfile, $domain ) {
13 + $this->mainfile = $mainfile;
14 + $this->domain = $domain;
15 + $this->prefix = $prefix;
27 16
28 - // Add the hooks
29 - register_activation_hook( $mainfile, [ $this, 'show_meowapps_create_rating_date' ] );
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' ) );
30 31 if ( is_admin() ) {
31 32 $rating_date = $this->create_rating_date();
32 33 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 - } );
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 + } );
38 39 }
39 40 }
40 - }
41 + }
41 42
42 - public function show_meowapps_create_rating_date() {
43 - delete_option( 'meowapps_hide_meowapps' );
44 - $this->create_rating_date();
45 - }
43 + function show_meowapps_create_rating_date() {
44 + delete_option( 'meowapps_hide_meowapps' );
45 + $this->create_rating_date();
46 + }
46 47
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 - }
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 + }
57 58
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>
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>
112 108
113 - <div style="flex: auto;"></div>
109 + <div style="flex: auto;"></div>
114 110
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>
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>
120 116
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 - }
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 + }
164 160
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 - }
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 + }
173 169
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 - }
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 + }
186 182 }
183 +
184 +?>