<?php
if ( ! defined('ABSPATH')) exit; // if direct access
add_filter('wcps_metabox_navs', 'wcps_metabox_navs_edd');
function wcps_metabox_navs_edd($tabs){
global $post;
$post_id = $post->ID;
$wcps_options = get_post_meta($post_id,'wcps_options', true);
$current_tab = isset($wcps_options['current_tab']) ? $wcps_options['current_tab'] : 'layouts';
$slider_for = !empty($wcps_options['slider_for']) ? $wcps_options['slider_for'] : 'products';
$tabs[] = array(
'id' => 'query_edd_downloads',
'title' => sprintf(__('%s Query edd downloads','woocommerce-products-slider'),'<i class="fas fa-qrcode"></i>'),
'priority' => 3,
'active' => ($current_tab == 'query_edd_downloads') ? true : false,
'data_visible' => 'edd_downloads',
'hidden' => ($slider_for == 'products')? true : false || ($slider_for == 'orders')? true : false || ($slider_for == 'categories')? true : false || ($slider_for == 'dokan_vendors')? true : false,
);
return $tabs;
}
add_filter('wcps_slider_for_args', 'wcps_slider_for_args_edd');
function wcps_slider_for_args_edd($args){
$args['edd_downloads'] = __('EDD downloads', 'woocommerce-products-slider');
return $args;
}
add_action('wcps_metabox_content_query_edd_downloads', 'wcps_metabox_content_query_edd_downloads');
if(!function_exists('wcps_metabox_content_query_edd_downloads')) {
function wcps_metabox_content_query_edd_downloads($post_id){
$settings_tabs_field = new settings_tabs_field();
$wcps_options = get_post_meta( $post_id, 'wcps_options', true );
$downloads_query = !empty($wcps_options['edd_downloads_query']) ? $wcps_options['edd_downloads_query'] : array();
$posts_per_page = isset($downloads_query['posts_per_page']) ? $downloads_query['posts_per_page'] : 10;
$query_order = isset($downloads_query['order']) ? $downloads_query['order'] : 'DESC';
$query_orderby = isset($downloads_query['orderby']) ? $downloads_query['orderby'] : 'ID';
$taxonomies = !empty($downloads_query['taxonomies']) ? $downloads_query['taxonomies'] : array();
$taxonomy_relation = !empty($downloads_query['taxonomy_relation']) ? $downloads_query['taxonomy_relation'] : 'OR';
$post_ids = isset($downloads_query['post_ids']) ? $downloads_query['post_ids'] : '';
//var_dump($taxonomies);
?>
<div class="section">
<div class="section-title">Query edd downloads</div>
<p class="description section-description">Setup edd downloads query settings.</p>
<?php
$args = array(
'id' => 'posts_per_page',
'parent' => 'wcps_options[edd_downloads_query]',
'title' => __('Max number of download','woocommerce-products-slider'),
'details' => __('Set custom number you want to display maximum number of download','woocommerce-products-slider'),
'type' => 'text',
'value' => $posts_per_page,
'default' => '10',
'placeholder' => '10',
);
$settings_tabs_field->generate_field($args);
$wcps_allowed_taxonomies = apply_filters('wcps_allowed_taxonomies', array('download_category', 'download_tag'));
ob_start();
$post_types = array('download');
$post_taxonomies = array();
$post_taxonomies = get_object_taxonomies( $post_types );
if(!empty($post_taxonomies)){
?>
<div class="expandable sortable">
<?php
foreach ($post_taxonomies as $taxonomy ) {
$terms = isset($taxonomies[$taxonomy]['terms']) ? $taxonomies[$taxonomy]['terms'] : array();
$terms_relation = isset($taxonomies[$taxonomy]['terms_relation']) ? $taxonomies[$taxonomy]['terms_relation'] : 'IN';
if(!in_array($taxonomy, $wcps_allowed_taxonomies)) continue;
//if($taxonomy != 'product_cat' && $taxonomy != 'product_tag') continue;
$the_taxonomy = get_taxonomy($taxonomy);
$args=array('orderby' => 'name', 'order' => 'ASC', 'taxonomy' => $taxonomy, 'hide_empty' => false);
$categories_all = get_categories($args);
?>
<div class="item">
<div class="element-title header ">
<span class="expand"><i class="fas fa-expand"></i><i class="fas fa-compress"></i></span>
<?php
if(!empty($terms)):
?><i class="fas fa-check"></i><?php
else:
?><i class="fas fa-times"></i><?php
endif;?>
<span class="expand"><?php echo $the_taxonomy->labels->name; ?> - <?php echo $taxonomy; ?></span>
</div>
<div class="element-options options">
<?php
$term_list = array();
foreach($categories_all as $category_info){
$term_list[$category_info->cat_ID] = $category_info->cat_name.'('.$category_info->count.')';
}
$args = array(
'id' => 'terms',
'parent' => 'wcps_options[edd_downloads_query][taxonomies]['.$taxonomy.']',
'title' => __('Select terms','woocommerce-products-slider'),
'details' => __('Choose some terms.','woocommerce-products-slider'),
'type' => 'select',
'multiple' => true,
'value' => $terms,
'args' => $term_list,
'default' => array(),
);
$settings_tabs_field->generate_field($args);
$args = array(
'id' => 'terms_relation',
'css_id' => $taxonomy.'_terms_relation',
'parent' => 'wcps_options[edd_downloads_query][taxonomies]['.$taxonomy.']',
'title' => __('Terms relation','woocommerce-products-slider'),
'details' => __('Choose term relation.','woocommerce-products-slider'),
'type' => 'radio',
'value' => $terms_relation,
'default' => 'IN',
'args' => array(
'IN'=>__('IN','woocommerce-products-slider'),
'NOT IN'=>__('NOT IN','woocommerce-products-slider'),
'AND'=>__('AND','woocommerce-products-slider'),
'EXISTS'=>__('EXISTS','woocommerce-products-slider'),
'NOT EXISTS'=>__('NOT EXISTS','woocommerce-products-slider'),
),
);
$settings_tabs_field->generate_field($args, $post_id);
?>
</div>
</div>
<?php
}
?>
</div>
<?php
}
else{
echo 'No categories found.';
}
$html = ob_get_clean();
$args = array(
'id' => 'wcps_categories',
'title' => __('Download taxonomy & terms', 'woocommerce-products-slider'),
'details' => __('Choose download taxonomy & terms. click to expand and see there is categories or terms you can select.', 'woocommerce-products-slider'),
'type' => 'custom_html',
'html' => $html,
);
$settings_tabs_field->generate_field($args);
$args = array(
'id' => 'taxonomy_relation',
'parent' => 'wcps_options[edd_downloads_query]',
'title' => __('Taxonomy relation','woocommerce-products-slider'),
'details' => __('Set taxonomy relation.','woocommerce-products-slider'),
'type' => 'radio',
'value' => $taxonomy_relation,
'default' => 'OR',
'args' => array(
'OR'=>__('OR','woocommerce-products-slider'),
'AND'=>__('AND','woocommerce-products-slider'),
),
);
$settings_tabs_field->generate_field($args);
$args = array(
'id' => 'order',
'parent' => 'wcps_options[edd_downloads_query]',
'title' => __('Query order','woocommerce-products-slider'),
'details' => __('Set query order.','woocommerce-products-slider'),
'type' => 'select',
'value' => $query_order,
'default' => 'DESC',
'args' => array(
'DESC'=>__('Descending','woocommerce-products-slider'),
'ASC'=>__('Ascending','woocommerce-products-slider'),
),
);
$settings_tabs_field->generate_field($args);
$args = array(
'id' => 'orderby',
'parent' => 'wcps_options[edd_downloads_query]',
'title' => __('Query orderby','woocommerce-products-slider'),
'details' => __('Set query orderby.','woocommerce-products-slider'),
'type' => 'select',
'value' => $query_orderby,
'default' => 'DESC',
'args' => array(
'ID'=>__('ID','woocommerce-products-slider'),
'display_name'=>__('display name','woocommerce-products-slider'),
'user_login'=>__('user login','woocommerce-products-slider'),
'user_nicename'=>__('user nicename','woocommerce-products-slider'),
),
);
$settings_tabs_field->generate_field($args);
$args = array(
'id' => 'post_ids',
'parent' => 'wcps_options[edd_downloads_query]',
'title' => __('Download ID\'s','woocommerce-products-slider'),
'details' => __('You can display download by ids.','woocommerce-products-slider'),
'type' => 'text',
'value' => $post_ids,
'default' => '',
'placeholder' => '1,4,2',
);
$settings_tabs_field->generate_field($args);
?>
</div>
<?php
}
}