@@ -34,6 +34,82 @@ public function setup_admin_hooks() {
34
34
add_action ( 'wp_ajax_raft_set_otter_ref ' , array ( $ this , 'set_otter_ref ' ) );
35
35
add_action ( 'activated_plugin ' , array ( $ this , 'after_otter_activation ' ) );
36
36
add_action ( 'admin_print_scripts ' , array ( $ this , 'add_nps_form ' ) );
37
+
38
+ add_action ( 'enqueue_block_editor_assets ' , array ( $ this , 'add_fse_design_pack_notice ' ) );
39
+ add_action ( 'wp_ajax_raft_dismiss_design_pack_notice ' , array ( $ this , 'remove_design_pack_notice ' ) );
40
+ }
41
+
42
+ /**
43
+ * Render design pack notice.
44
+ *
45
+ * @return void
46
+ */
47
+ public function add_fse_design_pack_notice () {
48
+ if ( ! $ this ->should_render_design_pack_notice () ) {
49
+ return ;
50
+ }
51
+
52
+ Assets_Manager::enqueue_style ( Assets_Manager::ASSETS_SLUGS ['design-pack-notice ' ], 'design-pack-notice ' );
53
+ Assets_Manager::enqueue_script (
54
+ Assets_Manager::ASSETS_SLUGS ['design-pack-notice ' ],
55
+ 'design-pack-notice ' ,
56
+ true ,
57
+ array (),
58
+ array (
59
+ 'nonce ' => wp_create_nonce ( 'raft-dismiss-design-pack-notice ' ),
60
+ 'ajaxUrl ' => esc_url ( admin_url ( 'admin-ajax.php ' ) ),
61
+ 'ajaxAction ' => 'raft_dismiss_design_pack_notice ' ,
62
+ 'buttonLink ' => tsdk_utmify ( 'https://themeisle.com/plugins/fse-design-pack ' , 'editor ' , 'raft ' ),
63
+ 'strings ' => array (
64
+ 'dismiss ' => __ ( 'Dismiss ' , 'raft ' ),
65
+ 'recommends ' => __ ( 'Raft recommends ' , 'raft ' ),
66
+ 'learnMore ' => __ ( 'Learn More ' , 'raft ' ),
67
+ 'noticeHtml ' => sprintf (
68
+ /* translators: %s: FSE Design Pack: */
69
+ __ ( '%s Access a collection of 40+ layout patterns ready to import to your website ' , 'raft ' ),
70
+ '<strong>FSE Design Pack:</strong> '
71
+ ),
72
+ ),
73
+ ),
74
+ 'designPackNoticeData '
75
+ );
76
+
77
+ echo '<div id="raft-design-pack-notice"></div> ' ;
78
+ }
79
+
80
+ /**
81
+ * Should we show the design pack notice?
82
+ *
83
+ * @return bool
84
+ */
85
+ private function should_render_design_pack_notice () {
86
+ // Already using.
87
+ if ( is_plugin_active ( 'fse-design-pack/fse-design-pack.php ' ) ) {
88
+ return false ;
89
+ }
90
+
91
+ // Notice was dismissed.
92
+ if ( get_option ( Constants::CACHE_KEYS ['dismissed-fse-design-pack-notice ' ], 'no ' ) === 'yes ' ) {
93
+ return false ;
94
+ }
95
+
96
+ return true ;
97
+ }
98
+
99
+ /**
100
+ * Dismiss the design pack notice.
101
+ *
102
+ * @return void
103
+ */
104
+ public function remove_design_pack_notice () {
105
+ if ( ! isset ( $ _POST ['nonce ' ] ) ) {
106
+ return ;
107
+ }
108
+ if ( ! wp_verify_nonce ( sanitize_text_field ( $ _POST ['nonce ' ] ), 'raft-dismiss-design-pack-notice ' ) ) {
109
+ return ;
110
+ }
111
+ update_option ( Constants::CACHE_KEYS ['dismissed-fse-design-pack-notice ' ], 'yes ' );
112
+ wp_die ();
37
113
}
38
114
39
115
/**
0 commit comments