PluginProbe ʕ •ᴥ•ʔ
AI Engine – The Chatbot, AI Framework & MCP for WordPress / 2.4.4
AI Engine – The Chatbot, AI Framework & MCP for WordPress v2.4.4
3.5.8 3.5.7 3.5.6 3.5.5 3.5.4 3.5.3 3.5.2 3.5.1 3.5.0 3.4.9 3.4.8 3.4.7 0.2.1 1.6.91 0.2.2 1.6.92 0.2.3 1.6.93 0.2.4 1.6.94 0.2.5 1.6.95 0.2.6 1.6.96 0.2.7 1.6.97 0.2.8 1.6.98 0.2.9 1.6.99 0.3.0 1.7.0 0.3.1 1.7.1 0.3.2 1.7.2 0.3.3 1.7.3 0.3.4 1.7.4 0.3.5 1.7.5 0.3.6 1.7.6 0.4.0 1.7.7 0.4.1 1.7.8 0.4.2 1.7.9 0.4.3 1.8.0 0.4.4 1.8.1 0.4.5 1.8.2 0.4.6 1.8.3 0.4.7 1.8.4 0.4.8 1.8.5 0.4.9 1.8.6 0.5.0 1.8.7 0.5.1 1.8.8 0.5.2 1.8.9 0.5.3 1.9.0 0.5.4 1.9.1 0.5.5 1.9.2 0.5.6 1.9.3 0.5.7 1.9.4 0.5.8 1.9.5 0.5.9 1.9.6 0.6.0 1.9.7 0.6.1 1.9.8 0.6.2 1.9.81 0.6.3 1.9.82 0.6.4 1.9.83 0.6.5 1.9.84 0.6.6 1.9.85 0.6.7 1.9.86 0.6.8 1.9.87 0.6.9 1.9.88 0.7.0 1.9.89 0.7.1 1.9.90 0.7.2 1.9.91 0.7.3 1.9.92 0.7.4 1.9.93 0.7.5 1.9.94 0.7.6 1.9.95 0.7.7 1.9.96 0.7.8 1.9.97 0.7.9 1.9.98 0.8.0 1.9.99 0.8.1 2.0.0 0.8.2 2.0.1 0.8.3 2.0.2 0.8.4 2.0.3 0.8.5 2.0.4 0.8.6 2.0.5 0.8.7 2.0.6 0.8.8 2.0.7 0.8.9 2.0.8 0.9.0 2.0.9 0.9.2 2.1.0 0.9.3 2.1.1 0.9.4 2.1.2 0.9.5 2.1.3 0.9.6 2.1.4 0.9.7 2.1.5 0.9.8 2.1.6 0.9.81 2.1.7 0.9.82 2.1.8 0.9.83 2.1.9 0.9.84 2.2.0 0.9.85 2.2.1 0.9.86 2.2.2 0.9.87 2.2.3 0.9.88 2.2.4 0.9.89 2.2.5 0.9.9 2.2.51 0.9.91 2.2.52 0.9.92 2.2.53 0.9.93 2.2.54 0.9.94 2.2.56 0.9.95 2.2.57 0.9.96 2.2.6 0.9.97 2.2.60 0.9.98 2.2.61 0.9.99 2.2.62 1.0.0 2.2.63 1.0.01 2.2.70 1.0.1 2.2.80 1.0.2 2.2.81 1.0.3 2.2.90 1.0.4 2.2.91 1.0.5 2.2.92 1.0.6 2.2.93 1.0.7 2.2.94 1.0.8 2.2.95 1.0.9 2.3.0 1.1.0 2.3.1 1.1.1 2.3.2 1.1.2 2.3.3 1.1.3 2.3.4 1.1.4 2.3.5 1.1.5 2.3.6 1.1.6 2.3.7 1.1.7 2.3.8 1.1.8 2.3.9 1.1.9 2.4.0 1.2.0 2.4.1 1.2.1 2.4.2 1.2.2 2.4.3 1.2.21 2.4.4 1.2.3 2.4.5 1.2.30 2.4.6 1.3.0 2.4.7 1.3.1 2.4.8 1.3.2 2.4.9 1.3.3 2.5.0 1.3.31 2.5.1 1.3.32 2.5.2 1.3.33 2.5.3 1.3.34 2.5.4 1.3.35 2.5.5 1.3.36 2.5.6 1.3.37 2.5.7 1.3.38 2.5.8 1.3.39 2.5.9 1.3.40 2.6.0 1.3.41 2.6.1 1.3.42 2.6.2 1.3.43 2.6.3 1.3.44 2.6.5 1.3.45 2.6.6 1.3.46 2.6.7 1.3.47 2.6.8 1.3.48 2.6.9 1.3.49 2.7.0 1.3.50 2.7.1 1.3.51 2.7.2 1.3.52 2.7.3 1.3.53 2.7.4 1.3.54 2.7.5 1.3.56 2.7.6 1.3.57 2.7.7 1.3.58 2.7.8 1.3.59 2.7.9 1.3.60 2.8.0 1.3.61 2.8.1 1.3.62 2.8.2 1.3.63 2.8.3 1.3.64 2.8.4 1.3.65 2.8.5 1.3.66 2.8.6 1.3.67 2.8.7 1.3.68 2.8.8 1.3.69 2.8.9 1.3.70 2.9.0 1.3.71 2.9.1 1.3.72 2.9.2 1.3.73 2.9.3 1.3.74 2.9.4 1.3.75 2.9.5 1.3.76 2.9.6 1.3.77 2.9.7 1.3.78 2.9.8 1.3.79 2.9.9 1.3.80 3.0.0 1.3.81 3.0.1 1.3.82 3.0.2 1.3.83 3.0.3 1.3.84 3.0.4 1.3.85 3.0.5 1.3.86 3.0.6 1.3.87 3.0.7 1.3.88 3.0.8 1.3.89 3.0.9 1.3.90 3.1.0 1.3.91 3.1.1 1.3.92 3.1.2 1.3.93 3.1.3 1.3.94 3.1.4 1.3.95 3.1.5 1.3.96 3.1.6 1.3.97 3.1.7 1.3.98 3.1.8 1.3.99 3.1.9 1.4.0 3.2.0 1.4.1 3.2.1 1.4.2 3.2.2 1.4.3 3.2.3 1.4.4 3.2.4 1.4.5 3.2.5 1.4.6 3.2.6 1.4.7 3.2.7 1.4.8 3.2.8 1.4.9 3.2.9 1.5.0 3.3.0 1.5.1 3.3.1 1.5.2 3.3.2 1.5.3 3.3.3 1.5.4 3.3.4 1.5.5 3.3.5 1.5.6 3.3.6 1.5.7 3.3.7 1.5.8 3.3.8 1.5.9 3.3.9 1.6.0 3.4.0 1.6.1 3.4.1 1.6.2 3.4.2 1.6.3 3.4.3 1.6.5 3.4.4 1.6.51 3.4.5 1.6.52 3.4.6 1.6.53 1.6.54 1.6.55 1.6.56 1.6.57 1.6.58 1.6.59 1.6.60 1.6.61 1.6.62 1.6.63 1.6.64 1.6.65 1.6.66 1.6.67 1.6.68 trunk 1.6.69 0.0.1 1.6.70 0.0.2 1.6.71 0.0.3 1.6.72 0.0.4 1.6.73 0.0.5 1.6.74 0.0.6 1.6.75 0.0.7 1.6.76 0.0.8 1.6.77 0.0.9 1.6.78 0.1.0 1.6.79 0.1.1 1.6.81 0.1.2 1.6.82 0.1.3 1.6.83 0.1.4 1.6.84 0.1.5 1.6.85 0.1.6 1.6.86 0.1.7 1.6.87 0.1.8 1.6.88 0.1.9 1.6.89 0.2.0 1.6.90
ai-engine / common / ratings.php
ai-engine / common Last commit date
admin.php 2 years ago helpers.php 2 years ago issues.php 2 years ago news.php 3 years ago ratings.php 2 years ago releases.txt 2 years ago rest.php 2 years ago
ratings.php
178 lines
1 <?php
2
3 if ( !class_exists( 'MeowCommon_Ratings' ) ) {
4
5 class MeowCommon_Ratings {
6
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-notifications', 'mwai-ollama' ];
11
12 public function __construct( $prefix, $mainfile, $domain ) {
13 $this->mainfile = $mainfile;
14 $this->domain = $domain;
15 $this->prefix = $prefix;
16
17 // Avoid showing the rating for some plugins
18 if ( array_search( $this->domain, $this->ignored_domains ) !== false ) {
19 return;
20 }
21
22 // Add the hooks
23 register_activation_hook( $mainfile, array( $this, 'show_meowapps_create_rating_date' ) );
24 if ( is_admin() ) {
25 $rating_date = $this->create_rating_date();
26 if ( time() > $rating_date ) {
27 add_action( 'admin_notices', array( $this, 'admin_notices_rating' ) );
28 add_filter( 'safe_style_css', function( $styles ) {
29 $styles[] = 'display';
30 return $styles;
31 } );
32 }
33 }
34 }
35
36 function show_meowapps_create_rating_date() {
37 delete_option( 'meowapps_hide_meowapps' );
38 $this->create_rating_date();
39 }
40
41 function create_rating_date() {
42 $rating_date = get_option( $this->prefix . '_rating_date' );
43 if ( empty( $rating_date ) ) {
44 $two_weeks = strtotime( '+2 weeks' );
45 $three_weeks = strtotime( '+3 weeks' );
46 $rating_date = mt_rand( $two_weeks, $three_weeks );
47 update_option( $this->prefix . '_rating_date', $rating_date, false );
48 }
49 return $rating_date;
50 }
51
52 function admin_notices_rating() {
53 if ( isset( $_POST[$this->prefix . '_remind_me'] ) ) {
54 $two_weeks = strtotime( '+2 weeks' );
55 $six_weeks = strtotime( '+6 weeks' );
56 $future_date = mt_rand( $two_weeks, $six_weeks );
57 update_option( $this->prefix . '_rating_date', $future_date, false );
58 return;
59 }
60 else if ( isset( $_POST[$this->prefix . '_never_remind_me'] ) ) {
61 $twenty_years = strtotime( '+5 years' );
62 update_option( $this->prefix . '_rating_date', $twenty_years, false );
63 return;
64 }
65 else if ( isset( $_POST[$this->prefix . '_did_it'] ) ) {
66 $twenty_years = strtotime( '+100 years' );
67 update_option( $this->prefix . '_rating_date', $twenty_years, false );
68 return;
69 }
70 $rating_date = get_option( $this->prefix . '_rating_date' );
71 $html = wp_kses_post( '<div class="notice notice-success" data-rating-date="' .
72 date( 'Y-m-d', $rating_date ) . '">' );
73 $esc_nice_name = esc_attr( $this->nice_name_from_file( $this->mainfile ) );
74 if ( $esc_nice_name === 'Wp Retina 2x Pro' ) {
75 $esc_nice_name = "Perfect Images";
76 }
77 else if ( $esc_nice_name === 'Wp Retina 2x' ) {
78 $esc_nice_name = "Perfect Images";
79 }
80 else if ( $esc_nice_name === 'Ai Engine Pro' ) {
81 $esc_nice_name = "AI Engine";
82 }
83 $esc_short_url = esc_attr( $this->nice_short_url_from_file( $this->mainfile ) );
84 $escaped_prefix = $this->prefix;
85 $html .= '<p style="font-size: 100%;">';
86 // Translators: %1$s is a plugin nicename, %2$s is a short url (slug)
87 $url = 'https://wordpress.org/support/plugin/' . $esc_short_url . '/reviews/?rate=5#new-post';
88 $html .= sprintf(
89 __( '<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>
90 ', $this->domain ), $esc_nice_name
91 );
92 $html .= '<div style="padding: 5px 0 12px 0; display: flex; align-items: center;">';
93 $html .= '<a target="_blank" class="button button-primary" style="margin-right: 10px;" href="' . $url . '">
94 ✏️ Write Review
95 </a>
96 <form method="post" action="" style="margin-right: 10px;">
97 <input type="hidden" name="' . $escaped_prefix . '_did_it" value="true">
98 <input type="submit" name="submit" id="submit" class="button button-secondary" value="'
99 . __( '✌️ Done!', $this->domain ) . '">
100 </form>
101
102 <div style="flex: auto;"></div>
103
104 <form method="post" action="" style="margin-right: 10px;">
105 <input type="hidden" name="' . $escaped_prefix . '_remind_me" value="true">
106 <input type="submit" name="submit" id="submit" class="button button-secondary" value="'
107 . __( '⏰ Remind me later', $this->domain ) . '">
108 </form>
109
110 <form method="post" action="">
111 <input type="hidden" name="' . $escaped_prefix . '_never_remind_me" value="true">
112 <input type="submit" name="submit" id="submit" class="button-link" style="font-size: small;" value="'
113 . __( 'Hide', $this->domain ) . '">
114 </form>
115 </div>';
116 $html .= '</div>';
117 echo wp_kses( $html, array(
118 'div' => array(
119 'class' => array(),
120 'data-rating-date' => array(),
121 'style' => array(),
122 ),
123 'p' => array(
124 'style' => array(),
125 ),
126 'h2' => array(
127 'class' => array(),
128 'style' => array()
129 ),
130 'b' => array(),
131 'br' => array(),
132 'a' => array(
133 'href' => array(),
134 'target' => array(),
135 'class' => array(),
136 'style' => array(),
137 ),
138 'form' => array(
139 'method' => array(),
140 'action' => array(),
141 'class' => array(),
142 'style' => array(),
143 ),
144 'input' => array(
145 'type' => array(),
146 'name' => array(),
147 'value' => array(),
148 'id' => array(),
149 'class' => array(),
150 ),
151 ) );
152 }
153
154 function nice_short_url_from_file( $file ) {
155 $info = pathinfo( $file );
156 if ( !empty( $info ) ) {
157 $info['filename'] = str_replace( '-pro', '', $info['filename'] );
158 return $info['filename'];
159 }
160 return "";
161 }
162
163 function nice_name_from_file( $file ) {
164 $info = pathinfo( $file );
165 if ( !empty( $info ) ) {
166 if ( $info['filename'] == 'wplr-sync' ) {
167 return "Photo Engine";
168 }
169 $info['filename'] = str_replace( '-', ' ', $info['filename'] );
170 $file = ucwords( $info['filename'] );
171 }
172 return $file;
173 }
174 }
175 }
176
177 ?>
178