do_hooks(); } return self::$instance; } /** * Generator for Id of item meta */ public static function get_meta_key() { return Plugin::$slug . "_image_id"; } public static function get_taxonomies_ids() { return UtilsLocal::get_images_support_taxonomies(); } /** * Handle WP actions and filters. */ public function do_hooks() { $taxonomies = AdminTaxonomiesImprover::get_taxonomies_ids(); if ( is_array( $taxonomies ) && ! empty( $taxonomies ) ) { foreach ( $taxonomies as $taxonomy ) { // Add form inputs add_action( "{$taxonomy}_edit_form_fields", array( $this, "edit_term_fields" ) ); add_action( "{$taxonomy}_add_form_fields", array( $this, "add_term_fields" ) ); // Add columns add_filter( "manage_edit-{$taxonomy}_columns", array( $this, "term_column_value_header" ) ); add_filter( "manage_{$taxonomy}_custom_column", array( $this, "term_column_value" ), 10, 3 ); } // Save actions add_action( "created_term", array( $this, "save_category_fields" ), 10, 3 ); add_action( "edit_term", array( $this, "save_category_fields" ), 10, 3 ); // Scripts add_action( "admin_enqueue_scripts", array( $this, "enqueue_admin_scripts" ), 999 ); } } public function enqueue_admin_scripts() { $screen = get_current_screen(); $taxonomies = AdminTaxonomiesImprover::get_taxonomies_ids(); $do_enqueue = in_array( $screen->taxonomy, $taxonomies ); if ( $do_enqueue ) { // Custom CSS $custom_css = " table.wp-list-table .column-image { width: 52px; text-align: center; white-space: nowrap; } "; $handle = Plugin::$slug . "_admin_taxonomies_improver_styles"; wp_register_style( $handle, false ); wp_enqueue_style( $handle ); wp_add_inline_style( $handle, $custom_css ); // Enabling wp.media for Image picker wp_enqueue_media(); // Include image picker Utils::enqueue_public_script( "image-picker", "ImagePickerLocalization", [ "pickerSelector" => ".iksm-image-picker", "uploadButtonSelector" => ".upload-image-button", "removeButtonSelector" => ".remove-image-button", "placeholderURL" => esc_js( Utils::get_placeholder_image() ), "mediaTitle" => Utils::t( "Choose an image" ), "mediaButtonTitle" => Utils::t( "Use image" ) ] ); } } /** * Category thumbnail fields. */ public function add_term_fields() { ?>
term_id, self::get_meta_key(), true ); ?> "; } return $columns; } }