@@ -128,6 +128,34 @@ public function enqueue_styles() {
128128 }
129129 wp_register_style ( $ this ->plugin_name , FEEDZY_ABSURL . 'css/feedzy-rss-feeds.css ' , array (), $ this ->version , 'all ' );
130130 }
131+
132+ /**
133+ * Helper function to enqueue the license script with localization
134+ *
135+ * @access public
136+ * @return void
137+ */
138+ private function enqueue_license_script () {
139+ wp_enqueue_script (
140+ $ this ->plugin_name . '_license ' ,
141+ FEEDZY_ABSURL . 'js/feedzy-license.js ' ,
142+ array ( 'jquery ' ),
143+ $ this ->version ,
144+ true
145+ );
146+
147+ wp_localize_script (
148+ $ this ->plugin_name . '_license ' ,
149+ 'feedzyLicense ' ,
150+ array (
151+ 'l10n ' => array (
152+ 'licenseKey ' => __ ( 'License Key ' , 'feedzy-rss-feeds ' ),
153+ 'checkBtn ' => __ ( 'Check License ' , 'feedzy-rss-feeds ' ),
154+ 'errorMsg ' => __ ( 'An error occurred while checking the license. Please try again. ' , 'feedzy-rss-feeds ' ),
155+ ),
156+ )
157+ );
158+ }
131159
132160 /**
133161 * Register the stylesheets for the admin area.
@@ -206,6 +234,8 @@ public function enqueue_styles_admin() {
206234 ),
207235 )
208236 );
237+
238+ $ this ->enqueue_license_script ();
209239 }
210240
211241 $ upsell_screens = array ( 'feedzy-rss_page_feedzy-settings ' , 'feedzy-rss_page_feedzy-admin-menu-pro-upsell ' );
@@ -278,8 +308,15 @@ public function enqueue_styles_admin() {
278308 }
279309
280310 // phpcs:ignore WordPress.Security.NonceVerification.Recommended
281- if ( 'feedzy_page_feedzy-support ' === $ screen ->base && ( ( isset ( $ _GET ['tab ' ] ) && 'improve ' === $ _GET ['tab ' ] ) || ( 'edit ' !== $ screen ->base && 'feedzy_imports ' === $ screen ->post_type ) ) ) {
282-
311+ $ tab = isset ( $ _GET ['tab ' ] ) ? sanitize_text_field ( wp_unslash ( $ _GET ['tab ' ] ) ) : '' ;
312+
313+ if ( 'feedzy_page_feedzy-support ' === $ screen ->base &&
314+ (
315+ ( 'improve ' === $ tab )
316+ || ( 'edit ' !== $ screen ->base && 'feedzy_imports ' === $ screen ->post_type )
317+ || ( 'license ' === $ tab )
318+ )
319+ ) {
283320 $ asset_file = include FEEDZY_ABSPATH . '/build/feedback/index.asset.php ' ;
284321 wp_enqueue_script ( $ this ->plugin_name . '_feedback ' , FEEDZY_ABSURL . 'build/feedback/index.js ' , array_merge ( $ asset_file ['dependencies ' ], array ( 'wp-editor ' , 'wp-api ' , 'lodash ' ) ), $ asset_file ['version ' ], true );
285322 wp_enqueue_style ( 'wp-block-editor ' );
@@ -293,6 +330,8 @@ public function enqueue_styles_admin() {
293330 )
294331 );
295332
333+ $ this ->enqueue_license_script ();
334+
296335 wp_set_script_translations ( $ this ->plugin_name . '_feedback ' , 'feedzy-rss-feeds ' );
297336 }
298337
@@ -923,6 +962,7 @@ public function feedzy_filter_plugin_row_meta( $links, $file ) {
923962 *
924963 * @since 3.0.12
925964 * @access public
965+ * @return void
926966 */
927967 public function feedzy_menu_pages () {
928968 $ capability = feedzy_current_user_can ();
@@ -932,6 +972,17 @@ public function feedzy_menu_pages() {
932972 $ svg_base64_icon = 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iNzdweCIgaGVpZ2h0PSI3N3B4IiB2aWV3Qm94PSIwIDAgNzcgNzciIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDUyLjYgKDY3NDkxKSAtIGh0dHA6Ly93d3cuYm9oZW1pYW5jb2RpbmcuY29tL3NrZXRjaCAtLT4KICAgIDx0aXRsZT5Db21iaW5lZC1TaGFwZTwvdGl0bGU+CiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4KICAgIDxnIGlkPSJQcm9kdWN0LVBhZ2UiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSJXb3JkUHJlc3MtcGx1Z2lucyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTE5Ni4wMDAwMDAsIC05NTcuMDAwMDAwKSIgZmlsbD0iIzQyNjhDRiI+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMzQuNSwxMDM0IEMyMTMuMjM3MDM3LDEwMzQgMTk2LDEwMTYuNzYyOTYgMTk2LDk5NS41IEMxOTYsOTc0LjIzNzAzNyAyMTMuMjM3MDM3LDk1NyAyMzQuNSw5NTcgQzI1NS43NjI5NjMsOTU3IDI3Myw5NzQuMjM3MDM3IDI3Myw5OTUuNSBDMjczLDEwMTYuNzYyOTYgMjU1Ljc2Mjk2MywxMDM0IDIzNC41LDEwMzQgWiBNMjM4LjM4OTA4NywxMDAzLjYxMDkxIEMyMzYuMjQxMjU2LDEwMDEuNDYzMDggMjMyLjc1ODg1MSwxMDAxLjQ2Mjk3IDIzMC42MTA5NDMsMTAwMy42MTA4OCBDMjI4LjQ2MzAzNSwxMDA1Ljc1ODc5IDIyOC40NjMwMjEsMTAwOS4yNDEyIDIzMC42MTA5MTMsMTAxMS4zODkwOSBDMjMyLjc1ODgwNCwxMDEzLjUzNjk4IDIzNi4yNDExNDksMTAxMy41MzcwMyAyMzguMzg5MDU3LDEwMTEuMzg5MTIgQzI0MC41MzY5NjUsMTAwOS4yNDEyMSAyNDAuNTM2OTc5LDEwMDUuNzU4OCAyMzguMzg5MDg3LDEwMDMuNjEwOTEgWiBNMjUxLjE5OTE5Niw5OTYuNTI0MjY5IEMyNDEuNzE2MDEsOTg4LjAxMzQwOSAyMjcuMjk0MTQzLDk4OC4wMDQzMDcgMjE3LjgwMDg1OSw5OTYuNTI0MjE0IEMyMTcuMjQwNDk2LDk5Ny4wMjcwNzkgMjE3LjIyMjEwOCw5OTcuODk5Nzc3IDIxNy43NTQ0OCw5OTguNDMyMTUgTDIyMC41NTE4NzksMTAwMS4yMjk1NSBDMjIxLjA0MTU5NCwxMDAxLjcxOTI2IDIyMS44Mjk5NjcsMTAwMS43NTIyNiAyMjIuMzUwNDA4LDEwMDEuMjk1MzcgQzIyOS4yODI0MDEsOTk1LjIxMTE3IDIzOS43MDI4MSw5OTUuMTk4MjA5IDI0Ni42NDk1NDYsMTAwMS4yOTU0MSBDMjQ3LjE3MDA0NywxMDAxLjc1MjI1IDI0Ny45NTg0MiwxMDAxLjcxOTI1IDI0OC40NDgwNzUsMTAwMS4yMjk1OSBMMjUxLjI0NTQ2NSw5OTguNDMyMjA1IEMyNTEuNzc3OTUyLDk5Ny44OTk4MzQgMjUxLjc1OTU2MSw5OTcuMDI3MTM2IDI1MS4xOTkxOTYsOTk2LjUyNDI2OSBaIE0yNTkuNTE3NDgxLDk4OC4wNjI4MTggQzI0NS43NTQ2NjIsOTc1LjI1MzkxIDIyNC4zMTI1MzEsOTc1LjE5MTM3NCAyMTAuNDgyNDY0LDk4OC4wNjI4NzMgQzIwOS45NTA5Niw5ODguNTU3NTU3IDIwOS45NDA4NDUsOTg5LjM5NjY4OSAyMTAuNDU0MjIyLDk4OS45MTAwNjYgTDIxMy4xODU0ODksOTkyLjY0MTMzMyBDMjEzLjY3NTU2OSw5OTMuMTMxNDEzIDIxNC40NjI4MjQsOTkzLjE0MTkyNCAyMTQuOTcyNjIyLDk5Mi42NzIzNTUgQzIyNi4yODEwMjksOTgyLjI1NDc4NiAyNDMuNzIwODA0LDk4Mi4yNTY0MTUgMjU5LjUxNzQ4MSw5ODguMDYyODE4IFoiIGlkPSJDb21iaW5lZC1TaGFwZSI+PC9wYXRoPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+ ' ;
933973 add_menu_page ( __ ( 'Feedzy ' , 'feedzy-rss-feeds ' ), __ ( 'Feedzy ' , 'feedzy-rss-feeds ' ), apply_filters ( 'feedzy_admin_menu_capability ' , 'publish_posts ' ), 'feedzy-admin-menu ' , '' , $ svg_base64_icon , 98.7666 );
934974
975+ add_submenu_page (
976+ 'feedzy-admin-menu ' ,
977+ __ ( 'Dashboard ' , 'feedzy-rss-feeds ' ),
978+ __ ( 'Dashboard ' , 'feedzy-rss-feeds ' ),
979+ 'manage_options ' ,
980+ 'feedzy-support ' ,
981+ array (
982+ $ this ,
983+ 'render_support ' ,
984+ )
985+ );
935986 add_submenu_page (
936987 'feedzy-admin-menu ' ,
937988 __ ( 'Settings ' , 'feedzy-rss-feeds ' ),
@@ -954,17 +1005,6 @@ public function feedzy_menu_pages() {
9541005 'feedzy_integration_page ' ,
9551006 )
9561007 );
957- add_submenu_page (
958- 'feedzy-admin-menu ' ,
959- __ ( 'Support ' , 'feedzy-rss-feeds ' ),
960- __ ( 'Support ' , 'feedzy-rss-feeds ' ) . '<span class="dashicons dashicons-editor-help more-features-icon" style="width: 17px; height: 17px; margin-left: 4px; color: #ffca54; font-size: 17px; vertical-align: -3px;"></span> ' ,
961- 'manage_options ' ,
962- 'feedzy-support ' ,
963- array (
964- $ this ,
965- 'render_support ' ,
966- )
967- );
9681008
9691009 if ( ! feedzy_is_pro () && get_option ( 'feedzy_fresh_install ' , false ) ) {
9701010 $ hook = add_submenu_page (
@@ -981,37 +1021,55 @@ public function feedzy_menu_pages() {
9811021 add_action ( "load- $ hook " , array ( $ this , 'feedzy_load_setup_wizard_page ' ) );
9821022 add_action ( 'adminmenu ' , array ( $ this , 'feedzy_hide_wizard_menu ' ) );
9831023 }
984- if ( ! defined ( 'REVIVE_NETWORK_VERSION ' ) ) {
985- $ rss_to_social = __ ( 'RSS to Social ' , 'feedzy-rss-feeds ' ) . '<span id="feedzy-rn-menu" class="dashicons dashicons-external" style="font-size:initial;"></span> ' ;
986- add_action (
987- 'admin_footer ' ,
988- function () {
989- ?>
990- <script type="text/javascript">
991- jQuery(document).ready(function ($) {
992- $('#feedzy-rn-menu').parent().attr('target', '_blank');
993- });
994- </script>
995- <?php
996- }
997- );
1024+ }
9981025
999- global $ submenu ;
1000- if ( isset ( $ submenu ['feedzy-admin-menu ' ] ) ) {
1026+ /**
1027+ * Handle the RSS to Social menu item.
1028+ *
1029+ * @access public
1030+ * @return void
1031+ */
1032+ public function rss_to_social_menu () {
1033+ $ capability = feedzy_current_user_can ();
1034+ if ( ! $ capability ) {
1035+ return ;
1036+ }
10011037
1002- array_splice (
1003- $ submenu ['feedzy-admin-menu ' ],
1004- 4 ,
1005- 0 ,
1006- array (
1007- array (
1008- $ rss_to_social ,
1009- 'manage_options ' ,
1010- tsdk_utmify ( 'https://revive.social/plugins/revive-network ' , 'feedzy-menu ' ),
1011- ),
1012- )
1013- );
1038+ if ( defined ( 'REVIVE_NETWORK_VERSION ' ) && ! feedzy_is_pro () ) {
1039+ return ;
1040+ }
1041+
1042+ $ rss_to_social = __ ( 'RSS to Social ' , 'feedzy-rss-feeds ' ) . '<span id="feedzy-rn-menu" class="dashicons dashicons-external" style="font-size:initial;"></span> ' ;
1043+ add_action (
1044+ 'admin_footer ' ,
1045+ function () {
1046+ ?>
1047+ <script type="text/javascript">
1048+ jQuery(document).ready(function ($) {
1049+ $('#feedzy-rn-menu').parent().attr('target', '_blank');
1050+ });
1051+ </script>
1052+ <?php
1053+ }
1054+ );
1055+
1056+ global $ submenu ;
1057+ if ( isset ( $ submenu ['feedzy-admin-menu ' ] ) ) {
1058+ if ( isset ( $ submenu ['feedzy-admin-menu ' ][0 ] ) ) {
1059+ unset( $ submenu ['feedzy-admin-menu ' ][0 ] );
10141060 }
1061+ array_splice (
1062+ $ submenu ['feedzy-admin-menu ' ],
1063+ 5 ,
1064+ 0 ,
1065+ array (
1066+ array (
1067+ $ rss_to_social ,
1068+ 'manage_options ' ,
1069+ tsdk_utmify ( 'https://revive.social/plugins/revive-network ' , 'feedzy-menu ' ),
1070+ ),
1071+ )
1072+ );
10151073 }
10161074 }
10171075
@@ -1605,7 +1663,20 @@ public function feedzy_dismiss_wizard( $redirect_to_dashboard = true ) {
16051663 update_option ( 'feedzy_fresh_install ' , $ status );
16061664 delete_option ( 'feedzy_wizard_data ' );
16071665 if ( false !== $ redirect_to_dashboard ) {
1608- wp_safe_redirect ( remove_query_arg ( array ( 'action ' , 'status ' ) ) );
1666+
1667+ $ cleaned_url = remove_query_arg ( array ( 'page ' , 'action ' , 'status ' ) );
1668+ $ parsed_url = wp_parse_url ( $ cleaned_url );
1669+
1670+ // Default to dashboard if no page is set.
1671+ if (
1672+ isset ( $ parsed_url ['path ' ] ) &&
1673+ strpos ( $ parsed_url ['path ' ], '/wp-admin/admin.php ' ) !== false &&
1674+ empty ( $ parsed_url ['query ' ] )
1675+ ) {
1676+ $ cleaned_url = add_query_arg ( 'page ' , 'feedzy-support ' , $ cleaned_url );
1677+ }
1678+
1679+ wp_safe_redirect ( $ cleaned_url );
16091680 exit ;
16101681 }
16111682 return true ;
@@ -1809,7 +1880,12 @@ private function setup_wizard_subscribe_process() {
18091880 $ segment = 1 ;
18101881 $ response = array (
18111882 'status ' => 1 ,
1812- 'redirect_to ' => add_query_arg ( 'post_type ' , 'feedzy_imports ' , admin_url ( 'edit.php ' ) ),
1883+ 'redirect_to ' => add_query_arg (
1884+ array (
1885+ 'page ' => 'feedzy-support ' ,
1886+ ),
1887+ admin_url ( 'admin.php ' )
1888+ ),
18131889 'message ' => __ ( 'Redirecting to Feedzy dashboard ' , 'feedzy-rss-feeds ' ),
18141890 );
18151891
@@ -1834,30 +1910,48 @@ private function setup_wizard_subscribe_process() {
18341910 } else {
18351911 $ response = array (
18361912 'status ' => 1 ,
1837- 'redirect_to ' => add_query_arg ( 'post_type ' , 'feedzy_imports ' , admin_url ( 'edit.php ' ) ),
1913+ 'redirect_to ' => add_query_arg (
1914+ array (
1915+ 'page ' => 'feedzy-support ' ,
1916+ ),
1917+ admin_url ( 'admin.php ' )
1918+ ),
18381919 'message ' => __ ( 'Redirecting to Feedzy dashboard ' , 'feedzy-rss-feeds ' ),
18391920 );
18401921 }
18411922 } elseif ( 'page_builder ' === $ integrate_with ) {
1842- $ post_edit_link = get_edit_post_link ( $ page_id, ' db ' );
1843- // Get elementor edit page link.
1844- if ( defined ( ' ELEMENTOR_PATH ' ) && class_exists ( ' Elementor\Widget_Base ' ) ) {
1845- $ segment = 3 ;
1846- $ post_edit_link = add_query_arg (
1847- array (
1848- ' post ' => $ page_id ,
1849- ' action ' => ' elementor ' ,
1923+ if ( empty ( $ page_id ) ) {
1924+ $ response = array (
1925+ ' status ' => 1 ,
1926+ ' redirect_to ' => add_query_arg (
1927+ array (
1928+ ' page ' => ' feedzy-support ' ,
1929+ ) ,
1930+ admin_url ( ' admin.php ' )
18501931 ),
1851- admin_url ( 'post.php ' )
1932+ ' message ' => __ ( 'Redirecting to Feedzy dashboard ' , ' feedzy-rss-feeds ' ),
18521933 );
18531934 } else {
1854- $ segment = 4 ;
1935+ $ post_edit_link = get_edit_post_link ( $ page_id , 'db ' );
1936+ // Get elementor edit page link.
1937+ if ( defined ( 'ELEMENTOR_PATH ' ) && class_exists ( 'Elementor\Widget_Base ' ) ) {
1938+ $ segment = 3 ;
1939+ $ post_edit_link = add_query_arg (
1940+ array (
1941+ 'post ' => $ page_id ,
1942+ 'action ' => 'elementor ' ,
1943+ ),
1944+ admin_url ( 'post.php ' )
1945+ );
1946+ } else {
1947+ $ segment = 4 ;
1948+ }
1949+ $ response = array (
1950+ 'status ' => 1 ,
1951+ 'redirect_to ' => $ post_edit_link ,
1952+ 'message ' => __ ( 'Redirecting to draft page ' , 'feedzy-rss-feeds ' ),
1953+ );
18551954 }
1856- $ response = array (
1857- 'status ' => 1 ,
1858- 'redirect_to ' => $ post_edit_link ,
1859- 'message ' => __ ( 'Redirecting to draft page ' , 'feedzy-rss-feeds ' ),
1860- );
18611955 }
18621956 if ( $ with_subscribe && is_email ( $ email ) ) {
18631957 update_option ( 'feedzy_rss_feeds_logger_flag ' , 'yes ' );
0 commit comments