PluginProbe ʕ •ᴥ•ʔ
Flexible Checkout Fields for WooCommerce – WooCommerce Checkout Manager / 4.1.41
Flexible Checkout Fields for WooCommerce – WooCommerce Checkout Manager v4.1.41
4.1.41 4.1.40 4.1.39 4.1.38 trunk 1.2 1.2.1 1.2.2 1.2.3 1.3 1.3.1 1.3.2 1.3.3 1.4 1.5 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6 1.6.1 1.6.10 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.6.9 1.7 1.7.1 1.7.2 1.8 1.8.1 1.8.2 1.8.3 1.9.0 1.9.1 1.9.2 1.9.3 2.0.0 2.0.1 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.1.0 2.1.1 2.1.4 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.3.1 2.3.2 2.3.3 2.3.4 2.4.0 2.4.1 2.4.10 2.4.11 2.4.12 2.4.13 2.4.14 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.4.8 2.4.9 2.5.0 2.5.1 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.6.0 2.7.0 2.7.1 2.8.0 2.9.0 2.9.1 2.9.2 3.0.0 3.0.1 3.0.10 3.0.11 3.0.2 3.0.3 3.0.4 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.2.0 3.2.1 3.2.2 3.2.3 3.2.4 3.3.0 3.4.0 3.4.1 3.4.2 3.4.3 3.5.0 3.5.1 3.5.10 3.5.11 3.5.12 3.5.13 3.5.14 3.5.15 3.5.16 3.5.17 3.5.18 3.5.19 3.5.2 3.5.3 3.5.4 3.5.5 3.5.6 3.5.7 3.5.8 3.5.9 3.6.0 4.0.0 4.1.0 4.1.1 4.1.10 4.1.11 4.1.12 4.1.13 4.1.14 4.1.15 4.1.16 4.1.17 4.1.18 4.1.19 4.1.2 4.1.20 4.1.21 4.1.22 4.1.23 4.1.24 4.1.25 4.1.26 4.1.27 4.1.28 4.1.29 4.1.3 4.1.30 4.1.31 4.1.32 4.1.34 4.1.35 4.1.36 4.1.37 4.1.4 4.1.5 4.1.6 4.1.7 4.1.8 4.1.9
flexible-checkout-fields / src / Notice / FlexibleWishlistReview.php
flexible-checkout-fields / src / Notice Last commit date
BlockCompatibility.php 1 week ago FlexibleWishlistReview.php 1 week ago Notice.php 1 week ago NoticeIntegration.php 1 week ago ReviewNotice.php 1 week ago
FlexibleWishlistReview.php
106 lines
1 <?php
2
3 namespace WPDesk\FCF\Free\Notice;
4
5 use FcfVendor\WPDesk\PluginBuilder\Plugin\AbstractPlugin;
6
7 /**
8 * Notice about new plugin - Flexible Wishlist.
9 */
10 class FlexibleWishlistReview implements Notice {
11
12 const ACTIVATION_OPTION_NAME = 'plugin_activation_%s';
13 const NOTICE_OPTION_NAME = 'notice_flexible_wishlist_%s';
14 const NOTICE_NAME = 'notice_flexible_wishlist';
15
16 /**
17 * @var AbstractPlugin
18 */
19 private $plugin;
20
21 public function __construct( AbstractPlugin $plugin ) {
22 $this->plugin = $plugin;
23 }
24
25 /**
26 * {@inheritdoc}
27 */
28 public function get_notice_name(): string {
29 return self::NOTICE_NAME;
30 }
31
32 /**
33 * {@inheritdoc}
34 */
35 public function is_active(): bool {
36 if ( basename( $_SERVER['PHP_SELF'] ) !== 'index.php' ) { // phpcs:ignore WordPress.Security.ValidatedSanitizedInput
37 return false;
38 }
39
40 $plugins = [
41 $this->plugin->get_plugin_file_path(),
42 'flexible-product-fields/flexible-product-fields.php',
43 ];
44 foreach ( $plugins as $plugin_filename ) {
45 $option_notice = sprintf( self::NOTICE_OPTION_NAME, $plugin_filename );
46 $notice_date = strtotime( get_option( $option_notice, false ) );
47 $min_date = strtotime( current_time( 'mysql' ) );
48
49 if ( ( $notice_date !== false ) && ( $notice_date > $min_date ) ) {
50 return false;
51 }
52 }
53
54 $option_activation = sprintf( self::ACTIVATION_OPTION_NAME, $this->plugin->get_plugin_file_path() );
55 $activation_date = strtotime( get_option( $option_activation, current_time( 'mysql' ) ) );
56 $min_date = strtotime( current_time( 'mysql' ) . ' -1 day' );
57
58 if ( $activation_date > $min_date ) {
59 return false;
60 }
61
62 $installed_plugins = get_plugins();
63 return ! isset( $installed_plugins['flexible-wishlist/flexible-wishlist.php'] );
64 }
65
66 /**
67 * {@inheritdoc}
68 */
69 public function get_template_path(): string {
70 return 'notices/flexible-wishlist';
71 }
72
73 /**
74 * {@inheritdoc}
75 */
76 public function get_vars_for_view(): array {
77 return [
78 'image_url' => untrailingslashit( $this->plugin->get_plugin_assets_url() ) . '/img/flexible-wishlist.png',
79 'install_url' => wp_nonce_url(
80 add_query_arg(
81 [
82 'action' => 'install-plugin',
83 'plugin' => 'flexible-wishlist',
84 ],
85 admin_url( 'update.php' )
86 ),
87 'install-plugin_flexible-wishlist'
88 ),
89 ];
90 }
91
92 /**
93 * {@inheritdoc}
94 */
95 public function set_notice_as_hidden( bool $is_permanently ) {
96 $option_name = sprintf( self::NOTICE_OPTION_NAME, $this->plugin->get_plugin_file_path() );
97 $notice_time = strtotime( current_time( 'mysql' ) . ( ( $is_permanently ) ? ' +10 years' : ' +1 month' ) );
98 $notice_date = gmdate( 'Y-m-d H:i:s', $notice_time );
99
100 update_option( $option_name, $notice_date, true );
101 }
102
103 public function add_notice_scripts(): void {
104 }
105 }
106