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