File "class-pp-taxonomy-thumbnail.php"

Full path: /home/kosmetik/public_html/wp-content/plugins/powerpack-elements/classes/class-pp-taxonomy-thumbnail.php
File size: 7.29 B
MIME-type: text/x-php
Charset: utf-8

Download   Open   Edit   Advanced Editor   Back

<?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();