PluginProbe ʕ •ᴥ•ʔ
Flexible Checkout Fields for WooCommerce – WooCommerce Checkout Manager / trunk
Flexible Checkout Fields for WooCommerce – WooCommerce Checkout Manager vtrunk
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 / NoticeIntegration.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
NoticeIntegration.php
118 lines
1 <?php
2
3 namespace WPDesk\FCF\Free\Notice;
4
5 use FcfVendor\WPDesk\PluginBuilder\Plugin\Hookable;
6 use FcfVendor\WPDesk\PluginBuilder\Plugin\HookablePluginDependant;
7 use FcfVendor\WPDesk\PluginBuilder\Plugin\PluginAccess;
8 use FcfVendor\WPDesk\View\Renderer\SimplePhpRenderer;
9 use FcfVendor\WPDesk\View\Resolver\DirResolver;
10
11 /**
12 * Supports ability to display notice and its management.
13 */
14 class NoticeIntegration implements Hookable, HookablePluginDependant {
15
16 use PluginAccess;
17
18 /**
19 * @var Notice
20 */
21 private $notice;
22
23 /**
24 * @var SimplePhpRenderer
25 */
26 private $renderer;
27
28 /**
29 * Class constructor.
30 */
31 public function __construct( Notice $notice ) {
32 $this->notice = $notice;
33 $this->renderer = new SimplePhpRenderer( new DirResolver( dirname( dirname( __DIR__ ) ) . '/templates' ) );
34 }
35
36 /**
37 * {@inheritdoc}
38 */
39 public function hooks() {
40 add_filter( 'admin_init', [ $this, 'init_admin_notice' ] );
41 add_action( 'wp_ajax_fcf_close_' . $this->notice->get_notice_name(), [ $this, 'hide_admin_notice' ] );
42 }
43
44 /**
45 * @return void
46 * @internal
47 */
48 public function init_admin_notice() {
49 if ( ! $this->notice->is_active() ) {
50 return;
51 }
52
53 add_filter( 'admin_notices', [ $this, 'load_admin_notice_template' ] );
54 add_action( 'admin_enqueue_scripts', [ $this, 'load_styles_for_notice' ] );
55 add_action( 'admin_enqueue_scripts', [ $this, 'load_scripts_for_notice' ] );
56 }
57
58 /**
59 * @return void
60 * @internal
61 */
62 public function load_admin_notice_template() {
63 echo $this->renderer->render( // phpcs:ignore
64 $this->notice->get_template_path(),
65 array_merge( // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
66 [
67 'ajax_url' => esc_attr( admin_url( 'admin-ajax.php' ) ),
68 'ajax_action' => esc_attr( 'fcf_close_' . $this->notice->get_notice_name() ),
69 ],
70 $this->notice->get_vars_for_view()
71 )
72 );
73 }
74
75 /**
76 * @return void
77 * @internal
78 */
79 public function load_styles_for_notice() {
80 $suffix = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '.css' : '.min.css';
81
82 wp_register_style(
83 'fcf-notice',
84 trailingslashit( $this->plugin->get_plugin_assets_url() ) . 'css/admin-notice' . $suffix,
85 [],
86 ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? time() : $this->plugin->get_script_version()
87 );
88 wp_enqueue_style( 'fcf-notice' );
89 }
90
91 /**
92 * @return void
93 * @internal
94 */
95 public function load_scripts_for_notice() {
96 $suffix = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '.js' : '.min.js';
97 $this->notice->add_notice_scripts();
98
99 wp_register_script(
100 'fcf-notice',
101 trailingslashit( $this->plugin->get_plugin_assets_url() ) . 'js/admin-notice' . $suffix,
102 [],
103 ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? time() : $this->plugin->get_script_version(),
104 true
105 );
106 wp_enqueue_script( 'fcf-notice' );
107 }
108
109 /**
110 * @return void
111 * @internal
112 */
113 public function hide_admin_notice() {
114 $is_permanently = ( isset( $_POST['is_permanently'] ) && $_POST['is_permanently'] ); // phpcs:ignore
115 $this->notice->set_notice_as_hidden( $is_permanently );
116 }
117 }
118