PluginProbe
Repeater Fields for Gravity Forms / 3.2.0
Repeater Fields for Gravity Forms v3.2.0
3.2.0 3.1.1 3.1.0 3.0.4 3.0.3 3.0.2 3.0.1 3.0.0 2.5.1 2.5.0 2.4.6 trunk 2.0.5 2.0.9 2.1.0 2.3.2 2.3.7 2.4.1 2.4.3 2.4.4 2.4.5
← All changes | yeekit/document.php +489 -0 2.3.23.2.0 View file →
@@ -1,0 +1,489 @@
1 +<?php
2 +if (! defined('ABSPATH')) exit; // Exit if accessed directly
3 +global $yeekit_document_addons;
4 +if (!class_exists('Yeekit_Document_Addons')) {
5 + class Yeekit_Document_Addons
6 + {
7 + public $data = array();
8 + function __construct()
9 + {
10 + add_action('admin_menu', array($this, "add_menu"), 9999);
11 + add_action('admin_enqueue_scripts', array($this, 'add_js'));
12 + add_filter("fluentform_global_addons", array($this, "fluentform_global_addons"));
13 + add_action('wp_ajax_yeekit_dismiss_noty', array($this, 'dismiss_noty'));
14 + add_action('admin_notices', array($this, "add_banner"));
15 + add_action('elementor/element/form/section_form_options/after_section_end', array($this, 'elementor_addons'));
16 + if (isset($_GET["page"]) && $_GET["page"] == "ninja-forms") {
17 + add_action('admin_init', array($this, "add_ninja_form"));
18 + }
19 + add_action('elementor/editor/after_enqueue_styles', array($this, "after_register_styles"));
20 + }
21 + function after_register_styles()
22 + {
23 + $custom_css = "
24 + .yeekit_addons_list{
25 + background: #fff;
26 + padding: 15px 10px;
27 + border-radius: 5px;
28 + }
29 + .yeekit_addons_list li {
30 + color: #444444;
31 + display: block;
32 + font-size: 16px;
33 + line-height: 18px;
34 + margin: 0;
35 + outline: 0;
36 + padding: 5px 0;
37 + position: relative;
38 + text-decoration: none;
39 + opacity: 0.8;
40 + position: relative;
41 + color: #fff;
42 + text-align: center;
43 + background: #e0e0e0;
44 + margin-bottom: 10px;
45 + }
46 + .yeekit_addons_list li img {
47 + magin-top: 5px;
48 + border-radius: 5px 5px 0 0;
49 + }
50 + .yeekit_addons_list li span {
51 + color: #444;
52 + }
53 + .yeekit_addons_list li:hover,.yeekit_addons_list li.active {
54 + opacity: 1;
55 + }
56 + .yeekit_addons_list li .yee-install {
57 + background: #ffffff;
58 + position: absolute;
59 + right: 10px;
60 + top: 10px;
61 + border: 1px solid #ddd;
62 + padding: 5px 10px;
63 + border-radius: 3px;
64 + text-decoration: none;
65 + font-size: 12px;
66 + }
67 + .yeekit_addons_list li .yee-pro {
68 + background: #f18500;
69 + color: #fff;
70 + position: absolute;
71 + left: 10px;
72 + top: 10px;
73 + border: 1px solid #ddd;
74 + padding: 5px 10px;
75 + border-radius: 3px;
76 + text-decoration: none;
77 + font-size: 12px;
78 + }
79 + ";
80 + wp_add_inline_style('elementor-editor', $custom_css);
81 + }
82 + function elementor_addons($element)
83 + {
84 + include_once ABSPATH . 'wp-admin/includes/plugin.php';
85 + $element->start_controls_section(
86 + 'section_yeekit_addons',
87 + [
88 + 'label' => __('Forms Add-ons', 'text-domain'),
89 + 'tab' => \Elementor\Controls_Manager::TAB_CONTENT,
90 + ]
91 + );
92 + $datas = $this->get_addons("elementor");
93 + $html = '';
94 + foreach ($datas as $data) {
95 + if (wp_http_validate_url($data["download"])) {
96 + $dl = $data["download"];
97 + } else {
98 + $dl = "https://" . $data["download"];
99 + }
100 + $install_url = "";
101 + if (isset($data["free"]) && $data["free"] != "") {
102 + $install_url = wp_nonce_url(self_admin_url('update.php?action=install-plugin&plugin=' . $data["free"]), 'install-plugin_' . $data["free"]);;
103 + }
104 + $class = "";
105 + if (isset($data["plugin"]) && $data["plugin"] != "") {
106 + if (is_plugin_active($data["plugin"])) {
107 + $class = "active";
108 + continue;
109 + }
110 + }
111 + $download_html = '<a target="_blank" href="' . $install_url . '" class="yee-install">Install Now – Free</a>';
112 + if ($install_url == "") {
113 + $download_html = "";
114 + }
115 + $html .= '<li class="yeekit_addons_list ' . $class . '">
116 + <img src="' . esc_url($data["img"]) . '" alt="' . esc_attr($data["name"]) . '" />
117 + <span>' . esc_html($data["name"]) . '</span>
118 + ' . $download_html . '
119 + <a target="_blank" href="' . $dl . '" class="yee-pro">Download</a>
120 + </li>';
121 + }
122 + $html = '<ul class="yeekit_addons_list">' . $html . '</ul>';
123 + $element->add_control(
124 + 'yeekit_addons',
125 + [
126 + 'type' => \Elementor\Controls_Manager::RAW_HTML,
127 + 'raw' => $html
128 + ]
129 + );
130 + $element->end_controls_section();
131 + }
132 + function set_document_link($data)
133 + {
134 + $defaults = array(
135 + "plugin" => false,
136 + "pro" => "",
137 + "notice_id" => "",
138 + "document" => "#"
139 + );
140 + $args = wp_parse_args($data, $defaults);
141 + $this->data[$args["plugin"]] = $args;
142 + add_filter('plugin_action_links_' . $args["plugin"], array($this, 'add_action_plugin'));
143 + }
144 + function add_action_plugin($links)
145 + {
146 + $plugin = current_filter();
147 + $plugin = str_replace('plugin_action_links_', '', $plugin);
148 + if (isset($this->data[$plugin])) {
149 + $item = $this->data[$plugin];
150 +
151 + $mylinks[] = '<a class="color-red" href="' . $item["pro"] . '" target="_blank">Pro Version</a>';
152 + $mylinks[] = '<a href="https://add-ons.org/supports/" target="_blank">Support</a>';
153 + $mylinks[] = '<a href="' . $item["document"] . '" target="_blank">Document</a>';
154 +
155 + return array_merge($links, $mylinks);
156 + }
157 + return $links;
158 + }
159 + function add_banner()
160 + {
161 + global $pagenow;
162 + $admin_pages = array('index.php', 'plugins.php');
163 + foreach ($this->data as $data) {
164 + $notice_id = $data["notice_id"];
165 + $check_notice_id = get_option('_redmuber_item_' . $notice_id);
166 + if ($check_notice_id != "ok") {
167 + if (in_array($pagenow, $admin_pages)) {
168 + $check_disable = "";
169 + if ($pagenow == "index.php") {
170 + if (get_user_meta(get_current_user_id(), "yeeaddons_dismissed_{$notice_id}", true)) {
171 + $check_disable = "yes";
172 + }
173 + }
174 + if ($check_disable == "") {
175 +?>
176 + <div class="notice notice-warning is-dismissible yeeaddons-s-dismissible" data-id="<?php echo esc_attr($data["notice_id"]) ?>">
177 + <p><strong><?php echo esc_attr($data["plugin_name"]) ?>: </strong><?php esc_html_e('Upgrade to pro version: ', 'yeekit'); ?> <a href="<?php echo esc_url($data["pro"]) ?>" target="_blank"><?php echo esc_url($data["pro"]) ?></a></p>
178 + </div>
179 + <?php
180 + }
181 + }
182 + }
183 + }
184 + }
185 + function dismiss_noty()
186 + {
187 + check_ajax_referer('yeekit_addons_nonce', 'nonce');
188 + $id = sanitize_text_field($_POST["id"]);
189 + update_user_meta(get_current_user_id(), 'yeeaddons_dismissed_' . $id, true);
190 + wp_send_json_success();
191 + }
192 + function add_js()
193 + {
194 + wp_enqueue_script('yeekit_list_addons', plugins_url('yeekit.js', __FILE__), array("jquery"), "1.0.0");
195 + wp_enqueue_style('yeekit_list_addons', plugins_url('yeekit.css', __FILE__), array(), "1.0.0");
196 + wp_localize_script('yeekit_list_addons', 'yeekit_list_addons', [
197 + 'nonce' => wp_create_nonce('yeekit_addons_nonce'),
198 + ]);
199 + }
200 + function add_menu()
201 + {
202 + add_submenu_page("wpcf7", "contact-form-7 addons", "<span style='color:#f18500'>Add-ons </span><span class='update-plugins count-1'><span class='plugin-count'>36</span></span>", "manage_options", "contact-form-7-addons", array($this, 'page_addons_cf7'), 999);
203 + add_submenu_page("elementor", "elementor form addons", "<span style='color:#f18500'>Forms Add-ons </span><span class='update-plugins count-1'><span class='plugin-count'>15</span></span>", "manage_options", "elementor-forms-addons", array($this, 'page_addons_elementor'), 999);
204 + add_submenu_page("fluent_forms", "addons", "<span style='color:#f18500'>Add-ons </span><span class='update-plugins count-1'><span class='plugin-count'>36</span></span>", "manage_options", "fluent_forms-addons", array($this, 'page_addons_fluent_forms'));
205 + add_submenu_page("formidable", "addons", "<span style='color:#f18500'>Add-ons </span><span class='update-plugins count-1'><span class='plugin-count'>36</span></span>", "manage_options", "formidable-addons", array($this, 'page_addons_formidable'), 999);
206 + add_submenu_page("quform.dashboard", "addons", "<span style='color:#f18500'>Add-ons </span><span class='update-plugins count-1'><span class='plugin-count'>36</span></span>", "manage_options", "quform.dashboard-addons", array($this, 'page_addons_quform'), 999);
207 + add_submenu_page("wpforms-overview", "addons", "<span style='color:#f18500'>Add-ons </span><span class='update-plugins count-1'><span class='plugin-count'>9</span></span>", "manage_options", "wpforms.dashboard-addons", array($this, 'page_addons_wpforms'), 999);
208 + add_filter("http_response", array($this, "http_response_eform"), 10, 3);
209 + add_submenu_page("edit.php?post_type=yeemail_template", "addons", "<span style='color:#f18500'>Add-ons </span>", "manage_options", "yeemail-addons", array($this, 'page_yeemail'), 999);
210 + }
211 + function page_yeemail()
212 + {
213 + $this->page_addons("yeemail");
214 + }
215 + function page_addons_cf7()
216 + {
217 + $this->page_addons("cf7");
218 + }
219 + function page_addons_elementor()
220 + {
221 + $this->page_addons("elementor");
222 + }
223 + function page_addons_fluent_forms()
224 + {
225 + $this->page_addons("fluent_forms");
226 + }
227 + function page_addons_formidable()
228 + {
229 + $this->page_addons("formidable");
230 + }
231 + function page_addons_quform()
232 + {
233 + $this->page_addons("quform");
234 + }
235 + function page_addons_wpforms()
236 + {
237 + $this->page_addons("wpforms");
238 + }
239 + function fluentform_global_addons($add_ons_ok)
240 + {
241 + $datas = $this->get_addons();
242 + $add_ons = array();
243 + foreach ($datas as $k => $data) {
244 + $add_ons[$k] = array(
245 + "logo" => $data["img"],
246 + "url" => $data["download"],
247 + "title" => $data["name"],
248 + "description" => $data["des"],
249 + "purchase_url" => $data["download"],
250 + "category" => "a",
251 + );
252 + }
253 + return array_merge($add_ons, $add_ons_ok);
254 + }
255 + function add_ninja_form()
256 + {
257 + $saved = get_option('ninja_forms_addons_feed', false);
258 + $datas = $this->get_addons("ninja_forms");
259 + $add_ons = array();
260 + foreach ($datas as $k => $data) {
261 + $add_ons[] = array(
262 + "image" => $data["img"],
263 + "url" => $data["download"],
264 + "title" => $data["name"],
265 + "content" => $data["des"],
266 + "link" => $data["download"],
267 + "plugin" => "a",
268 + "version" => "3.0.1",
269 + "categories" => array(
270 + array(
271 + "name" => "Look &amp; Feel",
272 + "slug" => "form-function-design"
273 + )
274 + )
275 + );
276 + }
277 + update_option("ninja_forms_addons_feed", json_encode($add_ons));
278 + }
279 + function http_response_eform($response, $datas, $url)
280 + {
281 + $add_ons = array();
282 + switch ($url) {
283 + case "https://wpquark.com/wp-json/ipt-api/v1/fsqm/":
284 + // eforms
285 + $datas = $this->get_addons("eforms");
286 + foreach ($datas as $data) {
287 + $add_ons[] = array(
288 + "image" => $data["img"],
289 + "url" => $data["download"],
290 + "name" => $data["name"],
291 + "description" => $data["des"],
292 + "author" => "rednumber",
293 + "authorurl" => "https://add-ons.org",
294 + "class" => "",
295 + "star" => 5,
296 + "starnum" => rand(10, 100),
297 + "downloaded" => rand(100, 1000),
298 + "version" => "2." . rand(10, 100),
299 + "compatible" => "4.0",
300 + "date" => date("Y-m-d h:i:sa")
301 + );
302 + $datas_rs = json_decode($response['body'], true);
303 + $add_on = $datas_rs["addons"];
304 + $datas_rs["addons"] = array_merge($add_ons, $add_on);
305 + $response["body"] = json_encode($datas_rs);
306 + }
307 + break;
308 + case "https://gravityapi.com/wp-content/plugins/gravitymanager/api.php?op=plugin_browser&page=gf_addons":
309 + // gravity form
310 + ob_start();
311 + ?>
312 + <h1><?php esc_html_e("Improve your forms with our premium addons.", "yeekit") ?></h1>
313 + <div class="list-addons-container">
314 + <?php
315 + $datas = $this->get_addons("gravity");
316 + foreach ($datas as $data) {
317 + ?>
318 + <div class="add-ons-box">
319 + <img src="<?php echo esc_url($data["img"]) ?>">
320 + <h3><?php echo esc_attr($data["name"]) ?></h3>
321 + <div class="add-ons-box-content">
322 + <p><?php echo esc_attr($data["des"]) ?></p>
323 + <div class="add-ons-box-actions">
324 + <a href="<?php echo esc_url($data["demo"]) ?>" target="_blank" class="add-ons-box-actions-button-live"><?php esc_html_e("Live Demo", "yeekit") ?></a>
325 + <?php
326 + if (wp_http_validate_url($data["download"])) {
327 + $dl = $data["download"];
328 + } else {
329 + $dl = "https://" . $data["download"];
330 + }
331 + ?>
332 + <a href="<?php echo esc_url($dl) ?>" target="_blank" class="add-ons-box-actions-button-download"><?php esc_html_e("Download", "yeekit") ?></a>
333 + </div>
334 + </div>
335 + </div>
336 + <?php } ?>
337 + </div>
338 + <?php
339 + $html = ob_get_clean();
340 + $response["body"] = $html . $response["body"];
341 + break;
342 + case "http://api.ninjaforms.com/feeds/?fetch=addons":
343 + $datas = $this->get_addons("ninja_forms");
344 + $add_ons = array();
345 + foreach ($datas as $k => $data) {
346 + $add_ons[] = array(
347 + "image" => $data["img"],
348 + "url" => $data["download"],
349 + "title" => $data["name"],
350 + "content" => $data["des"],
351 + "link" => $data["download"],
352 + "plugin" => "a",
353 + "version" => "3.0.1",
354 + "categories" => array(
355 + array(
356 + "name" => "Look &amp; Feel",
357 + "slug" => "form-function-design"
358 + )
359 + )
360 + );
361 + }
362 + $add_on = json_decode($response['body'], true);
363 + $response["body"] = json_encode(array_merge($add_ons, $add_on));
364 + break;
365 + default:
366 + // code...
367 + break;
368 + }
369 + return $response;
370 + }
371 + function page_addons($addon = "")
372 + {
373 + ?>
374 + <div class="wrap">
375 + <h2><?php esc_html_e("Improve your forms with our premium addons.", "yeekit") ?></h2>
376 + <p></p>
377 + <?php
378 + switch ($addon) {
379 + case "cf7":
380 + ?>
381 + <div class="cf7-container-bundle">
382 + <div class="cf7-container-bundle-h">
383 + <p><?php esc_html_e("Having a tough time choosing just a few?", "yeekit") ?></p>
384 + <p><?php esc_html_e("Bundle and save big with $59", "yeekit") ?></p>
385 + </div>
386 + <p><?php esc_html_e("This is a special pack including all add-on for contact form 7 issued by us and every released add-on!", "yeekit") ?></p>
387 + <h3><?php esc_html_e("Save up to 90%", "yeekit") ?></h3>
388 + <p><?php esc_html_e("In fact, purchasing every item singularly you would spend at least $891. Bundle Price – Only $59", "yeekit") ?></p>
389 + <a href="https://add-ons.org/plugin/contact-form-7-add-on-bundle-all-in-one/" target="_blank" class="add-ons-box-actions-button-download"><?php esc_html_e("Get Now", "yeekit") ?></a>
390 + </div>
391 + <?php
392 + break;
393 + case "wpforms":
394 + ?>
395 + <div class="cf7-container-bundle">
396 + <div class="cf7-container-bundle-h">
397 + <p><?php esc_html_e("Having a tough time choosing just a few?", "yeekit") ?></p>
398 + <p><?php esc_html_e("Bundle and save big with $49", "yeekit") ?></p>
399 + </div>
400 + <p>
401 + <?php esc_html_e("This is a special pack including all add-on for WPForms issued by us and every released add-on!", "yeekit") ?>
402 + </p>
403 + <h3><?php esc_html_e("Save up to 80%", "yeekit") ?></h3>
404 + <p><?php esc_html_e("In fact, purchasing every item singularly you would spend at least $250. Bundle Price – Only $49", "yeekit") ?></p>
405 + <a href="https://add-ons.org/plugin/wpforms-add-on-bundle-all-in-one/" target="_blank" class="add-ons-box-actions-button-download"><?php esc_html_e("Get Now", "yeekit") ?></a>
406 + </div>
407 + <?php
408 + break;
409 + case "elementor":
410 + ?>
411 + <div class="cf7-container-bundle">
412 + <div class="cf7-container-bundle-h">
413 + <p><?php esc_html_e("Having a tough time choosing just a few?", "yeekit") ?></p>
414 + <p><?php esc_html_e("Bundle and save big with $49", "yeekit") ?></p>
415 + </div>
416 + <p>
417 + <?php esc_html_e("This is a special pack including all add-on for Elementor Forms issued by us and every released add-on!", "yeekit") ?>
418 + </p>
419 + <h3><?php esc_html_e("Save up to 85%", "yeekit") ?></h3>
420 + <p><?php esc_html_e("In fact, purchasing every item singularly you would spend at least $350. Bundle Price – Only $49", "yeekit") ?></p>
421 + <a href="https://add-ons.org/plugin/elementor-forms-add-on-bundle-all-in-one/" target="_blank" class="add-ons-box-actions-button-download"><?php esc_html_e("Get Now", "yeekit") ?></a>
422 + </div>
423 + <?php
424 + break;
425 + }
426 + ?>
427 + <div class="list-addons-container">
428 + <?php
429 + $datas = $this->get_addons($addon);
430 + foreach ($datas as $data) {
431 + ?>
432 + <div class="add-ons-box">
433 + <img src="<?php echo esc_attr($data["img"]) ?>">
434 + <h3><?php echo esc_attr($data["name"]) ?></h3>
435 + <div class="add-ons-box-content">
436 + <p><?php echo esc_attr($data["des"]) ?></p>
437 + <div class="add-ons-box-actions">
438 + <a href="<?php echo esc_url($data["demo"]) ?>" target="_blank" class="add-ons-box-actions-button-live"><?php esc_html_e("Live Demo", "yeekit") ?></a>
439 + <?php
440 + if (wp_http_validate_url($data["download"])) {
441 + $dl = $data["download"];
442 + } else {
443 + $dl = "https://" . $data["download"];
444 + }
445 + ?>
446 + <a href="<?php echo esc_url($dl) ?>" target="_blank" class="add-ons-box-actions-button-download"><?php esc_html_e("Download", "yeekit") ?></a>
447 + </div>
448 + </div>
449 + </div>
450 + <?php } ?>
451 + </div>
452 + <?php
453 + }
454 + function get_addons($add_on = null)
455 + {
456 + if (isset($add_on)) {
457 + $yeekit_addons = get_transient("yeekit_addons_" . $add_on);
458 + if ($yeekit_addons === false) {
459 + $rs = wp_remote_get("https://cdn.add-ons.org/plugins.php?type=" . $add_on);
460 + $data = $rs['body'];
461 + set_transient("yeekit_addons_" . $add_on, $data, 86400);
462 + return json_decode($data, true);
463 + } else {
464 + return json_decode($yeekit_addons, true);
465 + }
466 + } else {
467 + $yeekit_addons = get_transient("yeekit_addons");
468 + if ($yeekit_addons === false) {
469 + $rs = wp_remote_get("https://cdn.add-ons.org/plugins.php");
470 + $data = $rs['body'];
471 + set_transient("yeekit_addons", $data, 86400);
472 + return json_decode($data, true);
473 + } else {
474 + return json_decode($yeekit_addons, true);
475 + }
476 + }
477 + }
478 + }
479 + $yeekit_document_addons = new Yeekit_Document_Addons;
480 +}
481 +$yeekit_document_addons->set_document_link(
482 + array(
483 + "plugin" => "repeater-for-gravity-forms/repeater-for-gravity-forms.php",
484 + "pro"=>"https://add-ons.org/plugin/gravity-forms-repeater-fields/",
485 + "plugin_name"=> "Repeater Field For Gravity Forms",
486 + "document"=>"https://add-ons.org/document-gravity-forms-repeater-fields/",
487 + "notice_id"=>1540
488 + )
489 +);