PluginProbe
Visualizer – Tables & Charts Manager with Built-in AI Generator / 4.0.8
Visualizer – Tables & Charts Manager with Built-in AI Generator v4.0.8
4.0.8 4.0.7 4.0.6 4.0.5 4.0.4 4.0.3 3.0.5 3.0.6 3.0.7 3.0.8 3.0.9 3.1.0 3.1.1 3.1.2 3.1.3 3.10.0 3.10.1 3.10.10 3.10.11 3.10.12 3.10.13 3.10.14 3.10.15 3.10.2 3.10.3 All 149 releases
visualizer / vendor / codeinwp / themeisle-sdk / src / Modules / Review.php

Review.php in Visualizer – Tables & Charts Manager with Built-in AI Generator 4.0.8, at vendor/codeinwp/themeisle-sdk/src/Modules/Review.php

113 lines 2.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * The Review model class for ThemeIsle SDK
4 *
5 * @package ThemeIsleSDK
6 * @subpackage Modules
7 * @copyright Copyright (c) 2017, Marius Cristea
8 * @license http://opensource.org/licenses/gpl-3.0.php GNU Public License
9 * @since 1.0.0
10 */
11
12 namespace ThemeisleSDK\Modules;
13
14 use ThemeisleSDK\Common\Abstract_Module;
15 use ThemeisleSDK\Loader;
16 use ThemeisleSDK\Product;
17
18 // Exit if accessed directly.
19 if ( ! defined( 'ABSPATH' ) ) {
20 exit;
21 }
22
23 /**
24 * Review module for ThemeIsle SDK.
25 */
26 class Review extends Abstract_Module {
27
28 /**
29 * Check if we should load module for this.
30 *
31 * @param Product $product Product to check.
32 *
33 * @return bool Should load ?
34 */
35 public function can_load( $product ) {
36 if ( $this->is_from_partner( $product ) ) {
37 return false;
38 }
39 if ( ! $product->is_wordpress_available() ) {
40 return false;
41 }
42
43 return apply_filters( $product->get_slug() . '_sdk_should_review', true );
44 }
45
46
47 /**
48 * Add notification to queue.
49 *
50 * @param array $all_notifications Previous notification.
51 *
52 * @return array All notifications.
53 */
54 public function add_notification( $all_notifications ) {
55
56 $developers = [
57 'Marius',
58 'Hardeep',
59 'Andrei',
60 'Robert',
61 ];
62
63 $link = 'https://wordpress.org/support/' . $this->product->get_type() . '/' . $this->product->get_slug() . '/reviews/#wporg-footer';
64
65 $message = apply_filters( $this->product->get_key() . '_feedback_review_message', Loader::$labels['review']['notice'] );
66
67 $button_submit = apply_filters( $this->product->get_key() . '_feedback_review_button_do', Loader::$labels['review']['ctay'] );
68 $button_cancel = apply_filters( $this->product->get_key() . '_feedback_review_button_cancel', Loader::$labels['review']['ctan'] );
69 $message = str_replace(
70 [ '{product}', '{developer}' ],
71 [
72 $this->product->get_friendly_name(),
73 $developers[ strlen( get_site_url() ) % count( $developers ) ],
74 ],
75 $message
76 );
77
78 $all_notifications[] = [
79 'id' => $this->product->get_key() . '_review_flag',
80 'message' => $message,
81 'ctas' => [
82 'confirm' => [
83 'link' => $link,
84 'text' => $button_submit,
85 ],
86 'cancel' => [
87 'link' => '#',
88 'text' => $button_cancel,
89 ],
90 ],
91 ];
92
93 return $all_notifications;
94 }
95
96
97 /**
98 * Load module logic.
99 *
100 * @param Product $product Product to load.
101 *
102 * @return Review Module instance.
103 */
104 public function load( $product ) {
105
106 $this->product = $product;
107
108 add_filter( 'themeisle_sdk_registered_notifications', [ $this, 'add_notification' ] );
109
110 return $this;
111 }
112 }
113