<?php
/**
* Cherry addons tools class
*/
// If this file is called directly, abort.
if ( ! defined( 'WPINC' ) ) {
die;
}
if ( ! class_exists( 'Jet_Reviews_Tools' ) ) {
/**
* Define Jet_Reviews_Tools class
*/
class Jet_Reviews_Tools {
/**
* A reference to an instance of this class.
*
* @since 1.0.0
* @var object
*/
private static $instance = null;
/**
* Get post types options list
*
* @return array
*/
public function get_post_types() {
$post_types = get_post_types( array( 'public' => true ), 'objects' );
$deprecated = apply_filters(
'jet-reviews/post-types-list/deprecated',
array(
'attachment',
'elementor_library',
'jet-theme-core',
'jet-menu',
'jet-engine',
'jet-engine-booking',
'jet-popup',
'jet-smart-filters',
'jet-woo-builder',
)
);
$result = array();
if ( empty( $post_types ) ) {
return $result;
}
foreach ( $post_types as $slug => $post_type ) {
if ( in_array( $slug, $deprecated ) ) {
continue;
}
$result[ $slug ] = $post_type->label;
}
return $result;
}
/**
* [get_post_types_options description]
* @return [type] [description]
*/
public function get_post_types_options() {
$post_types = $this->get_post_types();
$post_types_options = array(
array(
'label' => esc_html__( 'All', 'jet-reviews' ),
'value' => '',
)
);
foreach ( $post_types as $slug => $name ) {
$post_types_options[] = array(
'label' => $name,
'value' => $slug,
);
}
return $post_types_options;
}
/**
* Get categories list.
*
* @return array
*/
public function get_categories() {
$categories = get_categories();
if ( empty( $categories ) || ! is_array( $categories ) ) {
return array();
}
return wp_list_pluck( $categories, 'name', 'term_id' );
}
/**
* [get_content_allowed_html description]
* @return [type] [description]
*/
public function get_content_allowed_html() {
return array(
'a' => array(
'href' => true,
'title' => true,
),
'br' => array(),
'em' => array(),
'strong' => array()
);
}
/**
* [get_editable_roles description]
* @return [type] [description]
*/
public function get_roles_options() {
global $wp_roles;
$all_roles = $wp_roles->roles;
$roles_options = array();
foreach ( $all_roles as $role_slug => $role_data ) {
$roles_options[] = array(
'label' => $role_data['name'],
'value' => $role_slug,
);
}
$roles_options[] = array(
'label' => esc_html__( 'Guest', 'jet-reviews' ),
'value' => 'guest',
);
return $roles_options;
}
/**
* [human_time_diff_by_date description]
* @param boolean $date [description]
* @return [type] [description]
*/
public function human_time_diff_by_date( $date = false ) {
if ( ! $date ) {
return false;
}
$date_time = strtotime( $date );
$after = esc_html__( ' ago', 'jet-reviews' );
return human_time_diff( $date_time, current_time( 'timestamp' ) ) . $after;
}
/**
* [get_post_review_type_data description]
* @return [type] [description]
*/
public function get_post_review_type_data() {
$post_type = get_post_type( get_the_ID() );
$post_type_data = jet_reviews()->settings->get_post_type_data( $post_type );
$is_exist = jet_reviews()->reviews_manager->data->is_review_type_exist( $post_type_data['review_type'] );
if ( $is_exist ) {
$review_type = $post_type_data['review_type'];
} else {
$review_type = 'default';
}
$review_type_data = \Jet_Reviews\Reviews\Data::get_instance()->get_review_type( $post_type_data['review_type'] );
if ( ! empty( $review_type_data ) ) {
$review_type_data = $review_type_data[0];
$review_type_data['fields'] = maybe_unserialize( $review_type_data['fields'] );
return $review_type_data;
}
return false;
}
/**
* [get_current_post_data description]
* @return [type] [description]
*/
public function get_current_post_data() {
$post_id = get_the_ID();
return array(
'id' => $post_id,
'title' => get_the_title( $post_id ),
'excerpt' => '',
'image_url' => get_the_post_thumbnail_url( $post_id ),
);
}
/**
* Returns columns classes string
* @param [type] $columns [description]
* @return [type] [description]
*/
public function col_classes( $columns = array() ) {
$columns = wp_parse_args( $columns, array(
'desk' => 1,
'tab' => 1,
'mob' => 1,
) );
$classes = array();
foreach ( $columns as $device => $cols ) {
if ( ! empty( $cols ) ) {
$classes[] = sprintf( 'col-%1$s-%2$s', $device, $cols );
}
}
return implode( ' ' , $classes );
}
/**
* Returns disable columns gap nad rows gap classes string
*
* @param string $use_cols_gap [description]
* @param string $use_rows_gap [description]
* @return [type] [description]
*/
public function gap_classes( $use_cols_gap = 'yes', $use_rows_gap = 'yes' ) {
$result = array();
foreach ( array( 'cols' => $use_cols_gap, 'rows' => $use_rows_gap ) as $element => $value ) {
if ( 'yes' !== $value ) {
$result[] = sprintf( 'disable-%s-gap', $element );
}
}
return implode( ' ', $result );
}
/**
* Returns image size array in slug => name format
*
* @return array
*/
public function get_image_sizes() {
global $_wp_additional_image_sizes;
$sizes = get_intermediate_image_sizes();
$result = array();
foreach ( $sizes as $size ) {
if ( in_array( $size, array( 'thumbnail', 'medium', 'medium_large', 'large' ) ) ) {
$result[ $size ] = ucwords( trim( str_replace( array( '-', '_' ), array( ' ', ' ' ), $size ) ) );
} else {
$result[ $size ] = sprintf(
'%1$s (%2$sx%3$s)',
ucwords( trim( str_replace( array( '-', '_' ), array( ' ', ' ' ), $size ) ) ),
$_wp_additional_image_sizes[ $size ]['width'],
$_wp_additional_image_sizes[ $size ]['height']
);
}
}
return array_merge( array( 'full' => esc_html__( 'Full', 'jet-reviews' ), ), $result );
}
/**
* Returns icons data list.
*
* @return array
*/
public function get_theme_icons_data() {
$default = array(
'icons' => false,
'format' => 'fa %s',
'file' => false,
);
/**
* Filter default icon data before useing
*
* @var array
*/
$icon_data = apply_filters( 'jet-reviews/controls/icon/data', $default );
$icon_data = array_merge( $default, $icon_data );
return $icon_data;
}
/**
* Returns allowed order by fields for options
*
* @return array
*/
public function orderby_arr() {
return array(
'none' => esc_html__( 'None', 'jet-reviews' ),
'ID' => esc_html__( 'ID', 'jet-reviews' ),
'author' => esc_html__( 'Author', 'jet-reviews' ),
'title' => esc_html__( 'Title', 'jet-reviews' ),
'name' => esc_html__( 'Name (slug)', 'jet-reviews' ),
'date' => esc_html__( 'Date', 'jet-reviews' ),
'modified' => esc_html__( 'Modified', 'jet-reviews' ),
'rand' => esc_html__( 'Rand', 'jet-reviews' ),
'comment_count' => esc_html__( 'Comment Count', 'jet-reviews' ),
'menu_order' => esc_html__( 'Menu Order', 'jet-reviews' ),
);
}
/**
* Returns allowed order fields for options
*
* @return array
*/
public function order_arr() {
return array(
'desc' => esc_html__( 'Descending', 'jet-reviews' ),
'asc' => esc_html__( 'Ascending', 'jet-reviews' ),
Loading ...