EWD_UFAQ_FAQ_POST_TYPE ) ) ) ) { return; } wp_safe_redirect( admin_url( 'index.php?page=ewd-ufaq-getting-started' ) ); exit; } /** * Create the installation admin page * @since 2.0.0 */ public function register_install_screen() { add_dashboard_page( esc_html__( 'Ultimate FAQs - Welcome!', 'ultimate-faqs' ), esc_html__( 'Ultimate FAQs - Welcome!', 'ultimate-faqs' ), 'manage_options', 'ewd-ufaq-getting-started', array($this, 'display_install_screen') ); } /** * Hide the installation admin page from the WordPress sidebar menu * @since 2.0.0 */ public function hide_install_screen_menu_item() { remove_submenu_page( 'index.php', 'ewd-ufaq-getting-started' ); } /** * Create an FAQ category * @since 2.0.0 */ public function create_category() { global $ewd_ufaq_controller; if ( ! check_ajax_referer( 'ewd-ufaq-getting-started', 'nonce' ) || ! current_user_can( $ewd_ufaq_controller->settings->get_setting( 'access-role' ) ) ) { ewdufaqHelper::admin_nopriv_ajax(); } $category_name = isset( $_POST['category_name'] ) ? sanitize_text_field( $_POST['category_name'] ) : ''; $category_description = isset( $_POST['category_description'] ) ? sanitize_textarea_field( $_POST['category_description'] ) : ''; $category_term_id = wp_insert_term( $category_name, EWD_UFAQ_FAQ_CATEGORY_TAXONOMY, array('description' => $category_description) ); echo json_encode ( array( 'category_name' => $category_name, 'category_id' => $category_term_id['term_id'] ) ); exit(); } public function create_faq() { global $ewd_ufaq_controller; if ( ! check_ajax_referer( 'ewd-ufaq-getting-started', 'nonce' ) || ! current_user_can( $ewd_ufaq_controller->settings->get_setting( 'access-role' ) ) ) { ewdufaqHelper::admin_nopriv_ajax(); } $args = array( 'post_title' => isset( $_POST['faq_question'] ) ? sanitize_text_field( $_POST['faq_question'] ) : '', 'post_content' => isset( $_POST['faq_answer'] ) ? sanitize_text_field( $_POST['faq_answer'] ) : '', 'post_status' => 'publish', 'post_type' => EWD_UFAQ_FAQ_POST_TYPE ); $faq_post_id = wp_insert_post( $args ); if ( isset( $_POST['faq_category'] ) and $_POST['faq_category'] ) { wp_set_post_terms( $faq_post_id, sanitize_text_field( $_POST['faq_category'] ), EWD_UFAQ_FAQ_CATEGORY_TAXONOMY ); } exit(); } /** * Add in a page with the ultimate-faqs shortcode * @since 2.0.0 */ public function add_faqs_page() { global $ewd_ufaq_controller; if ( ! check_ajax_referer( 'ewd-ufaq-getting-started', 'nonce' ) || ! current_user_can( $ewd_ufaq_controller->settings->get_setting( 'access-role' ) ) ) { ewdufaqHelper::admin_nopriv_ajax(); } $args = array( 'post_title' => isset($_POST['faq_page_title'] ) ? sanitize_text_field( $_POST['faq_page_title'] ) : '', 'post_content' => '
', 'post_status' => 'publish', 'post_type' => 'page' ); $post_id = wp_insert_post( $args ); if ( $post_id ) { $ewd_ufaq_controller->settings->set_setting( 'faq-page', $post_id ); $ewd_ufaq_controller->settings->save_settings(); } exit(); } /** * Set a number of key options selected during the walk-through process * @since 2.0.0 */ public function set_options() { global $ewd_ufaq_controller; if ( ! check_ajax_referer( 'ewd-ufaq-getting-started', 'nonce' ) || ! current_user_can( $ewd_ufaq_controller->settings->get_setting( 'access-role' ) ) ) { ewdufaqHelper::admin_nopriv_ajax(); } $ewd_ufaq_options = get_option( 'ewd-ufaq-settings' ); if ( isset( $_POST['faq_accordion'] ) ) { $ewd_ufaq_options['faq-accordion'] = intval( $_POST['faq_accordion'] ); } if ( isset( $_POST['disable_faq_toggle'] ) ) { $ewd_ufaq_options['disable-faq-toggle'] = intval( $_POST['disable_faq_toggle'] ); } if ( isset( $_POST['group_by_category'] ) ) { $ewd_ufaq_options['group-by-category'] = intval( $_POST['group_by_category'] ); } if ( isset( $_POST['order_by_setting'] ) ) { $ewd_ufaq_options['faq-order-by'] = sanitize_text_field( $_POST['order_by_setting'] ); } update_option( 'ewd-ufaq-settings', $ewd_ufaq_options ); exit(); } /** * Enqueue the admin assets necessary to run the walk-through and display it nicely * @since 2.0.0 */ public function admin_enqueue() { if ( ! isset( $_GET['page'] ) or $_GET['page'] != 'ewd-ufaq-getting-started' ) { return; } wp_enqueue_style( 'ewd-ufaq-admin-css', EWD_UFAQ_PLUGIN_URL . '/assets/css/admin.css', array(), EWD_UFAQ_VERSION ); wp_enqueue_style( 'ewd-ufaq-sap-admin-css', EWD_UFAQ_PLUGIN_URL . '/lib/simple-admin-pages/css/admin.css', array(), EWD_UFAQ_VERSION ); wp_enqueue_style( 'ewd-ufaq-welcome-screen', EWD_UFAQ_PLUGIN_URL . '/assets/css/ewd-ufaq-welcome-screen.css', array(), EWD_UFAQ_VERSION ); wp_enqueue_style( 'ewd-ufaq-admin-settings-css', EWD_UFAQ_PLUGIN_URL . '/lib/simple-admin-pages/css/admin-settings.css', array(), EWD_UFAQ_VERSION ); wp_enqueue_script( 'ewd-ufaq-getting-started', EWD_UFAQ_PLUGIN_URL . '/assets/js/ewd-ufaq-welcome-screen.js', array( 'jquery' ), EWD_UFAQ_VERSION ); wp_enqueue_script( 'ewd-ufaq-admin-settings-js', EWD_UFAQ_PLUGIN_URL . '/lib/simple-admin-pages/js/admin-settings.js', array( 'jquery' ), EWD_UFAQ_VERSION ); wp_enqueue_script( 'ewd-ufaq-admin-spectrum-js', EWD_UFAQ_PLUGIN_URL . '/lib/simple-admin-pages/js/spectrum.js', array( 'jquery' ), EWD_UFAQ_VERSION ); wp_localize_script( 'ewd-ufaq-getting-started', 'ewd_ufaq_getting_started', array( 'nonce' => wp_create_nonce( 'ewd-ufaq-getting-started' ) ) ); } /** * Output the HTML of the walk-through screen * @since 2.0.0 */ public function display_install_screen() { global $ewd_ufaq_controller; $faq_accordion = $ewd_ufaq_controller->settings->get_setting( 'faq-accordion' ); $disable_faq_toggle = $ewd_ufaq_controller->settings->get_setting( 'disable-faq-toggle' ); $group_by_category = $ewd_ufaq_controller->settings->get_setting( 'group-by-category' ); $faq_order_by = $ewd_ufaq_controller->settings->get_setting( 'faq-order-by' ); ?>