PluginProbe
Meow Gallery / 4.2.7
Meow Gallery v4.2.7
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
meow-gallery / common / ratings.php

ratings.php in Meow Gallery 4.2.7, at common/ratings.php

167 lines 5.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
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 Pro";
70 }
71 else if ( $esc_nice_name === 'Wp Retina 2x' ) {
72 $esc_nice_name = "Perfect Images";
73 }
74 $esc_short_url = esc_attr( $this->nice_short_url_from_file( $this->mainfile ) );
75 $escaped_prefix = $this->prefix;
76 $html .= '<p style="font-size: 100%;">';
77 // Translators: %1$s is a plugin nicename, %2$s is a short url (slug)
78 $html .= sprintf(
79 __( '<h2 class="title">You have been using <b>%1$s</b> for some time now. Thank you 💕</h2>Could you take one minute and write a <b>little review</b> for me? That would <b>really</b> bring me joy and motivation 🥰<br />In the review, don\'t hesitate to share your feature requests and remarks. I will try my best!
80 ', $this->domain ), $esc_nice_name
81 );
82 $html .= '<div style="padding: 20px 0 12px 0; display: flex; align-items: center;">';
83 $html .= '<a target="_blank" class="button button-primary" style="margin-right: 10px;"
84 href="https://wordpress.org/support/plugin/' . $esc_short_url . '/reviews/?rate=5#new-post">
85 ✍🏼 Yes, let\'s write it now!
86 </a>
87 <form method="post" action="" style="margin-right: 10px;">
88 <input type="hidden" name="' . $escaped_prefix . '_did_it" value="true">
89 <input type="submit" name="submit" id="submit" class="button button-primary" value="'
90 . __( '🥰 I did it', $this->domain ) . '">
91 </form>
92
93 <div style="flex: auto;"></div>
94
95 <form method="post" action="" style="margin-right: 10px;">
96 <input type="hidden" name="' . $escaped_prefix . '_remind_me" value="true">
97 <input type="submit" name="submit" id="submit" class="button button-primary" value="'
98 . __( '⏰ Remind me later', $this->domain ) . '">
99 </form>
100
101 <form method="post" action="">
102 <input type="hidden" name="' . $escaped_prefix . '_never_remind_me" value="true">
103 <input type="submit" name="submit" id="submit" class="button-link" style="font-size: small;" value="'
104 . __( 'Hide this', $this->domain ) . '">
105 </form>
106 </div>';
107 $html .= '</div>';
108 echo wp_kses( $html, array(
109 'div' => array(
110 'class' => array(),
111 'data-rating-date' => array(),
112 'style' => array(),
113 ),
114 'p' => array(
115 'style' => array(),
116 ),
117 'h2' => array(
118 'class' => array(),
119 ),
120 'b' => array(),
121 'a' => array(
122 'href' => array(),
123 'target' => array(),
124 'class' => array(),
125 'style' => array(),
126 ),
127 'form' => array(
128 'method' => array(),
129 'action' => array(),
130 'class' => array(),
131 'style' => array(),
132 ),
133 'input' => array(
134 'type' => array(),
135 'name' => array(),
136 'value' => array(),
137 'id' => array(),
138 'class' => array(),
139 ),
140 ) );
141 }
142
143 function nice_short_url_from_file( $file ) {
144 $info = pathinfo( $file );
145 if ( !empty( $info ) ) {
146 $info['filename'] = str_replace( '-pro', '', $info['filename'] );
147 return $info['filename'];
148 }
149 return "";
150 }
151
152 function nice_name_from_file( $file ) {
153 $info = pathinfo( $file );
154 if ( !empty( $info ) ) {
155 if ( $info['filename'] == 'wplr-sync' ) {
156 return "Photo Engine";
157 }
158 $info['filename'] = str_replace( '-', ' ', $info['filename'] );
159 $file = ucwords( $info['filename'] );
160 }
161 return $file;
162 }
163 }
164 }
165
166 ?>
167