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