PluginProbe
WPBot – AI ChatBot for Live Support, Lead Generation, WordPress Automation, AI Services / 8.6.7
WPBot – AI ChatBot for Live Support, Lead Generation, WordPress Automation, AI Services v8.6.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 8.5.2 8.5.0 All 532 releases
chatbot / qcld-recommendbot-plugin.php

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

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