get_image(), $cart_item, $cart_item_key );
if ( ! $item_permalink ) {
echo wp_kses_post( $thumbnail );
} else {
printf( '
%s ', esc_url( $item_permalink ), wp_kses_post( $thumbnail ) );
}
?>
get_name(), $cart_item, $cart_item_key ) . ' ' );
} else {
echo wp_kses_post( apply_filters( 'woocommerce_cart_item_name', sprintf( '
%s ', esc_url( $item_permalink ), $_product->get_name() ), $cart_item, $cart_item_key ) );
}
do_action( 'woocommerce_after_cart_item_name', $cart_item, $cart_item_key );
// Meta data.
echo wp_kses_post( wc_get_formatted_cart_item_data( $cart_item ) ); // PHPCS: XSS ok.
?>
' . sprintf( '%s × %s', $cart_item['quantity'], $product_price ) . '', $cart_item, $cart_item_key ) ); ?>
',
esc_url( wc_get_cart_remove_url( $cart_item_key ) ),
esc_html__( 'Remove this item', 'bdthemes-element-pack' ),
esc_attr( $product_id ),
esc_attr( $cart_item_key ),
esc_attr( $_product->get_sku() )
), $cart_item_key );
?>
isset( $_POST['per_page'] ) ? $_POST['per_page'] : 3,
'post_status' => 'publish',
'suppress_filters' => false,
// 'orderby' => $postSettings['posts_orderby'],
'order' => $postSettings['posts_order'],
'ignore_sticky_posts' => true,
'paged' => isset( $_POST['paged'] ) ? $_POST['paged'] : 1,
// 'offset' => isset($_POST['offset']) ? $_POST['offset'] : 0
];
if ( isset( $postSettings['posts_orderby'] ) && $postSettings['posts_orderby'] === 'rand' ) {
$args['post__not_in'] = $loadedPostIds;
} else {
$args['orderby'] = $postSettings['posts_orderby'];
$args['offset'] = isset( $_POST['offset'] ) ? $_POST['offset'] : 0;
}
/**
* wc product args
*/
if ( class_exists( 'WooCommerce' ) ) {
$product_visibility_term_ids = wc_get_product_visibility_term_ids();
if ( isset( $postSettings['hide_out_stock'] ) && ( 'yes' === $postSettings['hide_out_stock'] ) ) {
$args['tax_query'][] = [
[
'taxonomy' => 'product_visibility',
'field' => 'term_taxonomy_id',
'terms' => $product_visibility_term_ids['outofstock'],
'operator' => 'NOT IN',
],
];
}
}
/**
* set feature image
*
*/
if ( isset( $postSettings['posts_only_with_featured_image'] ) && $postSettings['posts_only_with_featured_image'] === 'yes' ) {
$args['meta_query'] = [
[
'key' => '_thumbnail_id',
'compare' => 'EXISTS'
]
];
}
/**
* set date query
*/
$selected_date = isset( $postSettings['posts_select_date'] ) ? $postSettings['posts_select_date'] : '';
if ( ! empty( $selected_date ) ) {
$date_query = [];
switch ( $selected_date ) {
case 'today':
$date_query['after'] = '-1 day';
break;
case 'week':
$date_query['after'] = '-1 week';
break;
case 'month':
$date_query['after'] = '-1 month';
break;
case 'quarter':
$date_query['after'] = '-3 month';
break;
case 'year':
$date_query['after'] = '-1 year';
break;
case 'exact':
$after_date = $postSettings['posts_date_after'];
if ( ! empty( $after_date ) ) {
$date_query['after'] = $after_date;
}
$before_date = $postSettings['posts_date_before'];
if ( ! empty( $before_date ) ) {
$date_query['before'] = $before_date;
}
$date_query['inclusive'] = true;
break;
}
if ( ! empty( $date_query ) ) {
$args['date_query'] = $date_query;
}
}
$exclude_by = isset( $posts_exclude_by ) ? $posts_exclude_by : [];
$include_by = isset( $posts_include_by ) ? $posts_include_by : [];
$include_users = [];
$exclude_users = [];
/**
* ignore sticky post
*/
if ( ! empty( $exclude_by ) && $postSettings['posts_source'] === 'post' && $postSettings['posts_ignore_sticky_posts'] === 'yes' ) {
$args['ignore_sticky_posts'] = true;
if ( in_array( 'current_post', $exclude_by ) ) {
$args['post__not_in'] = [ get_the_ID() ];
}
}
/**
* set post type
*/
if ( $postSettings['posts_source'] === 'manual_selection' ) {
/**
* Set Including Manually
*/
$selected_ids = $postSettings['posts_selected_ids'];
$selected_ids = wp_parse_id_list( $selected_ids );
$args['post_type'] = 'any';
if ( ! empty( $selected_ids ) ) {
$args['post__in'] = $selected_ids;
}
$args['ignore_sticky_posts'] = 1;
} elseif ( 'current_query' === $postSettings['posts_source'] ) {
/**
* Make Current Query
*/
$args = $GLOBALS['wp_query']->query_vars;
// unset($args['paged']);
$args['paged'] = isset( $_POST['paged'] ) ? $_POST['paged'] : 1;
$args['offset'] = isset( $_POST['offset'] ) ? $_POST['offset'] : 0;
$args = apply_filters( 'element_pack/query/get_query_args/current_query', $args );
} elseif ( '_related_post_type' === $postSettings['posts_source'] ) {
/**
* Set Related Query
*/
$post_id = get_queried_object_id();
$related_post_id = is_singular() && ( 0 !== $post_id ) ? $post_id : null;
$args['post_type'] = get_post_type( $related_post_id );
if ( in_array( 'authors', $include_by ) ) {
$args['author__in'] = wp_parse_id_list( $postSettings['posts_include_author_ids'] );
} else {
$args['author__in'] = get_post_field( 'post_author', $related_post_id );
}
if ( in_array( 'authors', $exclude_by ) ) {
$args['author__not_in'] = wp_parse_id_list( $postSettings['posts_exclude_author_ids'] );
}
if ( in_array( 'current_post', $exclude_by ) ) {
$args['post__not_in'] = [ get_the_ID() ];
}
$args['ignore_sticky_posts'] = 1;
$args = apply_filters( 'element_pack/query/get_query_args/related_query', $args );
} else {
$args['post_type'] = $postSettings['posts_source'];
$current_post = [];
/**
* Set Taxonomy && Set Authors
*/
$include_terms = [];
$exclude_terms = [];
$terms_query = [];
if ( ! empty( $exclude_by ) ) {
if ( in_array( 'authors', $exclude_by ) ) {
$exclude_users = wp_parse_id_list( $postSettings['posts_exclude_author_ids'] );
$include_users = array_diff( $include_users, $exclude_users );
}
if ( ! empty( $exclude_users ) ) {
$args['author__not_in'] = $exclude_users;
;
}
if ( in_array( 'current_post', $exclude_by ) && is_singular() ) {
$current_post[] = get_the_ID();
}
if ( in_array( 'manual_selection', $exclude_by ) ) {
$exclude_ids = $postSettings['posts_exclude_ids'];
$args['post__not_in'] = array_merge( $current_post, wp_parse_id_list( $exclude_ids ) );
}
if ( in_array( 'terms', $exclude_by ) ) {
$exclude_terms = wp_parse_id_list( $postSettings['posts_exclude_term_ids'] );
$include_terms = array_diff( $include_terms, $exclude_terms );
}
if ( ! empty( $exclude_terms ) ) {
$tax_terms_map = element_pack_ajax_load_map_group_control_query( $exclude_terms );
foreach ( $tax_terms_map as $tax => $terms ) {
$terms_query[] = [
'taxonomy' => $tax,
'field' => 'term_id',
'terms' => $terms,
'operator' => 'NOT IN',
];
}
}
}
if ( ! empty( $include_terms ) ) {
if ( in_array( 'authors', $include_by ) ) {
$include_users = wp_parse_id_list( $postSettings['posts_include_author_ids'] );
}
if ( ! empty( $include_users ) ) {
$args['author__in'] = $include_users;
}
if ( in_array( 'terms', $include_by ) ) {
$include_terms = wp_parse_id_list( $postSettings['posts_include_term_ids'] );
}
$tax_terms_map = element_pack_ajax_load_map_group_control_query( $include_terms );
foreach ( $tax_terms_map as $tax => $terms ) {
$terms_query[] = [
'taxonomy' => $tax,
'field' => 'term_id',
'terms' => $terms,
'operator' => 'IN',
];
}
}
if ( ! empty( $terms_query ) ) {
$args['tax_query'] = $terms_query;
$args['tax_query']['relation'] = 'AND';
}
}
$ajaxposts = new \WP_Query( $args );
if ( $postSettings['posts_orderby'] == 'rand' ) {
if ( $ajaxposts->have_posts() ) {
shuffle( $ajaxposts->posts );
}
}
return $ajaxposts;
}
function element_pack_ajax_load_map_group_control_query( $term_ids = [] ) {
$terms = get_terms(
[
'term_taxonomy_id' => $term_ids,
'hide_empty' => false,
]
);
$tax_terms_map = [];
foreach ( $terms as $term ) {
$taxonomy = $term->taxonomy;
$tax_terms_map[ $taxonomy ][] = $term->term_id;
}
return $tax_terms_map;
}
}