Create New Item
×
Item Type
File
Folder
Item Name
×
Search file in folder and subfolders...
File Manager
/
wp-content
/
plugins
/
powerpack-elements
/
classes
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php use PowerpackElements\Classes\PP_Admin_Settings; use PowerpackElements\Classes\PP_Posts_Helper; if (!defined('ABSPATH')) { exit; } final class PP_Taxonomy_Thumbnail { public static $taxonomy_thumbnail_enable = 'disabled'; public static $taxonomies = array(); public static function init() { self::$taxonomy_thumbnail_enable = get_option('pp_elementor_taxonomy_thumbnail_enable'); self::$taxonomies = get_option('pp_elementor_taxonomy_thumbnail_taxonomies'); if (!self::$taxonomy_thumbnail_enable) { return; } add_action('admin_init', __CLASS__ . '::taxonomy_thumbnail_hooks'); add_action('admin_print_scripts', __CLASS__ . '::taxonomy_admin_scripts'); add_action('admin_print_styles', __CLASS__ . '::taxonomy_admin_styles'); } public static function taxonomy_admin_scripts() { if (!did_action('wp_enqueue_media')) { wp_enqueue_media(); } wp_enqueue_script('pp-taxonomy-thumbnail-upload', POWERPACK_ELEMENTS_URL . '/assets/js/pp-taxonomy-thumbnail.js', array('jquery'), null, false); } public static function taxonomy_admin_styles() { ?> <style> .column-taxonomy_thumbnail { width: 80px; } </style> <?php } public static function taxonomy_thumbnail_hooks() { if (!is_array(self::$taxonomies)) { return; } if (empty(self::$taxonomies)) { return; } $taxonomy_thumbnail_enable = self::$taxonomy_thumbnail_enable; $taxonomy_thumbnail_taxonomies = self::$taxonomies; if ('enabled' === $taxonomy_thumbnail_enable) { foreach (self::$taxonomies as $taxonomy) { add_filter('manage_' . $taxonomy . '_custom_column', __CLASS__ . '::taxonomy_thumbnail_taxonomy_rows', 15, 3); add_filter('manage_edit-' . $taxonomy . '_columns', __CLASS__ . '::taxonomy_thumbnail_taxonomy_columns'); add_action($taxonomy . '_edit_form_fields', __CLASS__ . '::taxonomy_thumbnail_edit_tag_form', 10, 2); add_action($taxonomy . '_add_form_fields', __CLASS__ . '::taxonomy_thumbnail_add_tag_form', 10); add_action('edit_term', __CLASS__ . '::taxonomy_thumbnail_save_term', 10, 3); add_action('create_term', __CLASS__ . '::taxonomy_thumbnail_save_term', 10, 3); } } } public static function taxonomy_thumbnail_save_term($term_id, $tt_id, $taxonomy) { if (isset($_POST['taxonomy_thumbnail_id'])) { update_term_meta($term_id, 'taxonomy_thumbnail_id', sanitize_text_field($_POST['taxonomy_thumbnail_id'])); } } public static function taxonomy_thumbnail_taxonomy_columns($original_columns) { $new_columns = $original_columns; array_splice($new_columns, 1); $new_columns['taxonomy_thumbnail'] = esc_html__('Image', 'powerpack'); return array_merge($new_columns, $original_columns); } public static function taxonomy_thumbnail_taxonomy_rows($row, $column_name, $term_id) { if ('taxonomy_thumbnail' === $column_name) { $html = '<div id="taxonomy_thumbnail_preview">'; $taxonomy_thumbnail_id = ''; $taxonomy_thumbnail_id = get_term_meta($term_id, 'taxonomy_thumbnail_id', true); if ('' !== $taxonomy_thumbnail_id) { $obj_taxonomy_thumbnail = wp_get_attachment_image_src($taxonomy_thumbnail_id, 'thumbnail'); if (!empty($obj_taxonomy_thumbnail)) { $taxonomy_thumbnail_img_url = $obj_taxonomy_thumbnail[0]; $html .= '<img id="taxonomy_thumbnail_preview_img" width="50" height="50" src="' . $taxonomy_thumbnail_img_url . '" >'; } } $html .= '</div>'; return $row . $html; } return $row; } public static function taxonomy_thumbnail_edit_tag_form($term, $taxonomy) { $taxonomy = get_taxonomy($taxonomy); $name = __('term', 'powerpack'); if (isset($taxonomy->labels->singular_name)) { $name = strtolower($taxonomy->labels->singular_name); } ?> <tr class="form-field"> <th scope="row" valign="top"><label for="description"><?php print esc_html__('Featured Image', 'powerpack'); ?></label></th> <td> <div id="taxonomy_thumbnail_preview"> <?php $taxonomy_thumbnail_id = ''; $taxonomy_thumbnail_id = get_term_meta($term->term_id, 'taxonomy_thumbnail_id', true); if ('' !== $taxonomy_thumbnail_id) { $obj_taxonomy_thumbnail = wp_get_attachment_image_src($taxonomy_thumbnail_id, 'thumbnail'); if (!empty($obj_taxonomy_thumbnail)) { $taxonomy_thumbnail_img_url = $obj_taxonomy_thumbnail[0]; ?> <img id="taxonomy_thumbnail_preview_img" width="150" height="150" src="<?php echo esc_url($taxonomy_thumbnail_img_url); ?>" ><br> <?php } } ?> </div> <input id="taxonomy_thumbnail_id" type="hidden" name="taxonomy_thumbnail_id" value="<?php echo esc_attr($taxonomy_thumbnail_id); ?>" /> <input id="upload_taxonomy_thumbnail_button" type="button" class="button button-primary" value="<?php echo esc_html__('Upload', 'powerpack'); ?>" /> <?php $delete_button_inline_css = 'display:none'; if ('' !== $taxonomy_thumbnail_id) { $delete_button_inline_css = ''; } ?> <input style="<?php echo $delete_button_inline_css; ?>" id="delete_taxonomy_thumbnail_button" type="button" class="button button-danger" value="<?php echo esc_html__('Delete', 'powerpack'); ?>" /> <div class="clear"></div> <?php ?> <span class="description"><?php printf(esc_html__('Add an image from media library to this %1$s.', 'powerpack'), esc_html($name)); ?></span> </td> </tr> <?php } public static function taxonomy_thumbnail_add_tag_form($taxonomy) { $taxonomy = get_taxonomy($taxonomy); $name = __('term', 'powerpack'); if (isset($taxonomy->labels->singular_name)) { $name = strtolower($taxonomy->labels->singular_name); } ?> <div class="form-field term-thumbnail-wrap"> <label for="description"><?php print esc_html__('Featured Image', 'powerpack'); ?></label> <div id="taxonomy_thumbnail_preview"> </div> <input id="taxonomy_thumbnail_id" type="hidden" name="taxonomy_thumbnail_id" value="" /> <input id="upload_taxonomy_thumbnail_button" type="button" class="button button-primary" value="<?php echo esc_html__('Upload', 'powerpack'); ?>" /> <?php $delete_button_inline_css = 'display:none'; ?> <input style="<?php echo $delete_button_inline_css; ?>" id="delete_taxonomy_thumbnail_button" type="button" class="button button-danger" value="<?php echo esc_html__('Delete', 'powerpack'); ?>" /> <div class="clear"></div> <?php ?> <span class="description"><?php printf(esc_html__('Add an image from media library to this %1$s.', 'powerpack'), esc_html($name)); ?></span> </div> <?php } } PP_Taxonomy_Thumbnail::init();