builder.php (14966B)
1 <?php 2 3 4 require_once SEEDPROD_PLUGIN_PATH . 'resources/data-templates/basic-page.php'; 5 6 7 global $wpdb; 8 9 // current user 10 $current_user = wp_get_current_user(); 11 $current_user_name = $current_user->display_name; 12 $current_user_email = $current_user->user_email; 13 $current_user_email_hash = md5( $current_user->user_email ); 14 $free_templates_subscribed = get_option( 'seedprod_free_templates_subscribed' ); 15 if ( $free_templates_subscribed ) { 16 $free_templates_subscribed = '1'; 17 } 18 $seedprod_nonce = wp_create_nonce( 'seedprod_nonce' ); 19 20 21 $lpage_id = ''; 22 if ( ! empty( $_GET['id'] ) ) { 23 $lpage_id = absint( $_GET['id'] ); 24 } else { 25 wp_die(); 26 } 27 28 // Template Vars 29 $timezones = seedprod_lite_get_timezones(); 30 $times = seedprod_lite_get_times(); 31 $block_options = seedprod_lite_block_options(); 32 33 34 // get page 35 $tablename = $wpdb->prefix . 'posts'; 36 $sql = "SELECT * FROM $tablename WHERE id = %d"; 37 $safe_sql = $wpdb->prepare( $sql, $lpage_id ); 38 $lpage = $wpdb->get_row( $safe_sql ); 39 40 // reset id 41 $lpage->id = $lpage->ID; 42 43 // Get page uuid 44 $lpage_uuid = get_post_meta( $lpage->id, '_seedprod_page_uuid', true ); 45 if ( empty( $lpage_uuid ) ) { 46 $this_uuid = wp_generate_uuid4(); 47 update_post_meta( $lpage->id, '_seedprod_page_uuid', $this_uuid ); 48 $lpage_uuid = $this_uuid; 49 } 50 51 // add default settings if they do not exisits 52 if ( empty( $lpage->post_content_filtered ) ) { 53 require_once SEEDPROD_PLUGIN_PATH . 'resources/data-templates/basic-page.php'; 54 $settings = json_decode( $seedprod_basic_lpage, true ); 55 $settings['page_type'] = 'lp'; 56 $settings['from_edit_with_seedprod'] = true; 57 } else { 58 // get settings and maybe modify 59 $settings = json_decode( $lpage->post_content_filtered, true ); 60 } 61 62 63 64 65 // get preview link 66 //$preview_link = get_preview_post_link( $lpage_id ); 67 if ( $settings['page_type'] == 'lp' ) { 68 $preview_link = home_url() . "/?page_id=$lpage_id&preview_id=$lpage_id&preview_nonce=" . wp_create_nonce( 'post_preview_' . $lpage_id ) . '&preview=true'; 69 } else { 70 $preview_link = home_url() . "/?post_type=seedprod&page_id=$lpage_id&preview_id=$lpage_id&preview_nonce=" . wp_create_nonce( 'post_preview_' . $lpage_id ) . '&preview=true'; 71 72 } 73 74 // keep track for changes 75 $settings['post_title'] = $lpage->post_title; 76 $settings['post_name'] = $lpage->post_name; 77 $settings['post_status'] = $lpage->post_status; 78 79 $show_bottombar_cta = true; 80 $dismiss_bottombar_cta = get_option( 'seedprod_dismiss_upsell_2' ); 81 if ( $dismiss_bottombar_cta ) { 82 $show_bottombar_cta = false; 83 } 84 85 86 // Email integration logic 87 $seedprod_api_token = get_option( 'seedprod_api_token' ); 88 $seedprod_user_id = get_option( 'seedprod_user_id' ); 89 $seedprod_site_token = get_option( 'seedprod_token' ); 90 $license_key = get_option( 'seedprod_api_key' ); 91 $email_integration_url = ''; 92 93 94 $seedprod_app_settings = get_option( 'seedprod_app_settings' ); 95 if ( ! empty( $seedprod_app_settings ) ) { 96 $seedprod_app_settings = json_decode( stripslashes( $seedprod_app_settings ) ); 97 } else { 98 // fail safe incase settings go missing 99 require_once SEEDPROD_PLUGIN_PATH . 'resources/data-templates/default-settings.php'; 100 update_option( 'seedprod_app_settings', $seedprod_app_default_settings ); 101 $seedprod_app_settings = json_decode( $seedprod_app_default_settings ); 102 } 103 104 105 $template_preview_path = 'https://assets.seedprod.com/preview-'; 106 107 108 // Pers 109 $per = array(); 110 $active_license = false; 111 $template_dev_mode = false; 112 $template_dev_mode_url = false; 113 $template_dev_mode_password = false; 114 115 ?> 116 117 118 <style> 119 .sp-mobile-view .sp-w-full { 120 width: 100% !important; 121 } 122 123 .sp-mobile-view .sp-el-section,.sp-mobile-view .sp-el-row,.sp-mobile-view .sp-el-col,.sp-mobile-view .sp-el-block{ 124 padding: 5px !important; 125 } 126 127 .sp-mobile-view .sm\:sp-flex { 128 display: block; 129 } 130 131 .mce-content-body { 132 line-height: 1.5; 133 } 134 135 h1.mce-content-body,h2.mce-content-body,h3.mce-content-body,h4.mce-content-body,h5.mce-content-body,h6.mce-content-body { 136 line-height: 1.1; 137 } 138 </style> 139 140 <div id="seedprod-vue-app-builder" class="sp-font-sans"></div> 141 142 <?php 143 $fontawesome_file = SEEDPROD_PLUGIN_PATH . 'resources/data-templates/fontawesome.json'; 144 $fontawesome_json = json_decode( file_get_contents( $fontawesome_file ) ); 145 $icons = array(); 146 foreach ( $fontawesome_json as $v ) { 147 $icons[] = array( 148 'c' => 'fa', 149 'n' => $v, 150 ); 151 } 152 153 $googlefonts_file = SEEDPROD_PLUGIN_PATH . 'resources/data-templates/googlefonts.json'; 154 155 $fonts['Standard Fonts'] = array( 156 "'Helvetica Neue', Arial, sans-serif" => 'Helvetica Neue', 157 'Garamond, serif' => 'Garamond', 158 'Georgia, serif' => 'Georgia', 159 'Impact, Charcoal, sans-serif' => 'Impact', 160 'Tahoma, Geneva, sans-serif' => 'Tahoma', 161 "'Times New Roman', Times,serif" => 'Times New Roman', 162 "'Trebuchet MS', Helvetica, sans-serif" => 'Trebuchet', 163 'Verdana, Geneva, sans-serif' => 'Verdana', 164 'Courier, monospace' => 'Courier', 165 "'Comic Sans MS', cursive" => 'Comic Sans', 166 ); 167 $fonts['Google Fonts'] = json_decode( file_get_contents( $googlefonts_file ) ); 168 //$googlefonts_json = json_decode(file_get_contents($googlefonts_file)); 169 170 //get list of fonts to load 171 $google_fonts_str = seedprod_lite_construct_font_str( $settings['document'] ); 172 173 ?> 174 175 <?php if ( ! empty( $google_fonts_str ) ) : ?> 176 <!-- Google Font --> 177 <link rel="stylesheet" href="<?php echo $google_fonts_str; ?>"> 178 <?php endif; ?> 179 180 <script> 181 var seedprod_nonce = "<?php echo $seedprod_nonce; ?>"; 182 var seedprod_page = "<?php echo sanitize_text_field($_GET['page']); ?>"; 183 var seedprod_remote_api = "<?php echo SEEDPROD_API_URL; ?>"; 184 <?php 185 $from = ''; 186 if ( ! empty( $_GET['from'] ) ) { 187 $form = sanitize_text_field($_GET['from']); 188 } 189 ?> 190 var seedprod_from = "<?php echo $from; ?>"; 191 <?php 192 // see if we need below 193 $ajax_url = html_entity_decode( wp_nonce_url( 'admin-ajax.php?action=seedprod_lite_save_template', 'seedprod_lite_save_template' ) ); 194 ?> 195 var seedprod_template_save_url = "<?php echo $ajax_url; ?>"; 196 197 <?php $ajax_url = html_entity_decode( wp_nonce_url( 'admin-ajax.php?action=seedprod_lite_template_subscribe', 'seedprod_lite_template_subscribe' ) ); ?> 198 var seedprod_template_subscribe_url = "<?php echo $ajax_url; ?>"; 199 200 <?php $ajax_url = html_entity_decode( wp_nonce_url( 'admin-ajax.php?action=seedprod_lite_save_page', 'seedprod_lite_save_page' ) ); ?> 201 var seedprod_save_lpage_url = "<?php echo $ajax_url; ?>"; 202 203 <?php $utc_url = html_entity_decode( wp_nonce_url( 'admin-ajax.php?action=seedprod_lite_get_utc_offset', 'seedprod_lite_get_utc_offset' ) ); ?> 204 var seedprod_utc_url = "<?php echo $utc_url; ?>"; 205 206 <?php $get_namespaced_custom_css_url = html_entity_decode( wp_nonce_url( 'admin-ajax.php?action=seedprod_lite_get_namespaced_custom_css', 'seedprod_lite_get_namespaced_custom_css' ) ); ?> 207 var seedprod_get_namespaced_custom_css_url = "<?php echo $get_namespaced_custom_css_url; ?>"; 208 209 <?php $stockimages_url = html_entity_decode( wp_nonce_url( 'admin-ajax.php?action=seedprod_lite_get_stockimages', 'seedprod_lite_get_stockimages' ) ); ?> 210 var seedprod_stockimages_url = "<?php echo $stockimages_url; ?>"; 211 212 <?php $backgrounds_sideload_url = html_entity_decode( wp_nonce_url( 'admin-ajax.php?action=seedprod_lite_backgrounds_sideload', 'seedprod_lite_backgrounds_sideload' ) ); ?> 213 var seedprod_backgrounds_sideload_url = "<?php echo $backgrounds_sideload_url; ?>"; 214 215 <?php $backgrounds_download_url = html_entity_decode( wp_nonce_url( 'admin-ajax.php?action=seedprod_lite_backgrounds_download', 'seedprod_lite_backgrounds_download' ) ); ?> 216 var seedprod_backgrounds_download_url = "<?php echo $backgrounds_download_url; ?>"; 217 218 <?php $ajax_url = html_entity_decode( wp_nonce_url( 'admin-ajax.php?action=seedprod_lite_slug_exists', 'seedprod_lite_slug_exists' ) ); ?> 219 var seedprod_slug_exists_url = "<?php echo $ajax_url; ?>"; 220 221 <?php $seedprod_upgrade_link = seedprod_lite_upgrade_link( '' ); ?> 222 223 <?php $url = seedprod_lite_get_plugins_install_url( 'all-in-one-seo-pack' ); ?> 224 var seedprod_seo_install_link = "<?php echo htmlspecialchars_decode( $url ); ?>"; 225 226 <?php $url = seedprod_lite_get_plugins_install_url( 'wpforms-lite' ); ?> 227 var seedprod_form_install_link = "<?php echo htmlspecialchars_decode( $url ); ?>"; 228 229 <?php $url = seedprod_lite_get_plugins_install_url( 'rafflepress' ); ?> 230 var seedprod_giveaway_install_link = "<?php echo htmlspecialchars_decode( $url ); ?>"; 231 232 <?php $url = seedprod_lite_get_plugins_install_url( 'google-analytics-for-wordpress' ); ?> 233 var seedprod_analytics_install_link = "<?php echo htmlspecialchars_decode( $url ); ?>"; 234 235 <?php 236 $url = seedprod_lite_get_plugins_activate_url( 'google-analytics-for-wordpress/googleanalytics.php' ); 237 ?> 238 239 var seedprod_analytics_activate_link = "<?php echo htmlspecialchars_decode( $url ); ?>"; 240 241 <?php 242 $url = seedprod_lite_get_plugins_activate_url( 'wpforms-lite/wpforms.php' ); 243 ?> 244 245 var seedprod_form_activate_link = "<?php echo htmlspecialchars_decode( $url ); ?>"; 246 247 <?php 248 $url = seedprod_lite_get_plugins_activate_url( 'all-in-one-seo-pack/all_in_one_seo_pack.php' ); 249 ?> 250 var seedprod_seo_activate_link = "<?php echo htmlspecialchars_decode( $url ); ?>"; 251 252 <?php $ajax_url = html_entity_decode( wp_nonce_url( 'admin-ajax.php?action=seedprod_lite_install_addon', 'seedprod_lite_install_addon' ) ); ?> 253 var seedprod_get_install_addon_url = "<?php echo $ajax_url; ?>"; 254 255 <?php $ajax_url = html_entity_decode( wp_nonce_url( 'admin-ajax.php?action=seedprod_lite_activate_addon', 'seedprod_lite_activate_addon' ) ); ?> 256 var seedprod_activate_addon_url = "<?php echo $ajax_url; ?>"; 257 258 <?php $ajax_url = html_entity_decode( wp_nonce_url( 'admin-ajax.php?action=seedprod_lite_deactivate_addon', 'seedprod_lite_deactivate_addon' ) ); ?> 259 var seedprod_deactivate_addon_url = "<?php echo $ajax_url; ?>"; 260 261 <?php $ajax_url = html_entity_decode( wp_nonce_url( 'admin-ajax.php?action=seedprod_lite_plugin_nonce', 'seedprod_lite_plugin_nonce' ) ); ?> 262 var seedprod_plugin_nonce_url = "<?php echo $ajax_url; ?>"; 263 264 <?php $ajax_url = html_entity_decode( wp_nonce_url( 'admin-ajax.php?action=seedprod_lite_dismiss_upsell', 'seedprod_lite_dismiss_upsell' ) ); ?> 265 var seedprod_dismiss_upsell = "<?php echo $ajax_url; ?>"; 266 267 <?php 268 $unfiltered_html= false; 269 if(current_user_can( 'unfiltered_html' )){ 270 $unfiltered_html = true; 271 } 272 ?> 273 274 var seedprod_data = 275 <?php 276 $seedprod_data = array( 277 'unfiltered_html' => $unfiltered_html, 278 'show_bottombar_cta' => $show_bottombar_cta, 279 'template_preview_path' => $template_preview_path, 280 'page_uuid' => $lpage_uuid, 281 'placeholder_image' => SEEDPROD_PLUGIN_URL . 'public/img/img-placeholder.png', 282 'placeholder_sm_image' => SEEDPROD_PLUGIN_URL . 'public/img/img-placeholder-sm.png', 283 'block_templates' => json_decode( $seedprod_lite_block_templates ), 284 'expire_times' => seedprod_lite_get_expire_times(), 285 'roles' => seedprod_lite_get_roles(), 286 'my_ip' => seedprod_lite_get_ip(), 287 'plugins_installed' => seedprod_lite_get_plugins_array(), 288 'giveaway_plugins_installed' => seedprod_lite_get_giveaway_plugins_list(), 289 'form_plugins_installed' => seedprod_lite_get_form_plugins_list(), 290 'seo_plugins_installed' => seedprod_lite_get_seo_plugins_list(), 291 'analytics_plugins_installed' => seedprod_lite_get_analytics_plugins_list(), 292 'page_type' => $settings['page_type'], 293 'current_user_name' => $current_user_name, 294 'current_user_email_hash' => $current_user_email_hash, 295 'current_user_email' => $current_user_email, 296 'free_templates_subscribed' => $free_templates_subscribed, 297 'preview_link' => $preview_link, 298 'icons' => $icons, 299 'googlefonts' => $fonts, 300 'api_token' => $seedprod_api_token, 301 'seedprod_user_id' => $seedprod_user_id, 302 'site_token' => $seedprod_site_token, 303 'license_key' => $license_key, 304 'page_path' => 'seedprod_lite', 305 'plugin_path' => SEEDPROD_PLUGIN_URL, 306 'web_path' => SEEDPROD_WEB_API_URL, 307 'home_url' => home_url(), 308 'upgrade_link' => $seedprod_upgrade_link, 309 'lpage' => $lpage, 310 'settings' => $settings, 311 'app_settings' => $seedprod_app_settings, 312 'block_options' => $block_options, 313 'timezones' => $timezones, 314 'times' => $times, 315 'template_dev_mode' => $template_dev_mode, 316 'template_dev_mode_url' => $template_dev_mode_url, 317 'template_dev_mode_password' => $template_dev_mode_password, 318 'email_integration_url' => $email_integration_url, 319 'per' => $per, 320 'active_license' => $active_license, 321 ); 322 323 //if (function_exists('wpforms')) { 324 $seedprod_data['wpforms'] = array( 325 'edit_form_url' => admin_url( 'admin.php?page=wpforms-builder&view=fields&form_id=' ), 326 'add_form_url' => admin_url( 'admin.php?page=wpforms-builder&view=setup' ), 327 'placeholder' => sprintf( '<img src="%s" width="80px" alt="WPForms Logo"/>', esc_url( SEEDPROD_PLUGIN_URL . 'public/img/plugin-wpforms.png' ) ), 328 ); 329 330 $rp_version = 'lite'; 331 if ( function_exists( 'rafflepress_pro_load_textdomain' ) ) { 332 $rp_version = 'pro'; 333 } 334 335 $seedprod_data['rafflepress'] = array( 336 'edit_form_url' => admin_url( 'admin.php?page=rafflepress_' . $rp_version . '_builder&id=$id$#/setup/$id$' ), 337 'add_form_url' => admin_url( 'admin.php?page=rafflepress_' . $rp_version . '_builder&id=0#/template' ), 338 'placeholder' => sprintf( '<img src="%s" width="80px" alt="RafflePress Logo"/>', esc_url( SEEDPROD_PLUGIN_URL . 'public/img/plugin-rp.png' ) ), 339 ); 340 //} 341 342 // Check if WooCommerce is active 343 if ( in_array( 'woocommerce/woocommerce.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) ) { 344 $seedprod_data['wc_active'] = true; 345 } else { 346 $seedprod_data['wc_active'] = false; 347 } 348 349 echo wp_json_encode( $seedprod_data ); 350 ?> 351 ; 352 353 jQuery('link[href*="forms.css"]').remove(); 354 jQuery('link[href*="common.css"]').remove(); 355 356 // var stop = true; 357 // jQuery(".sp-drag-section").on("drag", function (e) { 358 359 // stop = true; 360 361 // if (e.originalEvent.clientY < 150) { 362 // stop = false; 363 // scroll(-1) 364 // } 365 366 // if (e.originalEvent.clientY > (jQuery(window).height() - 150)) { 367 // stop = false; 368 // scroll(1) 369 // } 370 371 // }); 372 373 // jQuery(".draggable").on("dragend", function (e) { 374 // stop = true; 375 // }); 376 377 // var scroll = function (step) { 378 // var scrollY = jQuery(window).scrollTop(); 379 // jQuery(window).scrollTop(scrollY + step); 380 // if (!stop) { 381 // setTimeout(function () { scroll(step) }, 20); 382 // } 383 // } 384 </script> 385