AFFILIATE_PROMOTIONS_PREFIX.'latest_promotions_widget', 'description' => esc_html__( 'Affiliate promotions widget', AFFILIATE_PROMOTIONS_PLUG ), ); parent::__construct( AFFILIATE_PROMOTIONS_PREFIX.'latest_promotions' , esc_html__( 'Aff-Promos: Latest Promotions', AFFILIATE_PROMOTIONS_PLUG ), $opts ); $this->include_third_parties(); } function include_third_parties(){ if (!wp_style_is(AFFILIATE_PROMOTIONS_PREFIX.'latest_promotions_widget','queue')) wp_enqueue_style( AFFILIATE_PROMOTIONS_PREFIX.'latest_promotions_widget', plugins_url('public/assets/css/affpromos_latest_promotions_widget.css',dirname(dirname(__FILE__)) )); } function widget( $args, $instance ) { $title = apply_filters( 'widget_title', empty( $instance['title'] ) ? '' : $instance['title'], $instance, $this->id_base ); $promotion_category = ! empty( $instance['promotion_category'] ) ? $instance['promotion_category'] : 0; $promotion_vendor = ! empty( $instance['promotion_vendor'] ) ? $instance['promotion_vendor'] : ''; $promotion_count = ! empty( $instance['promotion_count'] ) ? $instance['promotion_count'] : 8; $promotion_per_row = ! empty( $instance['promotion_per_row'] ) ? $instance['promotion_per_row'] : 4; if ( !in_array( $promotion_per_row, array(3,4)) ){ $promotion_per_row = 4; } echo $args['before_widget']; ?>
$this->post_category_term, 'field' => 'id', 'terms' => array(absint( $promotion_category )), 'operator' => 'IN', ); } if($promotion_vendor){ $meta_query[] = array( 'relation' => 'IN', array( 'key' => AFFILIATE_PROMOTIONS_PREFIX.'promotion_vendor', 'value' => ($promotion_vendor), ), ); } $meta_query[] = array( 'relation' => 'IN', array( 'key' => AFFILIATE_PROMOTIONS_PREFIX.'promotion_valid_until', 'type' => 'numeric', 'compare' => '>', 'value' => time(), ), ); $query_args = array( 'post_type' => $this->post_type, 'post_status' => 'publish', 'ignore_sticky_posts' => 1, 'posts_per_page' => absint( $promotion_count ), 'meta_query' => $meta_query, 'no_found_rows' => true, 'orderby' => array( 'modified' => 'DESC' ) ); if ( !empty($tax_query) ) { $query_args['tax_query'] = $tax_query; } $latest_promotions = new WP_Query( $query_args ); if ( $latest_promotions->have_posts() ) :?>
'', 'promotion_category' => '', 'promotion_vendor' => '', 'promotion_count' => 8, 'promotion_per_row' => 4, ) ); ?>

'name', 'hide_empty' => 0, 'class' => 'widefat', 'taxonomy' => AFFILIATE_PROMOTIONS_PREFIX.'category', 'name' => $this->get_field_name( 'promotion_category' ), 'id' => $this->get_field_id( 'promotion_category' ), 'selected' => absint( $instance['promotion_category'] ), 'show_option_all' => esc_html__( 'All Categories',AFFILIATE_PROMOTIONS_PLUG ), ); wp_dropdown_categories( $cat_args ); ?>

dropdown_promotion_vendor( array( 'id' => $this->get_field_id( 'promotion_vendor' ), 'name' => $this->get_field_name( 'promotion_vendor' ), 'selected' => $instance['promotion_vendor'] , ) ); ?>

get_field_name( 'promotion_per_row' ) ) . "' id='" . esc_attr( $this->get_field_id( 'promotion_per_row' ) ) . "' class='widefat'>\n"; $choices = array(3,4); foreach ( $choices as $choice ) { $output .= '

AFFILIATE_PROMOTIONS_PREFIX.'vendor', 'post_status' => 'publish', 'numberposts' => -1, 'order' => 'ASC', 'orderby' => 'title' ]); $args['_func_map'] = function ($vendor){ return (object) array( 'value' => $vendor->ID, 'text' => ucfirst($vendor->post_title), ); }; $args['placeholder'] = __('Select Vendors',AFFILIATE_PROMOTIONS_PLUG); affpromos_dropdown_multi_select_render($args,$vendors); } } endif;