芝麻web文件管理V1.00
编辑当前文件:/home/fambnfli/public_html/tr/wp-content/plugins/coming-soon/app/lpage.php
prefix . 'posts'; $meta_tablename = $wpdb->prefix . 'postmeta'; $sql = "SELECT id,post_title as name,meta_value as uuid FROM $tablename p LEFT JOIN $meta_tablename pm ON (pm.post_id = p.ID)"; $sql .= " WHERE post_status != 'trash' AND post_type = 'page' AND meta_key = '_seedprod_page_uuid' "; $response = $wpdb->get_results( $sql ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared wp_send_json( $response ); } } /** * Check Slug. */ function seedprod_lite_slug_exists() { if ( check_ajax_referer( 'seedprod_lite_slug_exists' ) ) { if ( ! current_user_can( apply_filters( 'seedprod_lpage_capability', 'edit_others_posts' ) ) ) { wp_send_json_error(); } $post_name = isset( $_POST['post_name'] ) ? sanitize_text_field( wp_unslash( $_POST['post_name'] ) ) : ''; global $wpdb; $tablename = $wpdb->prefix . 'posts'; $sql = "SELECT post_name FROM $tablename"; $sql .= " WHERE post_name = %s"; $safe_sql = $wpdb->prepare( $sql, $post_name ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared $result = $wpdb->get_var( $safe_sql ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared if ( empty( $result ) ) { wp_send_json_success(); } else { wp_send_json_error(); } } } /** * New lpage. */ function seedprod_lite_new_lpage() { $get_page = isset( $_GET['page'] ) ? sanitize_text_field( wp_unslash( $_GET['page'] ) ) : null; // phpcs:ignore WordPress.Security.NonceVerification.Recommended $get_id = isset( $_GET['id'] ) ? sanitize_text_field( wp_unslash( $_GET['id'] ) ) : null; // phpcs:ignore WordPress.Security.NonceVerification.Recommended if ( null !== $get_page && 'seedprod_lite_template' == $get_page && null !== $get_id && '0' == $get_id ) { // check permissions if ( ! current_user_can( apply_filters( 'seedprod_lpage_capability', 'edit_others_posts' ) ) ) { wp_die(); } // check nonce if ( wp_verify_nonce( $_GET['_wpnonce'], 'seedprod_nonce' ) === false ) { wp_die( 'nonce check failed' ); } // get theme code $id = absint( $get_id ); $from = '&from='; $get_from = ! empty( $_GET['from'] ) ? sanitize_text_field( wp_unslash( $_GET['from'] ) ) : null; // phpcs:ignore WordPress.Security.NonceVerification.Recommended if ( null !== $get_from ) { $from = '&from=' . $get_from; } $type = 'lp'; $get_type = ! empty( $_GET['type'] ) ? sanitize_text_field( wp_unslash( $_GET['type'] ) ) : null; // phpcs:ignore WordPress.Security.NonceVerification.Recommended if ( null !== $get_type ) { $type = $get_type; } elseif ( null !== $get_from && ( 'page' == $get_from || 'post' == $get_from ) ) { // if we are coming from a page or post set the page type as post $theme_enabled = get_option( 'seedprod_theme_enabled' ); $theme_builder = seedprod_lite_cu( 'themebuilder' ); if ( ! empty( $theme_builder ) && ! empty( $theme_enabled ) ) { $type = 'post'; } } // base page settings require_once SEEDPROD_PLUGIN_PATH . 'resources/data-templates/basic-page.php'; $settings = json_decode( $seedprod_basic_lpage ); $settings->is_new = true; $settings->page_type = $type; $cpt = 'page'; // seedprod ctp types $cpt_types = array( 'cs', 'mm', 'p404', 'header', 'footer', 'part', 'page', ); // if is a template part set to true. $template_parts = array( 'header', 'footer', 'part', 'page', ); if ( in_array( $type, $cpt_types ) ) { $cpt = 'seedprod'; } $slug = ''; $lpage_name = ''; $menu_order = null; $conditions = null; // get temp themeplate data if this is a theme_template $get_theme_template = ! empty( $_GET['theme_template'] ) ? sanitize_text_field( wp_unslash( $_GET['theme_template'] ) ) : null; // phpcs:ignore WordPress.Security.NonceVerification.Recommended if ( null !== $get_theme_template && null !== $get_id && '0' == $get_id ) { $temp_theme_template_data = get_option( 'seedprod_temp_theme_template_data' ); if ( ! empty( $temp_theme_template_data ) ) { $temp_theme_template_data = json_decode( $temp_theme_template_data, true ); $menu_order = $temp_theme_template_data['template_priority']; $lpage_name = $temp_theme_template_data['template_name']; $conditions = $temp_theme_template_data['template_conditions']; // reset temp data update_option( 'seedprod_temp_theme_template_data', null ); } } if ( 'cs' == $type ) { $slug = 'sp-cs'; $lpage_name = $slug; $settings->no_conflict_mode = true; } if ( 'mm' == $type ) { $slug = 'sp-mm'; $lpage_name = $slug; $settings->no_conflict_mode = true; } if ( 'p404' == $type ) { $slug = 'sp-p404'; $lpage_name = $slug; $settings->no_conflict_mode = true; } if ( 'loginp' == $type ) { $slug = 'sp-login'; $lpage_name = $slug; $settings->no_conflict_mode = true; } // if is a template part set the template as blank if ( in_array( $type, $template_parts ) ) { $settings->template_id = 71; } $settings = wp_json_encode( $settings ); // Insert $id = wp_insert_post( array( 'menu_order' => $menu_order, 'comment_status' => 'closed', 'ping_status' => 'closed', 'post_content' => '', 'post_status' => 'draft', 'post_title' => 'seedprod', 'post_type' => $cpt, 'post_name' => $slug, 'post_content_filtered' => $settings, 'meta_input' => array( '_seedprod_page' => true, '_seedprod_page_uuid' => wp_generate_uuid4(), '_seedprod_page_template_type' => $type, ), ), true ); // record coming soon page_id if ( 'cs' == $type ) { update_option( 'seedprod_coming_soon_page_id', $id ); } if ( 'mm' == $type ) { update_option( 'seedprod_maintenance_mode_page_id', $id ); } if ( 'p404' == $type ) { update_option( 'seedprod_404_page_id', $id ); } if ( 'loginp' == $type ) { update_option( 'seedprod_login_page_id', $id ); } // If landing page set a temp name if ( 'lp' == $type ) { if ( is_numeric( $id ) ) { $lpage_name = esc_html__( 'New Page', 'coming-soon' ) . " (ID #$id)"; } else { $lpage_name = esc_html__( 'New Page', 'coming-soon' ); } } if ( in_array( $type, $template_parts ) ) { update_post_meta( $id, '_seedprod_is_theme_template', true ); update_post_meta( $id, '_seedprod_theme_template_condition', wp_json_encode( $conditions ) ); } wp_update_post( array( 'ID' => $id, 'post_title' => $lpage_name, ) ); // got straight to builder for template parts, other wise go to templates if ( in_array( $type, $template_parts ) ) { wp_safe_redirect( 'admin.php?page=seedprod_lite_builder&id=' . $id . '#/setup/' . $id . '/block-options' ); exit(); } else { wp_safe_redirect( 'admin.php?page=seedprod_lite_template&id=' . $id . $from . '#/template/' . $id ); exit(); } exit(); } } /** * lpage Datatable */ function seedprod_lite_lpage_datatable() { if ( check_ajax_referer( 'seedprod_nonce' ) ) { if ( ! current_user_can( apply_filters( 'seedprod_lpage_capability', 'edit_others_posts' ) ) ) { wp_send_json_error(); } $data = array( '' ); $current_page = 1; if ( ! empty( absint( $_GET['current_page'] ) ) ) { $current_page = absint( $_GET['current_page'] ); } $per_page = 10; $filter = null; if ( ! empty( $_GET['filter'] ) ) { $filter = sanitize_text_field( wp_unslash( $_GET['filter'] ) ); if ( 'all' == $filter ) { $filter = null; } } if ( ! empty( $_GET['s'] ) ) { $filter = null; } if ( ! empty( $filter ) ) { $post_status_compare = '='; if ( 'published' == $filter ) { $post_status = 'publish'; } if ( 'drafts' == $filter ) { $post_status = 'draft'; } if ( 'scheduled' == $filter ) { $post_status = 'future'; } if ( 'archived' == $filter ) { $post_status = 'trash'; } } else { $post_status_compare = '!='; $post_status = 'trash'; } $post_status_statement = ' post_status ' . $post_status_compare . ' %s '; if ( ! empty( $_GET['s'] ) ) { $search_term = '%' . trim( sanitize_text_field( wp_unslash( $_GET['s'] ) ) ) . '%'; } $order_by = 'id'; $order_by_direction = 'DESC'; if ( ! empty( $_GET['orderby'] ) ) { $orderby = sanitize_text_field( wp_unslash( $_GET['orderby'] ) ); if ( 'date' == $orderby ) { $order_by = 'post_modified'; } if ( 'name' == $orderby ) { $order_by = 'post_title'; } $direction = ! empty( $_GET['order'] ) ? sanitize_text_field( wp_unslash( $_GET['order'] ) ) : null; if ( 'desc' == $direction ) { $order_by_direction = 'DESC'; } else { $order_by_direction = 'ASC'; } } $order_by_statement = 'ORDER BY ' . $order_by . ' ' . $order_by_direction; $offset = 0; if ( empty( $_POST['s'] ) ) { $offset = ( $current_page - 1 ) * $per_page; } // Get records global $wpdb; $tablename = $wpdb->prefix . 'posts'; $meta_tablename = $wpdb->prefix . 'postmeta'; if ( empty( $_GET['s'] ) ) { $sql = "SELECT * FROM " . $tablename . " p LEFT JOIN " . $meta_tablename . " pm ON (pm.post_id = p.ID) WHERE post_type = 'page' AND meta_key = '_seedprod_page' AND " . $post_status_statement . ' ' . $order_by_statement . " LIMIT %d OFFSET %d"; $safe_sql = $wpdb->prepare( $sql, $post_status, $per_page, $offset ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared } else { $sql = "SELECT * FROM " . $tablename . " p LEFT JOIN " . $meta_tablename . " pm ON (pm.post_id = p.ID) WHERE post_type = 'page' AND meta_key = '_seedprod_page' AND " . $post_status_statement . " AND post_title LIKE %s " . $order_by_statement . " LIMIT %d OFFSET %d"; $safe_sql = $wpdb->prepare( $sql, $post_status, $search_term, $per_page, $offset ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared } $results = $wpdb->get_results( $safe_sql ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared $login_page_id = get_option( 'seedprod_login_page_id' ); $data = array(); foreach ( $results as $v ) { // Skip row to prevent current Login Page post from displaying here if ( $v->ID === $login_page_id ) { continue; } // Format Date // $modified_at = date(get_option('date_format').' '.get_option('time_format'), strtotime($v->post_modified)); $modified_at = gmdate( get_option( 'date_format' ), strtotime( $v->post_modified ) ); $posted_at = gmdate( get_option( 'date_format' ), strtotime( $v->post_date ) ); $url = get_permalink( $v->ID ); if ( 'publish' == $v->post_status ) { $status = 'Published'; } if ( 'draft' == $v->post_status ) { $status = 'Draft'; } if ( 'future' == $v->post_status ) { $status = 'Scheduled'; } if ( 'trash' == $v->post_status ) { $status = 'Trash'; } // Load Data $data[] = array( 'id' => $v->ID, 'name' => $v->post_title, 'status' => $status, 'post_status' => $v->post_status, 'url' => $url, 'modified_at' => $modified_at, 'posted_at' => $posted_at, ); } $totalitems = seedprod_lite_lpage_get_data_total( $filter ); $views = seedprod_lite_lpage_get_views( $filter ); $response = array( 'rows' => $data, 'totalitems' => $totalitems, 'totalpages' => ceil( $totalitems / 10 ), 'currentpage' => $current_page, 'views' => $views, ); wp_send_json( $response ); } } /** * Get data total. * * @param string $filter Filter(post status). * @return string $results Posts count. */ function seedprod_lite_lpage_get_data_total( $filter = null ) { if ( ! empty( $filter ) ) { $post_status_compare = '='; if ( 'published' == $filter ) { $post_status = 'publish'; } if ( 'drafts' == $filter ) { $post_status = 'draft'; } if ( 'scheduled' == $filter ) { $post_status = 'future'; } if ( 'archived' == $filter ) { $post_status = 'trash'; } } else { $post_status_compare = '!='; $post_status = 'trash'; } $post_status_statement = ' post_status ' . $post_status_compare . ' %s '; if ( ! empty( $_GET['s'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended $search_term = '%' . trim( sanitize_text_field( wp_unslash( $_GET['s'] ) ) ) . '%'; // phpcs:ignore WordPress.Security.NonceVerification.Recommended } global $wpdb; $tablename = $wpdb->prefix . 'posts'; $meta_tablename = $wpdb->prefix . 'postmeta'; if ( empty( $_GET['s'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended $sql = "SELECT count(*) FROM " . $tablename . " p LEFT JOIN " . $meta_tablename . " pm ON (pm.post_id = p.ID) WHERE post_type = 'page' AND meta_key = '_seedprod_page' AND " . $post_status_statement; $safe_sql = $wpdb->prepare( $sql, $post_status ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared } else { $sql = "SELECT * FROM " . $tablename . " p LEFT JOIN " . $meta_tablename . " pm ON (pm.post_id = p.ID) WHERE post_type = 'page' AND meta_key = '_seedprod_page' AND " . $post_status_statement . " AND post_title LIKE %s "; $safe_sql = $wpdb->prepare( $sql, $post_status, $search_term ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared } $results = $wpdb->get_var( $safe_sql ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared return $results; } /** * Get Views. * * @param string $filter Post filter. * @return string $return Posts count. */ function seedprod_lite_lpage_get_views( $filter = null ) { $views = array(); $current = ( ! empty( $filter ) ? $filter : 'all' ); $current = sanitize_text_field( $current ); global $wpdb; $tablename = $wpdb->prefix . 'posts'; $meta_tablename = $wpdb->prefix . 'postmeta'; // All link $sql = "SELECT count(*) FROM $tablename p LEFT JOIN $meta_tablename pm ON (pm.post_id = p.ID)"; $sql .= " WHERE 1 = 1 AND post_type = 'page' AND post_status != 'trash' AND meta_key = '_seedprod_page'"; $results = $wpdb->get_var( $sql ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared $class = ( 'all' == $current ? ' class="current"' : '' ); $all_url = remove_query_arg( 'filter' ); $views['all'] = $results; // Published link $sql = "SELECT count(*) FROM $tablename p LEFT JOIN $meta_tablename pm ON (pm.post_id = p.ID)"; $sql .= " WHERE 1 = 1 AND post_type = 'page' AND meta_key = '_seedprod_page' AND post_status = 'publish' "; $results = $wpdb->get_var( $sql ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared $running_url = add_query_arg( 'filter', 'publish' ); $class = ( 'publish' == $current ? ' class="current"' : '' ); $views['published'] = $results; // Drafts link $sql = "SELECT count(*) FROM $tablename p LEFT JOIN $meta_tablename pm ON (pm.post_id = p.ID)"; $sql .= " WHERE 1 = 1 AND post_type = 'page' AND meta_key = '_seedprod_page' AND post_status = 'draft' "; $results = $wpdb->get_var( $sql ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared $upcoming_url = add_query_arg( 'filter', 'drafts' ); $class = ( 'drafts' == $current ? ' class="current"' : '' ); $views['drafts'] = $results; // Scheduled link $sql = "SELECT count(*) FROM $tablename p LEFT JOIN $meta_tablename pm ON (pm.post_id = p.ID)"; $sql .= " WHERE 1 = 1 AND post_type = 'page' AND meta_key = '_seedprod_page' AND post_status = 'future' "; $results = $wpdb->get_var( $sql ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared $ended_url = add_query_arg( 'filter', 'scheduled' ); $class = ( 'scheduled' == $current ? ' class="current"' : '' ); $views['scheduled'] = $results; // Trash link $sql = "SELECT count(*) FROM $tablename p LEFT JOIN $meta_tablename pm ON (pm.post_id = p.ID)"; $sql .= " WHERE 1 = 1 AND post_type = 'page' AND meta_key = '_seedprod_page' AND post_status = 'trash' "; $results = $wpdb->get_var( $sql ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared $archived_url = add_query_arg( 'filter', 'archived' ); $class = ( 'archived' == $current ? ' class="current"' : '' ); $views['archived'] = $results; return $views; } /** * Duplicate lpage */ function seedprod_lite_duplicate_lpage() { if ( check_ajax_referer( 'seedprod_lite_duplicate_lpage' ) ) { if ( ! current_user_can( apply_filters( 'seedprod_lpage_capability', 'edit_others_posts' ) ) ) { wp_send_json_error(); } $id = ''; if ( ! empty( $_GET['id'] ) ) { $id = absint( $_GET['id'] ); } $post = get_post( $id ); $json = $post->post_content_filtered; $args = array( 'comment_status' => 'closed', 'ping_status' => 'closed', 'post_content' => $post->post_content, // 'post_content_filtered' => $post->post_content_filtered, 'post_status' => 'draft', 'post_title' => $post->post_title . '- Copy', 'post_type' => 'page', 'post_name' => '', 'meta_input' => array( '_seedprod_page' => true, '_seedprod_page_uuid' => wp_generate_uuid4(), ), ); $new_post_id = wp_insert_post( $args, true ); // reinsert json due to slash bug global $wpdb; $tablename = $wpdb->prefix . 'posts'; $wpdb->update( $tablename, array( 'post_content_filtered' => $json, // string ), array( 'ID' => $new_post_id ), array( '%s', // value1 ), array( '%d' ) ); wp_send_json( array( 'status' => true ) ); } } /** * Archive Selected lpage. */ function seedprod_lite_archive_selected_lpages() { if ( check_ajax_referer( 'seedprod_lite_archive_selected_lpages' ) ) { if ( current_user_can( apply_filters( 'seedprod_trash_pages_capability', 'list_users' ) ) ) { if ( ! empty( $_GET['ids'] ) ) { $ids = array_map( 'intval', explode( ',', sanitize_text_field( wp_unslash( $_GET['ids'] ) ) ) ); foreach ( $ids as $v ) { wp_trash_post( $v ); } wp_send_json( array( 'status' => true ) ); } } } } /** * Unarchive Selected lpage. */ function seedprod_lite_unarchive_selected_lpages( $ids ) { if ( check_ajax_referer( 'seedprod_lite_unarchive_selected_lpages' ) ) { if ( current_user_can( apply_filters( 'seedprod_unarchive_pages_capability', 'list_users' ) ) ) { if ( ! empty( $_GET['ids'] ) ) { $ids = array_map( 'intval', explode( ',', sanitize_text_field( wp_unslash( $_GET['ids'] ) ) ) ); foreach ( $ids as $v ) { wp_untrash_post( $v ); } wp_send_json( array( 'status' => true ) ); } } } } /** * Delete Archived lpage */ function seedprod_lite_delete_archived_lpages() { if ( check_ajax_referer( 'seedprod_lite_delete_archived_lpages' ) ) { if ( current_user_can( apply_filters( 'seedprod_archive_pages_capability', 'list_users' ) ) ) { if ( ! empty( $_GET['ids'] ) ) { $ids = array_map( 'intval', explode( ',', sanitize_text_field( wp_unslash( $_GET['ids'] ) ) ) ); foreach ( $ids as $v ) { wp_delete_post( $v ); } wp_send_json( array( 'status' => true ) ); } } } } /** * Save/Update lpage */ function seedprod_lite_save_lpage() { if ( check_ajax_referer( 'seedprod_nonce' ) ) { $has_permission = false; if ( current_user_can( apply_filters( 'seedprod_save_lpage_capability', 'edit_others_posts' ) ) ) { $has_permission = true; } // unfiltered html check if ( current_user_can( 'unfiltered_html' ) && ! defined( 'DISALLOW_UNFILTERED_HTML' ) || ( defined( 'DISALLOW_UNFILTERED_HTML' ) && ! DISALLOW_UNFILTERED_HTML ) ) { $has_permission = true; } else { $has_permission = false; } $sp_post = $_POST; $sp_current_user = wp_get_current_user(); if ( metadata_exists( 'user', $sp_current_user->ID, 'seedprod_personalization_preferences' ) && $sp_post['personalization_preferences'] ) { // Update personalization preferences. update_user_meta( $sp_current_user->ID, 'seedprod_personalization_preferences', $sp_post['personalization_preferences'] ); } else { // Preference array. $user_personalization_preferences_schema = array( 'show_templatetag_settings' => true, 'show_woocommerce_templatetag_settings' => true, 'show_edd_templatetag_settings' => true, 'show_entry_settings' => true, 'show_entry_settings_2' => true, 'show_entry_settings_4' => true, 'show_entry_settings_5' => true, 'show_entry_settings_3' => false, 'show_entry_settings_6' => true, 'show_layoutnav' => false, ); // Save personalization preferences. delete_user_meta( $sp_current_user->ID, 'seedprod_personalization_preferences' ); // Set default user personalization preferences. add_user_meta( $sp_current_user->ID, 'seedprod_personalization_preferences', wp_json_encode( $user_personalization_preferences_schema ), true ); } if ( false === $has_permission ) { header( 'Content-Type: application/json' ); header( 'Status: 400 Bad Request' ); echo '0'; exit(); } // clean slashes post $sp_post['lpage_html'] = stripslashes_deep( $sp_post['lpage_html'] ); // remove unneeded code $html = $sp_post['lpage_html']; if ( ! empty( $html ) ) { $html = preg_replace( "'
START-REMOVE
[\s\S]+?
END-REMOVE
'", '', $html ); $html = preg_replace( "'
START-COUNTDOWN-REMOVE
[\s\S]+?
END-COUNTDOWN-REMOVE
'", '', $html ); $html = preg_replace( "'seedprod-jscode'", 'script', $html ); $html = preg_replace( "''", '', $html ); $html = preg_replace( "''", '', $html ); // html custom comment $html = preg_replace( "'--!'", '-->', $html ); $html = preg_replace( "'!--'", '/', '', $current_content ); // } } } $settings['page_type'] = sanitize_text_field( wp_unslash( $_POST['lpage_type'] ) ); // set post type to landong page if they do not have the theme builder $theme_enabled = get_option( 'seedprod_theme_enabled' ); $theme_builder = seedprod_lite_cu( 'themebuilder' ); if ( 'post' == $settings['page_type'] && empty( $theme_builder ) ) { $settings['page_type'] = 'lp'; } if ( 'post' == $settings['page_type'] && ! empty( $theme_builder ) && empty( $theme_enabled ) ) { $settings['page_type'] = 'lp'; } // save settings // $r = wp_update_post( // array( // 'ID' => $lpage_id, // 'post_title'=>sanitize_text_field($_POST['lpage_name']), // 'post_content_filtered'=> json_encode($settings), // 'post_name' => sanitize_title($_POST['lpage_slug']), // ) // ); global $wpdb; $tablename = $wpdb->prefix . 'posts'; $r = $wpdb->update( $tablename, array( 'post_title' => isset( $_POST['lpage_name'] ) ? sanitize_text_field( wp_unslash( $_POST['lpage_name'] ) ) : '', 'post_content_filtered' => wp_json_encode( $settings ), 'post_name' => isset( $_POST['lpage_slug'] ) ? sanitize_title( wp_unslash( $_POST['lpage_slug'] ) ) : '', ), array( 'ID' => $lpage_id ), array( '%s', '%s', '%s', ), array( '%d' ) ); $status = 'updated'; } $response = array( 'status' => $status, 'id' => $lpage_id, 'code' => $template_code, ); wp_send_json( $response ); } } /** * Get template code. * * @param string $id Post ID. * @return string $code Response message/Error message. */ function seedprod_lite_get_template_code( $id ) { // Get themes $code = ''; $apikey = get_option( 'seedprod_api_token' ); if ( empty( $apikey ) ) { $url = SEEDPROD_API_URL . 'templates-preview?id=' . $id . '&filter=template_code&api_token=' . $apikey; } else { $url = SEEDPROD_API_URL . 'templates?id=' . $id . '&filter=template_code&api_token=' . $apikey; } $response = wp_remote_get( $url ); if ( is_wp_error( $response ) ) { $code = $response->get_error_message(); } else { $response_code = wp_remote_retrieve_response_code( $response ); if ( '200' == $response_code ) { // set_transient('seedprod_template_code_'.$id,$response['body'],86400); $code = $response['body']; // error_log($code); } else { $code = __( "
Please enter a valid license key to access the themes. You can still proceed to create a page with the default theme.
Click to continue →
", 'coming-soon' ); } } return $code; } /** * Get namespaced custom CSS. * * @return void */ function seedprod_lite_get_namespaced_custom_css() { if ( check_ajax_referer( 'seedprod_lite_get_namespaced_custom_css' ) ) { if ( ! current_user_can( apply_filters( 'seedprod_lpage_capability', 'edit_others_posts' ) ) ) { wp_send_json_error(); } if ( ! empty( $_POST['css'] ) ) { $css = sanitize_text_field( wp_unslash( $_POST['css'] ) ); require_once SEEDPROD_PLUGIN_PATH . 'app/includes/seedprod_lessc.inc.php'; $less = new seedprod_lessc(); $style = $less->parse( '.sp-html {' . $css . '}' ); // echo $style; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped echo ''; exit(); } } } function seedprod_lite_dehydrate( &$object ) { foreach ( $object as $key => &$value ) { if ( is_object( $value ) || is_array( $value ) ) { // Recurse into objects and arrays. seedprod_lite_dehydrate( $value ); } elseif ( $value === '' && $key != 'post_type' ) { // Remove empty string values. unset( $object->$key ); } } }