@@ -34,6 +34,82 @@ public function setup_admin_hooks() {
3434 add_action ( 'wp_ajax_fork_dismiss_welcome_notice ' , array ( $ this , 'remove_welcome_notice ' ) );
3535 add_action ( 'wp_ajax_fork_set_otter_ref ' , array ( $ this , 'set_otter_ref ' ) );
3636 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_fork_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 ( 'fork-dismiss-design-pack-notice ' ),
60+ 'ajaxUrl ' => esc_url ( admin_url ( 'admin-ajax.php ' ) ),
61+ 'ajaxAction ' => 'fork_dismiss_design_pack_notice ' ,
62+ 'buttonLink ' => tsdk_utmify ( 'https://themeisle.com/plugins/fse-design-pack ' , 'editor ' , 'fork ' ),
63+ 'strings ' => array (
64+ 'dismiss ' => __ ( 'Dismiss ' , 'fork ' ),
65+ 'recommends ' => __ ( 'Fork recommends ' , 'fork ' ),
66+ 'learnMore ' => __ ( 'Learn More ' , 'fork ' ),
67+ 'noticeHtml ' => sprintf (
68+ /* translators: %s: FSE Design Pack: */
69+ __ ( '%s Access a collection of 40+ layout patterns ready to import to your website ' , 'fork ' ),
70+ '<strong>FSE Design Pack:</strong> '
71+ ),
72+ ),
73+ ),
74+ 'designPackNoticeData '
75+ );
76+
77+ echo '<div id="fork-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 ' ] ), 'fork-dismiss-design-pack-notice ' ) ) {
109+ return ;
110+ }
111+ update_option ( Constants::CACHE_KEYS ['dismissed-fse-design-pack-notice ' ], 'yes ' );
112+ wp_die ();
37113 }
38114
39115 /**
0 commit comments