'widget_dpa_redeem_achievements', 'description' => __( 'Users can redeem achievements entering a code.', 'dpa' ) ) ); parent::__construct( false, __( '(Achievements) Redemption', 'dpa' ), $widget_ops ); } /** * Register the widget * * @since Achievements (3.1) */ public static function register_widget() { register_widget( 'DPA_Redeem_Achievements_Widget' ); } /** * Displays the output * * @param array $args * @param array $instance * @since Achievements (3.1) */ public function widget( $args, $instance ) { $title = apply_filters( 'widget_title', $instance['title'], $instance, $this->id_base ); if ( empty( $title ) ) $title = __( 'Redeem achievement', 'dpa' ); $title = apply_filters( 'dpa_redeem_achievements_widget_title', $instance['title'], $instance, $this->id_base ); echo $args['before_widget']; echo $args['before_title'] . $title . $args['after_title']; dpa_get_template_part( 'form-redeem-code' ); echo $args['after_widget']; } /** * Update the widget options * * @param array $new_instance The new instance options * @param array $old_instance The old instance options * @since Achievements (3.1) */ public function update( $new_instance, $old_instance ) { $instance = $old_instance; $instance['title'] = strip_tags( $new_instance['title'] ); return $instance; } /** * Output the widget options form * * @param $instance Instance * @since Achievements (3.1) */ public function form( $instance ) { $title = ! empty( $instance['title'] ) ? $instance['title'] : __( 'Redeem achievement', 'dpa' ); ?>

'widget_dpa_featured_achievement', 'description' => __( 'Display details of a single achievement.', 'dpa' ), ) ); parent::__construct( false, __( '(Achievements) Featured Achievement', 'dpa' ), $widget_ops ); } /** * Register the widget * * @since Achievements (3.3) */ static public function register_widget() { register_widget( 'DPA_Featured_Achievement_Widget' ); } /** * Displays the output * * @param array $args * @param array $instance * @since Achievements (3.3) */ public function widget( $args, $instance ) { $settings = $this->parse_settings( $instance ); $settings['post_id'] = (int) apply_filters( 'dpa_featured_achievement_post_id', $settings['post_id'], $instance, $this->id_base ); // Get the specified achievement $achievement = get_posts( array( 'no_found_rows' => true, 'numberposts' => 1, 'p' => $settings['post_id'], 'post_status' => 'publish', 'post_type' => dpa_get_achievement_post_type(), 'suppress_filters' => false, ) ); // Bail if it doesn't exist if ( empty( $achievement ) ) return; $achievement = array_shift( $achievement ); echo $args['before_widget']; echo $args['before_title']; dpa_achievement_title( $achievement->ID ); echo $args['after_title']; if ( has_post_thumbnail( $achievement->ID ) ) : ?> ID, 'thumbnail', array( 'alt' => dpa_get_achievement_title( $achievement->ID ) ) ); ?> parse_settings( $instance ); ?>

0, ), 'featured_achievement_widget_settings' ); } } /** * Available Achievements widget; displays a grid of pictures of available Achievements. * * @since Achievements (2.0) */ class DPA_Available_Achievements_Widget extends WP_Widget { /** * Featured Achievement widget * * @since Achievements (3.3) */ function __construct() { $widget_ops = apply_filters( 'dpa_available_achievements_widget_options', array( 'classname' => 'widget_dpa_available_achievements', 'description' => __( 'Displays a photo grid of the achievements.', 'dpa' ), ) ); parent::__construct( false, __( '(Achievements) Photo Grid', 'dpa' ), $widget_ops ); } /** * Register the widget * * @since Achievements (3.3) */ static public function register_widget() { register_widget( 'DPA_Available_Achievements_Widget' ); } /** * Displays the output * * @param array $args * @param array $instance * @since Achievements (2.0) */ function widget( $args, $instance ) { $settings = $this->parse_settings( $instance ); $settings['title'] = apply_filters( 'widget_title', $settings['title'], $instance, $this->id_base ); // Use these filters $settings['limit'] = (int) apply_filters( 'dpa_available_achievements_limit', $settings['limit'], $instance, $this->id_base ); $settings['title'] = apply_filters( 'dpa_available_achievements_title', $settings['title'], $instance, $this->id_base ); echo $args['before_widget']; if ( ! empty( $settings['title'] ) ) echo $args['before_title'] . esc_html( $settings['title'] ) . $args['after_title']; // Get the posts $achievements = get_posts( array( 'no_found_rows' => true, 'numberposts' => $settings['limit'], 'post_status' => 'publish', 'post_type' => dpa_get_achievement_post_type(), 'suppress_filters' => false, ) ); // Bail if no posts if ( empty( $achievements ) ) return; echo '