PluginProbe ʕ •ᴥ•ʔ
Starter Sites & Templates by Neve / 1.4.1
Starter Sites & Templates by Neve v1.4.1
1.4.1 1.4.0 1.3.0 1.2.29 1.2.28 1.2.6 1.2.7 1.2.8 1.2.9 trunk 1.0.10 1.0.11 1.0.7 1.0.8 1.0.9 1.1.0 1.1.1 1.1.10 1.1.11 1.1.12 1.1.13 1.1.14 1.1.15 1.1.16 1.1.17 1.1.18 1.1.19 1.1.2 1.1.20 1.1.21 1.1.22 1.1.23 1.1.24 1.1.25 1.1.26 1.1.27 1.1.28 1.1.29 1.1.3 1.1.30 1.1.31 1.1.32 1.1.33 1.1.34 1.1.35 1.1.36 1.1.37 1.1.38 1.1.39 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8 1.1.9 1.2.0 1.2.1 1.2.10 1.2.11 1.2.12 1.2.13 1.2.14 1.2.15 1.2.16 1.2.17 1.2.18 1.2.19 1.2.2 1.2.20 1.2.21 1.2.22 1.2.23 1.2.24 1.2.25 1.2.26 1.2.27 1.2.3 1.2.4 1.2.5
templates-patterns-collection / vendor / codeinwp / themeisle-sdk / src / Modules / Review.php
templates-patterns-collection / vendor / codeinwp / themeisle-sdk / src / Modules Last commit date
About_us.php 3 weeks ago Abstract_Migration.php 2 months ago Announcements.php 2 months ago Compatibilities.php 2 years ago Dashboard_widget.php 3 weeks ago Featured_plugins.php 1 month ago Float_widget.php 1 year ago Licenser.php 2 months ago Logger.php 10 months ago Migrator.php 2 months ago Notification.php 3 years ago Promotions.php 3 weeks ago Recommendation.php 3 years ago Review.php 1 year ago Rollback.php 1 year ago Script_loader.php 1 year ago Translate.php 5 years ago Translations.php 1 year ago Uninstall_feedback.php 2 days ago Welcome.php 2 years ago
Review.php
113 lines
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