plugin_name = $plugin_name; $this->version = $version; } public function enqueue_styles( $hook_suffix ) { if ( strpos( $hook_suffix, 'ttdvr' ) !== false || ( isset( $_GET['post_type'] ) && 'ttdvr_document' === $_GET['post_type'] ) || ( isset( $_GET['taxonomy'] ) && 'ttdvr_doc_category' === $_GET['taxonomy'] ) ) { wp_enqueue_style( $this->plugin_name, TTDVR_PLUGIN_URL . 'assets/css/ttdvr-admin.css', array(), $this->version, 'all' ); // THE CLEAN WORKSPACE ENFORCER $clean_workspace_css = " div.notice:not(.ttdvr-notice), div.updated:not(.ttdvr-notice), div.error:not(.ttdvr-notice), div.warning:not(.ttdvr-notice), .update-nag, .betterdocs-notice, .elementor-message { display: none !important; } "; wp_add_inline_style( $this->plugin_name, $clean_workspace_css ); } } public function enqueue_scripts( $hook_suffix ) { if ( strpos( $hook_suffix, 'ttdvr' ) !== false || ( isset( $_GET['post_type'] ) && 'ttdvr_document' === $_GET['post_type'] ) ) { wp_enqueue_media(); } $js_file_path = TTDVR_PLUGIN_DIR . 'assets/js/ttdvr-admin.js'; $js_version = file_exists( $js_file_path ) ? filemtime( $js_file_path ) : $this->version; wp_enqueue_script( $this->plugin_name, TTDVR_PLUGIN_URL . 'assets/js/ttdvr-admin.js', array( 'jquery' ), $js_version, true ); $categories = get_terms( array( 'taxonomy' => 'ttdvr_doc_category', 'hide_empty' => false ) ); $cat_array = array(); if ( ! is_wp_error( $categories ) ) { foreach ( $categories as $cat ) { $cat_array[$cat->term_id] = $cat->name; } } $localized_data = array( 'ajaxurl' => admin_url( 'admin-ajax.php' ), 'nonce' => wp_create_nonce( 'ttdvr_admin_js_nonce' ), 'documentTitle' => esc_attr__( 'Document Title', '24tt-document-verifier' ), 'documentId' => esc_attr__( 'Document ID', '24tt-document-verifier' ), 'recipientName' => esc_attr__( 'Recipient Name', '24tt-document-verifier' ), 'specifyOther' => esc_attr__( 'Specify Other', '24tt-document-verifier' ), 'courseSubject' => esc_attr__( 'Course / Subject', '24tt-document-verifier' ), 'selectCategory' => esc_attr__( 'Select Category', '24tt-document-verifier' ), 'remove' => esc_html__( 'Remove', '24tt-document-verifier' ), 'documentTypeOptions' => array( '' => esc_html__( 'Select Document Type', '24tt-document-verifier' ), 'Letter' => esc_html__( 'Letter', '24tt-document-verifier' ), 'Certificate of Merit' => esc_html__( 'Certificate of Merit', '24tt-document-verifier' ), 'Certificate of Completion' => esc_html__( 'Certificate of Completion', '24tt-document-verifier' ), 'Memorandum of Understanding' => esc_html__( 'Memorandum of Understanding', '24tt-document-verifier' ), 'Proposal' => esc_html__( 'Proposal', '24tt-document-verifier' ), 'Invoice' => esc_html__( 'Invoice', '24tt-document-verifier' ), 'Receipt' => esc_html__( 'Receipt', '24tt-document-verifier' ), 'Quotation' => esc_html__( 'Quotation', '24tt-document-verifier' ), 'Contract/Agreement' => esc_html__( 'Contract/Agreement', '24tt-document-verifier' ), 'Company Resolution' => esc_html__( 'Company Resolution', '24tt-document-verifier' ), 'Offer' => esc_html__( 'Offer', '24tt-document-verifier' ), 'Business Letter' => esc_html__( 'Business Letter', '24tt-document-verifier' ), 'Other' => esc_html__( 'Other (specify below)', '24tt-document-verifier' ), ), 'categories' => $cat_array, ); wp_localize_script( $this->plugin_name, 'ttdvrAdminVars', $localized_data ); } public function add_plugin_admin_menu() { add_menu_page( esc_html__( '24TT Document Verifier Dashboard', '24tt-document-verifier' ), esc_html__( '24TT Document Verifier', '24tt-document-verifier' ), 'manage_ttdvr_documents', 'ttdvr-dashboard', array( $this, 'display_dashboard' ), 'dashicons-clipboard', 30 ); add_submenu_page( 'ttdvr-dashboard', esc_html__( 'Dashboard & Community', '24tt-document-verifier' ), esc_html__( 'Dashboard', '24tt-document-verifier' ), 'manage_ttdvr_documents', 'ttdvr-dashboard', array( $this, 'display_dashboard' ) ); add_submenu_page( 'ttdvr-dashboard', esc_html__( 'All Documents', '24tt-document-verifier' ), esc_html__( 'Documents', '24tt-document-verifier' ), 'manage_ttdvr_documents', 'edit.php?post_type=ttdvr_document' ); add_submenu_page( 'ttdvr-dashboard', esc_html__( 'Document Categories', '24tt-document-verifier' ), esc_html__( 'Categories', '24tt-document-verifier' ), 'manage_ttdvr_documents', 'edit-tags.php?taxonomy=ttdvr_doc_category&post_type=ttdvr_document' ); add_submenu_page( 'ttdvr-dashboard', esc_html__( 'Global Settings', '24tt-document-verifier' ), esc_html__( 'Settings', '24tt-document-verifier' ), 'manage_ttdvr_documents', 'ttdvr-settings', array( $this, 'display_settings' ) ); add_submenu_page( 'ttdvr-dashboard', esc_html__( 'Bulk Add Documents', '24tt-document-verifier' ), esc_html__( 'Bulk Add Documents', '24tt-document-verifier' ), 'manage_ttdvr_documents', 'ttdvr-tools', array( $this, 'display_tools' ) ); } /** * GROWTH ENGINEERING: Inject links into the WordPress Plugins page! */ public function add_plugin_row_meta( $links, $file ) { // Target our plugin specifically if ( strpos( $file, '24tt-document-verifier' ) !== false ) { $custom_links = array( 'docs' => '' . esc_html__( 'Documentation', '24tt-document-verifier' ) . '', 'facebook' => '' . esc_html__( 'Facebook Community', '24tt-document-verifier' ) . '', 'rate' => '' . esc_html__( 'Rate the plugin ★★★★★', '24tt-document-verifier' ) . '', ); $links = array_merge( $links, $custom_links ); } return $links; } public function display_dashboard() { require_once TTDVR_PLUGIN_DIR . 'admin/partials/ttdvr-admin-dashboard.php'; } public function display_settings() { require_once TTDVR_PLUGIN_DIR . 'admin/partials/ttdvr-admin-settings.php'; } public function display_tools() { require_once TTDVR_PLUGIN_DIR . 'admin/partials/ttdvr-admin-bulk.php'; } }