PluginProbe
WPBot – AI ChatBot for Live Support, Lead Generation, WordPress Automation, AI Services / 4.7.7
WPBot – AI ChatBot for Live Support, Lead Generation, WordPress Automation, AI Services v4.7.7
8.7.8 8.7.7 8.7.6 8.7.5 8.7.4 8.7.3 8.7.2 8.7.1 8.7.0 8.6.9 8.6.8 8.6.7 8.6.6 8.6.5 8.6.4 8.6.2 8.6.1 8.6.0 8.5.9 8.5.8 8.5.7 8.5.6 8.5.5 8.5.4 8.5.3 All 534 releases
chatbot / qcld-recommendbot-plugin.php

qcld-recommendbot-plugin.php in WPBot – AI ChatBot for Live Support, Lead Generation, WordPress Automation, AI Services 4.7.7, at qcld-recommendbot-plugin.php

299 lines 15.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 if (defined('ABSPATH') === false) {
3 exit;
4 }
5
6 ?>
7 <?php
8 require_once ABSPATH . 'wp-admin/includes/plugin-install.php';
9 remove_all_filters('plugins_api');
10 $qcld_chatplugintags = array(
11 'a' => array(
12 'href' => array(),
13 'title' => array(),
14 'target' => array(),
15 ),
16 );
17
18 $qcld_plugininstal = array();
19
20 /* Conversational Forms Plugins */
21 $argus = [
22 'slug' => 'conversational-forms',
23 'fields' => [
24 'short_description' => true,
25 'icons' => true,
26 'reviews' => false, // excludes all reviews
27 ],
28 ];
29
30 $data = plugins_api( 'plugin_information', $argus );
31 if ( $data && ! is_wp_error( $data ) ) {
32 $qcld_plugininstal['convers-form'] = $data;
33 $qcld_plugininstal['convers-form']->name = 'Conversational Forms for ChatBot';
34 }
35 ?>
36
37 <div class="wrap recommended-plugins">
38 <div class="wp-list-table widefat plugin-install">
39 <div class="the-list">
40 <?php
41 foreach ( (array) $qcld_plugininstal as $plugin ) {
42 if ( is_object( $plugin ) ) {
43 $plugin = (array) $plugin;
44 }
45
46 // Display the group heading if there is one.
47 if ( isset( $plugin['group'] ) && $plugin['group'] != $group ) {
48 if ( isset( $this->groups[ $plugin['group'] ] ) ) {
49 $group_name = $this->groups[ $plugin['group'] ];
50 if ( isset( $plugins_group_titles[ $group_name ] ) ) {
51 $group_name = $plugins_group_titles[ $group_name ];
52 }
53 } else {
54 $group_name = $plugin['group'];
55 }
56
57 // Starting a new group, close off the divs of the last one.
58 if ( ! empty( $group ) ) {
59 echo '</div></div>';
60 }
61
62 echo '<div class="plugin-group"><h3>' . esc_html( $group_name ) . '</h3>';
63 // Needs an extra wrapping div for nth-child selectors to work.
64 echo '<div class="plugin-items">';
65
66 $group = $plugin['group'];
67 }
68 $title = wp_kses( $plugin['name'], $qcld_chatplugintags );
69
70 // Remove any HTML from the description.
71 $description = strip_tags( $plugin['short_description'] );
72 $version = wp_kses( $plugin['version'], $qcld_chatplugintags );
73
74 $name = strip_tags( $title . ' ' . $version );
75
76 $author = wp_kses( $plugin['author'], $qcld_chatplugintags );
77 if ( ! empty( $author ) ) {
78 /* translators: %s: Plugin author. */
79 $author = ' <cite>' . sprintf( __( 'By %s' ), $author ) . '</cite>';
80 }
81
82 $requires_php = isset( $plugin['requires_php'] ) ? $plugin['requires_php'] : null;
83 $requires_wp = isset( $plugin['requires'] ) ? $plugin['requires'] : null;
84
85 $compatible_php = is_php_version_compatible( $requires_php );
86 $compatible_wp = is_wp_version_compatible( $requires_wp );
87 $tested_wp = ( empty( $plugin['tested'] ) || version_compare( get_bloginfo( 'version' ), $plugin['tested'], '<=' ) );
88
89 $action_links = array();
90
91 if ( current_user_can( 'install_plugins' ) || current_user_can( 'update_plugins' ) ) {
92 $status = install_plugin_install_status( $plugin );
93
94 switch ( $status['status'] ) {
95 case 'install':
96 if ( $status['url'] ) {
97 if ( $compatible_php && $compatible_wp ) {
98 $action_links[] = sprintf(
99 '<a class="install-now button" data-slug="%s" href="%s" aria-label="%s" data-name="%s">%s</a>',
100 esc_attr( $plugin['slug'] ),
101 esc_url( $status['url'] ),
102 /* translators: %s: Plugin name and version. */
103 esc_attr( sprintf( _x( 'Install %s now', 'plugin' ), $name ) ),
104 esc_attr( $name ),
105 __( 'Install Now' )
106 );
107 } else {
108 $action_links[] = sprintf(
109 '<button type="button" class="button button-disabled" disabled="disabled">%s</button>',
110 _x( 'Cannot Install', 'plugin' )
111 );
112 }
113 }
114 break;
115
116 case 'update_available':
117 if ( $status['url'] ) {
118 if ( $compatible_php && $compatible_wp ) {
119 $action_links[] = sprintf(
120 '<a class="update-now button aria-button-if-js" data-plugin="%s" data-slug="%s" href="%s" aria-label="%s" data-name="%s">%s</a>',
121 esc_attr( $status['file'] ),
122 esc_attr( $plugin['slug'] ),
123 esc_url( $status['url'] ),
124 /* translators: %s: Plugin name and version. */
125 esc_attr( sprintf( _x( 'Update %s now', 'plugin' ), $name ) ),
126 esc_attr( $name ),
127 __( 'Update Now' )
128 );
129 } else {
130 $action_links[] = sprintf(
131 '<button type="button" class="button button-disabled" disabled="disabled">%s</button>',
132 _x( 'Cannot Update', 'plugin' )
133 );
134 }
135 }
136 break;
137
138 case 'latest_installed':
139 case 'newer_installed':
140 if ( is_plugin_active( $status['file'] ) ) {
141 $action_links[] = sprintf(
142 '<button type="button" class="button button-disabled" disabled="disabled">%s</button>',
143 _x( 'Active', 'plugin' )
144 );
145 } elseif ( current_user_can( 'activate_plugin', $status['file'] ) ) {
146 $button_text = __( 'Activate' );
147 /* translators: %s: Plugin name. */
148 $button_label = _x( 'Activate %s', 'plugin' );
149 $activate_url = add_query_arg(
150 array(
151 '_wpnonce' => wp_create_nonce( 'activate-plugin_' . $status['file'] ),
152 'action' => 'activate',
153 'plugin' => $status['file'],
154 ),
155 network_admin_url( 'plugins.php' )
156 );
157
158 if ( is_network_admin() ) {
159 $button_text = __( 'Network Activate' );
160 /* translators: %s: Plugin name. */
161 $button_label = _x( 'Network Activate %s', 'plugin' );
162 $activate_url = add_query_arg( array( 'networkwide' => 1 ), $activate_url );
163 }
164
165 $action_links[] = sprintf(
166 '<a href="%1$s" class="button activate-now" aria-label="%2$s">%3$s</a>',
167 esc_url( $activate_url ),
168 esc_attr( sprintf( $button_label, $plugin['name'] ) ),
169 $button_text
170 );
171 } else {
172 $action_links[] = sprintf(
173 '<button type="button" class="button button-disabled" disabled="disabled">%s</button>',
174 _x( 'Installed', 'plugin' )
175 );
176 }
177 break;
178 }
179 }
180
181 $details_link = self_admin_url(
182 'plugin-install.php?tab=plugin-information&amp;plugin=' . $plugin['slug'] .
183 '&amp;width=700&amp;height=550'
184 );
185
186 $action_links[] = sprintf(
187 '%s','
188 <a href="#" data-toggle="modal" data-target="#myModal">More Details</a>
189 <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
190 <div class="modal-dialog" role="document">
191 <div class="modal-content">
192 <div class="modal-header">
193 <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
194 </div>
195 <div class="modal-body">
196 <iframe width="100%" height="550" src="'.$details_link.'"></iframe>
197 </div>
198 </div>
199 </div>
200 </div>',
201 );
202
203
204 /*===show icon ==*/
205
206 if ( ! empty( $plugin['icons']['svg'] ) ) {
207 $plugin_icon_url = $plugin['icons']['svg'];
208 } elseif ( ! empty( $plugin['icons']['2x'] ) ) {
209 $plugin_icon_url = $plugin['icons']['2x'];
210 } elseif ( ! empty( $plugin['icons']['1x'] ) ) {
211 $plugin_icon_url = $plugin['icons']['1x'];
212 } else {
213 $plugin_icon_url = $plugin['icons']['default'];
214 }
215
216 /*
217 * $action_links An array of plugin action links. Defaults are links to Details and Install Now.
218 * $plugin The plugin currently being listed.
219 */
220 $action_links = apply_filters( 'plugin_install_action_links', $action_links, $plugin );
221
222 $last_updated_timestamp = strtotime( $plugin['last_updated'] );
223 ?>
224 <div class="plugin-card plugin-card-<?php echo sanitize_html_class( $plugin['slug'] ); ?>">
225 <?php
226 if ( ! $compatible_php || ! $compatible_wp ) {
227 echo '<div class="notice inline notice-error notice-alt"><p>';
228 if ( ! $compatible_php && ! $compatible_wp ) {
229 _e( 'This plugin doesn&#8217;t work with your versions of WordPress and PHP.' );
230 if ( current_user_can( 'update_core' ) && current_user_can( 'update_php' ) ) {
231 printf(
232 /* translators: 1: URL to WordPress Updates screen, 2: URL to Update PHP page. */
233 ' ' . __( '<a href="%1$s">Please update WordPress</a>, and then <a href="%2$s">learn more about updating PHP</a>.' ),
234 self_admin_url( 'update-core.php' ),
235 esc_url( wp_get_update_php_url() )
236 );
237 wp_update_php_annotation( '</p><p><em>', '</em>' );
238 } elseif ( current_user_can( 'update_core' ) ) {
239 printf(
240 /* translators: %s: URL to WordPress Updates screen. */
241 ' ' . __( '<a href="%s">Please update WordPress</a>.' ),
242 self_admin_url( 'update-core.php' )
243 );
244 } elseif ( current_user_can( 'update_php' ) ) {
245 printf(
246 /* translators: %s: URL to Update PHP page. */
247 ' ' . __( '<a href="%s">Learn more about updating PHP</a>.' ),
248 esc_url( wp_get_update_php_url() )
249 );
250 wp_update_php_annotation( '</p><p><em>', '</em>' );
251 }
252 } elseif ( ! $compatible_wp ) {
253 _e( 'This plugin doesn&#8217;t work with your version of WordPress.' );
254 if ( current_user_can( 'update_core' ) ) {
255 printf(
256 /* translators: %s: URL to WordPress Updates screen. */
257 ' ' . __( '<a href="%s">Please update WordPress</a>.' ),
258 self_admin_url( 'update-core.php' )
259 );
260 }
261 } elseif ( ! $compatible_php ) {
262 _e( 'This plugin doesn&#8217;t work with your version of PHP.' );
263 if ( current_user_can( 'update_php' ) ) {
264 printf(
265 /* translators: %s: URL to Update PHP page. */
266 ' ' . __( '<a href="%s">Learn more about updating PHP</a>.' ),
267 esc_url( wp_get_update_php_url() )
268 );
269 wp_update_php_annotation( '</p><p><em>', '</em>' );
270 }
271 }
272 echo '</p></div>';
273 }
274 ?>
275 <div class="plugin-card-top">
276 <div class="name column-name">
277 <h3>
278 <a href="<?php echo esc_url( $details_link ); ?>" class="thickbox open-plugin-details-modal">
279 <?php echo esc_attr($title); ?>
280 <img src="<?php echo esc_attr( $plugin_icon_url ); ?>" class="plugin-icon" alt="" />
281 </a>
282 </h3>
283 </div>
284 <div class="action-links">
285 <?php
286 if ( $action_links ) {
287 echo '<ul class="plugin-action-buttons"><li>' . implode( '</li><li>', $action_links ) . '</li></ul>';
288 }
289 ?>
290 </div>
291
292 </div>
293 </div>
294 <?php
295 } ?>
296 </div>
297 </div>
298
299 </div>