PluginProbe ʕ •ᴥ•ʔ
Weight Based Shipping Table Rate for WooCommerce – Flexible Shipping / 6.12.0
Weight Based Shipping Table Rate for WooCommerce – Flexible Shipping v6.12.0
6.12.1 6.12.0 6.11.0 6.10.0 6.9.1 6.9.0 6.8.1 6.8.0 6.7.4 6.7.3 6.7.2 6.7.0 4.21.7 4.22.0 4.22.1 4.23.0 4.23.1 4.23.2 4.23.3 4.24.0 4.24.1 4.24.10 4.24.11 4.24.12 4.24.13 4.24.14 4.24.15 4.24.16 4.24.17 4.24.18 4.24.19 4.24.2 4.24.4 4.24.6 4.24.7 4.24.8 4.24.9 4.25.0 4.25.1 4.25.2 4.25.4 4.25.5 4.25.6 4.25.7 4.25.8 4.3.0 4.3.1 4.4.0 4.4.1 4.5.0 4.5.1 4.6.0 4.6.1 4.7.0 4.7.1 4.7.2 4.8.0 4.8.1 4.8.3 4.8.4 4.8.5 4.9.0 5.0.0 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 5.0.8 5.0.9 5.1.0 5.1.1 5.1.2 5.1.3 5.2.0 5.3.0 5.3.1 5.3.3 5.3.4 5.3.5 6.0.0 6.1.0 6.1.1 6.1.2 6.2.0 6.2.1 6.2.2 6.2.3 6.2.4 6.3.0 trunk 6.4.0 1.4 6.4.1 1.4.1 6.4.2 1.5 6.4.3 1.6 6.4.5 1.6.1 6.5.0 1.6.2 6.5.1 1.7 6.5.2 1.8 6.5.3 1.9 6.5.4 1.9.1 6.5.5 1.9.10 6.5.6 1.9.11 6.5.7 1.9.12 6.5.8 1.9.2 6.6.0 1.9.3 6.6.1 1.9.4 6.6.2 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0 2.0.1 2.1 2.1.1 2.1.10 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 3.0.6 3.0.7 3.1 3.1.1 3.1.10 3.1.11 3.1.12 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 3.10.0 3.11.0 3.11.1 3.11.2 3.11.3 3.11.4 3.12.0 3.13.0 3.14.0 3.14.1 3.14.2 3.14.3 3.14.4 3.15.0 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.2.0 3.3.1 3.3.10 3.3.11 3.3.12 3.3.13 3.3.14 3.3.2 3.3.3 3.3.4 3.3.5 3.3.6 3.3.7 3.3.8 3.3.9 3.4.0 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.6.3 3.6.4 3.7.0 3.8.0 3.9.0 3.9.1 3.9.10 3.9.11 3.9.12 3.9.13 3.9.15 3.9.16 3.9.17 3.9.18 3.9.19 3.9.2 3.9.20 3.9.21 3.9.3 3.9.4 3.9.5 3.9.6 3.9.7 3.9.9 4.0.0 4.0.1 4.0.10 4.0.2 4.0.3 4.0.4 4.0.5 4.0.6 4.0.7 4.0.8 4.0.9 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.10.0 4.10.1 4.11.0 4.11.1 4.11.2 4.11.3 4.11.4 4.11.5 4.11.6 4.11.7 4.11.8 4.11.9 4.12.0 4.13.0 4.13.1 4.13.2 4.13.3 4.14.0 4.14.1 4.14.2 4.15.0 4.16.0 4.16.1 4.16.2 4.17.0 4.18.0 4.18.1 4.18.2 4.18.3 4.18.4 4.18.5 4.18.6 4.19.0 4.19.1 4.2.0 4.20.0 4.20.1 4.20.2 4.20.3 4.21.0 4.21.1 4.21.2 4.21.3 4.21.4 4.21.5
flexible-shipping / vendor_prefixed / wpdesk / wp-wpdesk-tracker / src / Tracker / PluginActionLinks.php
flexible-shipping / vendor_prefixed / wpdesk / wp-wpdesk-tracker / src / Tracker Last commit date
views 1 week ago Assets.php 1 week ago OptInOptOut.php 1 week ago OptInPage.php 1 week ago OptOut.php 1 week ago PluginActionLinks.php 1 week ago Shop.php 1 week ago Tracker.php 1 week ago
PluginActionLinks.php
101 lines
1 <?php
2
3 namespace FSVendor\WPDesk\Tracker;
4
5 use FSVendor\WPDesk\PluginBuilder\Plugin\Hookable;
6 /**
7 * Can add Plugin actions links: opt-in/opt-out to tracker.
8 */
9 class PluginActionLinks implements Hookable
10 {
11 /**
12 * @var string
13 */
14 private $plugin_file;
15 /**
16 * @var string
17 */
18 private $plugin_slug;
19 /**
20 * @var string|null
21 */
22 private $shop_url;
23 /**
24 * @param string $plugin_file
25 * @param string $plugin_slug
26 * @param string|null $shop_url
27 */
28 public function __construct($plugin_file, $plugin_slug, $shop_url = null)
29 {
30 $this->plugin_file = $plugin_file;
31 $this->plugin_slug = $plugin_slug;
32 $this->shop_url = $shop_url;
33 }
34 public function hooks()
35 {
36 add_filter('plugin_row_meta', [$this, 'append_plugin_action_links_to_row_meta'], 10, 2);
37 }
38 /**
39 * @param array $plugin_meta
40 * @param string $plugin_file
41 *
42 * @return array
43 */
44 public function append_plugin_action_links_to_row_meta($plugin_meta, $plugin_file)
45 {
46 if ($plugin_file === $this->plugin_file) {
47 return $this->append_opt_link($plugin_meta);
48 }
49 return $plugin_meta;
50 }
51 /**
52 * @param array $links
53 *
54 * @return array
55 */
56 private function append_opt_link($links)
57 {
58 if (!$this->tracker_enabled() || apply_filters('wpdesk_tracker_do_not_ask', \false)) {
59 return $links;
60 }
61 $tracker_consent = new \FSVendor\WPDesk_Tracker_Persistence_Consent();
62 $plugin_links = [];
63 if (!$tracker_consent->is_active()) {
64 $opt_in_link = wp_nonce_url(admin_url('admin.php?page=wpdesk_tracker_' . $this->plugin_slug), OptInPage::WPDESK_TRACKER_ACTION, OptInPage::WPDESK_TRACKER_NONCE);
65 if (is_string($this->shop_url) && strlen($this->shop_url) > 0) {
66 $opt_in_link = add_query_arg('shop_url', $this->shop_url, $opt_in_link);
67 }
68 $opt_in_link = add_query_arg('plugin', $this->plugin_slug, $opt_in_link);
69 $opt_in_link = add_query_arg('ctx', 'links', $opt_in_link);
70 $plugin_links[] = '<a href="' . esc_url($opt_in_link) . '">' . esc_html__('Enable usage tracking', 'flexible-shipping') . '</a>';
71 } else {
72 $opt_in_link = admin_url('plugins.php?wpdesk_tracker_opt_out_' . $this->plugin_slug . '=1&security=' . wp_create_nonce($this->plugin_slug));
73 $opt_in_link = add_query_arg('plugin', $this->plugin_slug, $opt_in_link);
74 $opt_in_link = add_query_arg('ctx', 'links', $opt_in_link);
75 $plugin_links[] = '<a href="' . esc_url($opt_in_link) . '">' . esc_html__('Disable usage tracking', 'flexible-shipping') . '</a>';
76 }
77 return array_merge($links, $plugin_links);
78 }
79 /**
80 * @return bool
81 */
82 private function tracker_enabled()
83 {
84 $tracker_enabled = \true;
85 $server = sanitize_text_field(wp_unslash($_SERVER['SERVER_NAME'] ?? ''));
86 if (!empty($server) && $this->is_localhost($server)) {
87 $tracker_enabled = \false;
88 }
89 return (bool) apply_filters('wpdesk_tracker_enabled', $tracker_enabled);
90 }
91 /**
92 * @param string $address
93 *
94 * @return bool
95 */
96 private function is_localhost($address)
97 {
98 return in_array($address, ['127.0.0.1', '::1'], \true);
99 }
100 }
101